web.xmlファイル構成グローバル符号化(request,responseの乱符号化問題を解決)

1487 ワード

Webアプリケーションでは文字化けしの問題がよく発生するが、以下にグローバル文字化けしの解決方法を紹介する.web.xmlファイルに我々の符号化フィルタを配置する(フィルタは自分で実現する).

	
		EncodeFilter
		cn.filter.EncodingFilter// 
		
			Encoding// , , web 
			UTF-8
		
	
	
		EncodeFilter
		/*
	

上にフィルタを配置し、ブロックURLは/*であるため、私たちの要求応答はすべてフィルタのブロックを通過してから放行され、私たちの符号化がutf-8であることを保証する.以下は私たち自身のエンコードフィルタクラスです.
public class EncodingFilter implements Filter {
	protected FilterConfig config;
	protected String encoding = null;
	
	@Override
	public void init(FilterConfig arg0) throws ServletException {
		this.config = arg0;

		/*  web.xml  */
		this.encoding = config.getInitParameter("Encoding");
	}
	/** */
	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain arg2)
			throws IOException, ServletException {
		if (encoding == null) {
			encoding = "UTF-8";
		}
		// , \ 
		response.setCharacterEncoding(encoding);
		request.setCharacterEncoding(encoding);
		response.setContentType("text/html;charset=" + encoding);
		arg2.doFilter(request, response);
	}

		/** destroy */
		@Override
		public void destroy() {
			encoding = null;
	}

}

簡単ではないでしょうか.これはほとんどのwebアプリケーションの文字化けしの問題を解決することができます.他の状況はここでは書きません.