@WebFilter("/*")
public class MyFilter implements Filter {
public void destroy() {
}
/**
* 全局乱码:得到请求方法
* 因为ServletRequest没有getMethod方法,所以需要先转换为他的子类HttpServletRequest
* req.getMethod()得到他是否为post方法
* “POST”.equals(req.getMethod)
* req.setCharacterEncoding("utf-8");解决乱码问题
*/
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws ServletException, IOException {
HttpServletRequest request= (HttpServletRequest) req;
HttpServletResponse response= (HttpServletResponse) resp;
if ("POST".equals(request.getMethod())){
request.setCharacterEncoding("utf-8");
}
resp.setContentType("text/html;charset=utf-8");
chain.doFilter(request,response);
}
public void init(FilterConfig config) throws ServletException {
}
}
1. response.setContentType("text/html; charset=UTF-8");
第一种不仅发送到浏览器的内容会使用UTF-8编码,而且还通知浏览器使用UTF-8编码方式进行显示。所以总能正常显示中文
即:服务端用utf编码,并且告诉浏览器用utf-8的编码显示
2. response.setCharacterEncoding("UTF-8");
第二种仅仅是发送的浏览器的内容是UTF-8编码的,至于浏览器是用哪种编码方式显示不管。 所以当浏览器的显示编码方式不是UTF-8的时候,就会看到乱码,需要手动再进行一次设置。
————————————————
版权声明:本文为CSDN博主「三丶竹」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37668842/article/details/102778647