使用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