!!!Filterで文字化け対策 [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アプリケーションでの文字コードを一括処理するフィルタ *
* StrutsのActionFormでは、リクエストパラメータの解析時に、文字エンコーディングが行われないため、 * アプリケーション全体で使用する文字エンコーディングを定義したフィルタを適用する。 *
* WEB-INF/web.xml にて、以下のように指定することで、有効になる。 * ここで、使用する文字コードを設定する。 *
  *   <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>
  * 
* @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 でパラメータを渡すと文字化け