我的过滤器的dofilter方法如下public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
String path=((HttpServletRequest)request).getRequestURI();
System.out.println("Filter:"+path);
chain.doFilter(request, response);
}
我发现如果不加上chain.doFilter(request, response),则请求不会得到任何响应但加上后,会自动交给web。xml里写的servlet去处理。我现在想根据path的不同把请求交给不同的servlet去处理,该怎么写?

解决方案 »

  1.   

    在web.xml里面通过  <servlet>
        <servlet-name>OrderMock</servlet-name>[code=XML]
        <servlet-class>com.temobi.misc.wbsc.service.OrderMock</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>OrderMock</servlet-name>
        <url-pattern>/test/provision.mock</url-pattern>
      </servlet-mapping>
    [/code]
    来配置
      

  2.   


    <filter>
        
        <filter-name>filter</filter-name>
        <filter-class>完整类名</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>filter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      

  3.   

    我的意思是如果我的servlet没有在web。xml里注册过,如何在dofilter()方法里把请求交给这个没有注册过的servlet?
      

  4.   

    这是不可能的,servlet不在web.xml配置就什么作用也起不了。
    web容器是不会理会没有配置的servlet的