EncodingFilter

来源:互联网 发布:粘贴软件中联 编辑:程序博客网 时间:2024/05/20 10:56
Web.xml

<filter>
        <filter-name>encodingfilter</filter-name>
        <filter-class>
            com.XXXX.oss.commons.filter.EncodingFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>encodingfilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>encodingfilter</filter-name>
        <url-pattern>/*</url-pattern>

    </filter-mapping>

package com.XXXX.oss.commons.filter;

import java.io.IOException;
import java.util.Map;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;

public class EncodingFilter extends HttpServlet implements Filter {
    /**
     *
     */
    private static final long serialVersionUID = 7257643104061201994L;

    private FilterConfig filterConfig;

    private String targetEncoding = "GBK";

    // Handle the passed-in FilterConfig
    public void init(FilterConfig filterConfig) throws ServletException {
        this.filterConfig = filterConfig;
    }

    // Process the request/response pair
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain filterChain) {
        try {
            request.setCharacterEncoding(targetEncoding);
            filterChain.doFilter(request, response);
        } catch (ServletException sx) {
            filterConfig.getServletContext().log(sx.getMessage());
        } catch (IOException iox) {
            filterConfig.getServletContext().log(iox.getMessage());
        }
    }

    // Clean up resources
    public void destroy() {
        filterConfig = null;
        targetEncoding = null;
    }
}