web.xmlファイル構成グローバル符号化(request,responseの乱符号化問題を解決)
1487 ワード
Webアプリケーションでは文字化けしの問題がよく発生するが、以下にグローバル文字化けしの解決方法を紹介する.web.xmlファイルに我々の符号化フィルタを配置する(フィルタは自分で実現する).
上にフィルタを配置し、ブロックURLは/*であるため、私たちの要求応答はすべてフィルタのブロックを通過してから放行され、私たちの符号化がutf-8であることを保証する.以下は私たち自身のエンコードフィルタクラスです.
簡単ではないでしょうか.これはほとんどのwebアプリケーションの文字化けしの問題を解決することができます.他の状況はここでは書きません.
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アプリケーションの文字化けしの問題を解決することができます.他の状況はここでは書きません.