今日完善了字元編碼過濾器。

gyang發表於2009-01-20

public class CharacterEncodingFilter implements Filter {

private String encoding = "utf-8";

private String serverEncodingForGet = "ISO8859_1";

public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) req;
final HttpServletResponse response = (HttpServletResponse) res;
//System.out.println(request.getContextPath()+":"+request.getServletPath());
//System.out.println(request.getMethod());
if (request.getMethod().equalsIgnoreCase("GET")) {
request = new RequestWrapper(request, serverEncodingForGet, encoding);
//System.out.println("new encoding filter :get");
} else {
// 處理post引數
request.setCharacterEncoding(encoding);
// 處理post中混合的get引數
request = new MixedRequestWrapper(request, serverEncodingForGet,encoding);
//System.out.println("new encoding filter :post");
}
// 下面語句在frameset實現跨域訪問,解決frameset中cookie、session丟失問題
//((HttpServletResponse)response).setHeader("P3P","CP=CAO PSA OUR");
chain.doFilter(request, response);
}

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15247/viewspace-1016339/,如需轉載,請註明出處,否則將追究法律責任。

相關文章