==[[Filterで文字化け対策]]==[[J2EE]{{category ] | [[Category:文字化け}}]]
====Webアプリケーションの文字化け対策[[Webアプリケーション]]の文字化け対策====
以下のようなフィルターを作成し、web.xmlに設定。
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequestServlet[[R]]equest; import javax.servlet.ServletResponseServlet[[R]]esponse;
/**
* Webアプリケーションでの文字コードを一括処理するフィルタ[[Webアプリケーション]]での文字コードを一括処理するフィルタ * <<br/>> * StrutsのActionFormでは、リクエストパラメータの解析時に、文字エンコーディングが行われないため、StrutsのActionFormでは、リクエストパラメータの解析時に、文字[[エンコーディング]]が行われないため、 * アプリケーション全体で使用する文字エンコーディングを定義したフィルタを適用する。アプリケーション全体で使用する文字[[エンコーディング]]を定義したフィルタを適用する。 * <<br/>>
* WEB-INF/web.xml にて、以下のように指定することで、有効になる。
* ここで、使用する文字コードを設定する。ここで、使用する[[文字コード]]を設定する。 * <<pre style="color:blue;">>
* <filter>
* <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#doFilter(javax.servlet.ServletRequestServlet[[R]]equest, javax.servlet.ServletResponseServlet[[R]]esponse, javax.servlet.FilterChain) */ public void doFilter(ServletRequest Servlet[[R]]equest request, ServletResponse Servlet[[R]]esponse response, FilterChain filterChain) throws IOException, ServletException {
request.setCharacterEncoding(this.encording);
filterChain.doFilter(request, response);
}
*[[Tomcat 5.x GET でパラメータを渡すと文字化け]]