JavaWeb基础知识总结. (58)

但是要注意,有的浏览器可能不会理会你的设置,还是会缓存的!这时就要在页面中使用时间戳来处理了。

解决全站字符乱码(POST和GET中文编码问题) 1 说明

乱码问题:

l 获取请求参数中的乱码问题;

Ø POST请求:request.setCharacterEncoding(“utf-8”);

Ø GET请求:new String(request.getParameter(“xxx”).getBytes(“iso-8859-1”), “utf-8”);

l 响应的乱码问题:response.setContextType(“text/html;charset=utf-8”)。

基本上在每个Servlet中都要处理乱码问题,所以应该把这个工作放到过滤器中来完成。

2 分析

其实全站乱码问题的难点就是处理GET请求参数的问题。

如果只是处理POST请求的编码问题,以及响应编码问题,那么这个过滤器就太!太!太简单的。

public class EncodingFilter extends HttpFilter {

public void doFilter(HttpServletRequest request,

HttpServletResponse response, FilterChain chain)

throws IOException, ServletException {

String charset = this.getInitParameter("charset");

if(charset == null || charset.isEmpty()) {

charset = "UTF-8";

}

request.setCharacterEncoding(charset);

response.setContentType("text/html;charset=" + charset);

chain.doFilter(request, response);

}

}

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzfdw.html