当一个请求到服务器后,filter如何判断是否该进行过滤工作,望各位大侠不吝赐教~~~

解决方案 »

  1.   

    filter就是个接口,里面有个doFilter()方法,你必须实现这个方法已实现过滤。
    如何过滤,以及何时过滤,那是你程序员的工作了。看你具体写的过滤规则。你想过滤就过滤,不想过滤就放过。
    跟filter的规范没有关系。
      

  2.   

    我还是拿一个web.xml来讲,不知道这样你能不能理解
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app>
      <filter>
        <filter-name>过滤器名</filter-name>
        <filter-class>过滤器类</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>过滤器名</filter-name>
        <url-pattern>关联地址</url-pattern>
      </filter-mapping>
    </web-app>服务器启动过程中,过滤器就开始初始化,在一个请求到达服务器要访问哪个地址时,web容器先获得访问地址(这个地址可以是jsp页面,也可以是servlet,当然action也可)从web.xml中查看与之地址相关联的过滤器,如果有过滤器与该地址关联,就执行该过滤器的class。在过滤器类中,当过滤器的执行了Chain对象的dochain方法时,就表示访问通过,跳转请求访问的地址。
    例如<url-pattern>/*</url-pattern>就表示访问根目录下的所有地址都要过滤。
    同理<url-pattern>/index.jsp</url-pattern>就表示访问根目录下的index.jsp要过滤。