不是吧,过滤器是过滤请求的不分什么GET/POST.网上有的是。

解决方案 »

  1.   

    一般的过滤乱码只能过滤post方法请求的乱码你为何这么说呢?
      

  2.   

    对于 get:
      request.setCharacterEncoding("UTF-8");对于post:
      则要用Map集合拿到所以请求的资源,
      让后进行Iterator迭代
      

  3.   

    import java.io.IOException;import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    public class EncodingFilter implements Filter { protected boolean ignore = true; protected FilterConfig config; protected String targetEncoding = "UTF-8"; public void init(FilterConfig config) throws ServletException { this.config = config;
    this.targetEncoding = config.getInitParameter("encoding");
    String value = config.getInitParameter("ignore"); if (value == null)
    this.ignore = true;
    else if (value.equalsIgnoreCase("true"))
    this.ignore = true;
    else if (value.equalsIgnoreCase("yes"))
    this.ignore = true;
    else
    this.ignore = false;
    } public void destroy() {
    config = null;
    targetEncoding = null;
    } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException { if (ignore || (request.getCharacterEncoding() == null)) {
    String encoding = selectEncoding(request);
    if (encoding != null)
    request.setCharacterEncoding(encoding);
    } chain.doFilter(request, response);
    } protected String selectEncoding(ServletRequest request) { return (this.targetEncoding);
    }
    }在web.xml 里配置
    <filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>cn.usj.gyj.common.EncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>