- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!Filterで文字化け対策
[J2EE]
[J2EE]{{category 文字化け}}
!Webアプリケーションの文字化け対策
以下のようなフィルターを作成し、web.xmlに設定。
package info.typea.fugitive.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* Webアプリケーションでの文字コードを一括処理するフィルタ
* <br/>
* StrutsのActionFormでは、リクエストパラメータの解析時に、文字エンコーディングが行われないため、
* アプリケーション全体で使用する文字エンコーディングを定義したフィルタを適用する。
* <br/>
* WEB-INF/web.xml にて、以下のように指定することで、有効になる。
* ここで、使用する文字コードを設定する。
* <pre style="color:blue;">
* <filter>
* <filter-name>CharacterEncodingFilter</filter-name>
* <filter-class>fugitive.fw.filter.CharacterEncodingFilter</filter-class>
* <init-param>
* <param-name>encording</param-name>
* <param-value>UTF-8</param-value>
* </init-param>
* </filter>
* <filter-mapping>
* <filter-name>CharacterEncodingFilter</filter-name>
* <url-pattern>/*</url-pattern>
* </filter-mapping>
* </pre>
* @author yagi
*/
public class CharacterEncodingFilter implements Filter {
/**
* 文字エンコーディング
*/
private String encording = null;
/* @see javax.servlet.Filter#init(javax.servlet.FilterConfig) */
public void init(FilterConfig config) throws ServletException {
this.encording = config.getInitParameter("encording");
}
/* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) */
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
request.setCharacterEncoding(this.encording);
filterChain.doFilter(request, response);
response.setCharacterEncoding(this.encording);
}
/* @see javax.servlet.Filter#destroy() */
public void destroy() {
this.encording = null;
}
}
*Tomcat 5.x GET でパラメータを渡すと文字化け