Filterで文字化け対策
ナビゲーションに移動
検索に移動
Filterで文字化け対策
J2EE |
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;
- }
- }
© 2006 矢木浩人