如下代码public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws java.io.IOException,
            javax.servlet.ServletException {
        try {
            request.setCharacterEncoding("GBK");
        } catch (Throwable t) {
        }
        chain.doFilter(request, response);
    }关键别漏了调 chain.doFilter(request, response);

解决方案 »

  1.   

    chain.doFilter(request, response);
    是处理filter的返回页面阿
    filter1
          if (request instanceof HttpServletRequest
                    && response instanceof HttpServletResponse) {
                String agent = ((HttpServletRequest) request)
                        .getHeader("User-Agent");
                if (agent.indexOf("IE") == -1) {
                    ((HttpServletResponse) response)
                            .sendError(HttpServletResponse.SC_HTTP_VERSION_NOT_SUPPORTED);
                }
            }
            chain.doFilter(request, response);filter2
    if (this.ignore) {
         chain.doFilter(request, response);
         return;
        }
        
    // Time and log the subsequent processing
    long startTime = System.currentTimeMillis();
            chain.doFilter(request, response);
    long stopTime = System.currentTimeMillis();
    String path = "ExecutionTimeFilter";
    if (request instanceof HttpServletRequest) {
    path = ((HttpServletRequest) request).getRequestURI();
    }
    /** Logger */
    Log log = LogFactory.getLog(ExecutionTimeFilter.class);
    log.info(path + " :実行時間 " + (stopTime - startTime) + " millis");
      

  2.   

    请仔细看看 FilterChain 的 javadocA FilterChain is an object provided by the servlet container to the developer giving a view into the invocation chain of a filtered request for a resource. Filters use the FilterChain to invoke the next filter in the chain, or if the calling filter is the last filter in the chain, to invoke the rosource at the end of the chain.
      

  3.   

    除上面所说的,还要配置web.xml<filter><!--第一个过滤器-->
      <filter-name>Authentication</filter-name>
      <display-name>Authentication</display-name>
      <filter-class>com.servlet.filter.Authenticationfilter</filter-class>
    </filter><filter-mapping>
      <filter-name>Authentication</filter-name>
      <servlet-name>Controller</servlet-name>
      <!--<url-pattern>/Controller</url-pattern>-->
    </filter-mapping><filter><!--第二个过滤器-->
      <filter-name>HTTPwrapperfilter</filter-name>
      <display-name>HTTPwrapperfilter</display-name>
      <filter-class>com.servlet.filter.HTTPwrapperfilter</filter-class>
    </filter><filter-mapping>
      <filter-name>HTTPwrapperfilter</filter-name>
      <servlet-name>Controller</servlet-name>
    </filter-mapping><listener>
      <listener-class>com.servlet.eventlistner.ContextListner</listener-class>
    </listener>
    <listener>
      <listener-class>com.servlet.eventlistner.SessionListner</listener-class>
    </listener>
      

  4.   

    参考yaray(雅睿,生活在别处,工作在别墅),我的web.xml。可依然只能启动IeFilter
    <filter>
    <filter-name>IeFilter</filter-name>
    <filter-class>com.aics.lesson2.IeFilter</filter-class>
    </filter>
    <filter>
    <filter-name>ExecutionTimeFilter</filter-name>
    <filter-class>com.aics.lesson2.ExecutionTimeFilter</filter-class>
    <init-param>
    <param-name>ignore</param-name>
    <param-value>yes</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>IeFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>ExecutionTimeFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <listener>
    <listener-class>com.aics.lesson2.ExecutionTimeFilter</listener-class>
    </listener>
    <listener>
    <listener-class>com.aics.lesson2.IeFilter</listener-class>
    </listener>