使用filter对项目中全部页面实现字符集设置
使用filter对项目中所有页面实现字符集设置
有时写项目中偶尔会遇到中文乱码问题,可以在乱码页面添加以下两行代码解决中文乱码问题
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