有时写项目中偶尔会遇到中文乱码问题,可以在乱码页面添加以下两行代码解决中文乱码问题
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
但是这样的话向所有页面添加的话一个是比较麻烦,另外一个就是有些乱,比如代码行数很多往往会找不到这两行代码,现在可以用filter过滤器对于所有的页面全部将字符集设置为UTF-8;
以下是CharEncodingFilter.java
package com.student.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @Description
* @Author 单继重
* @Date 2016/10/24 16:19
*/
@WebFilter(filterName = "CharEncodingFilter")
public class CharEncodingFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)resp;
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(req, resp);
}
public void init(FilterConfig config) throws ServletException {
}
}
然后在web.xml文件中配置该filter,代码如下
<filter> <filter-name>CharEncodingFilter</filter-name> <filter-class>com.student.filter.CharEncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>CharEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
这样,项目中的所有页面均可设置为UTF-8