web-filter

来源:互联网 发布:兼职插画知乎 编辑:程序博客网 时间:2024/06/10 04:16
<dicpather>
这个元素有四个可能的值
REQUEST、FORWARD、INCLUDE、ERROR

可以在<file-mapping>元素中加入任意数目的的<dispather>使得filter将会作用于直接从客户端过来的request 通过forward过来的request ,通过include过来的request和通过<error-page>过来的request。如果没有指定任<dispather〉元素,默认值是

REQUEST.
xml
<filter-mapping>
<filter-name>Logging Filter</filter-name>
<url-pattern>/products/*</url-pattern>
</filter-mapping>
这种情况下,过滤器将会作用于直接从客户端发过来的以/products/..开始的请求。因为这里没有制定任何的
<dispather>元素,默认值是REQUEST

第二种情况是
<filter-mapping>
<filter-name>Logging Filter </filter-name>
<servlet-name>ProductServlet</servlet-name>
<dispatcher>INCLUDE</dispather>
</fileter-mapping>

这种情况下,如果请求是通过request dispather的include方法传递过来的对productServlet的请求,则要经过这个过滤器的过滤其他的诸如从客户端直接过来的对ProductServlet的请求等都不需要经过这个指定filter的匹配方式有两种:

直接指定url-pattern 和指定Servlet;

后者相当于是把指定的servlet对应的url-pattern作为filter的匹配模式filter的路径匹配和servlet是一样的


xml
<filter-mapping>
<filter-name>Logging Filter</filter-name>
<url-pattern>/products/*<url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST<dispatcher>
</filter-mapping>

在这种情况下,如果请求是以/products/..开头的,并且是通过request dispatcher 的forward 方法传递过来或者
直接从客户端传递过来的,则必须经过这个过滤器








0 0
原创粉丝点击