乱码处理问题

 在做WEB 开发是通常会遇到页面乱码问题!只要写一个过滤器乱码轻松搞定!

public class SetCharacterEncodingFilter implements Filter {

    private FilterConfig config;
   
    public static final String CHARSET_DEFAULT = "UTF-8";
   
    /* (non-Javadoc)
     * @see javax.servlet.Filter#destroy()
     */
    @Override
    public void destroy() {
    }

    /* (non-Javadoc)
     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
     */
    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1,
            FilterChain arg2) throws IOException, ServletException {
        String enable = config.getInitParameter("enable");
        String charset = config.getInitParameter("charset");
        if(enable != null && "true".equals(enable)){
            if(charset != null && !"".equals(charset)){
                arg0.setCharacterEncoding(charset);
            }else{
                arg0.setCharacterEncoding(CHARSET_DEFAULT);
            }

        }
        arg2.doFilter(arg0, arg1);
    }

    /* (non-Javadoc)
     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
     */
    @Override
    public void init(FilterConfig arg0) throws ServletException {
        config = arg0;
    }

在web.xml 中的配置

    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>com.liuc.web.common.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>enable</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>charset</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

原文地址:https://www.cnblogs.com/java20130726/p/3218471.html