2.4版本的servlet规范在部属描述符中新增加了一个<dispatcher>元素,这个元素有四个可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一个<filter-mapping>元素中加入任意数目的<dispatcher>,使得filter将会作用于直接从客户端过来的request,通过forward过来的request,通过include过来的request和通过<error-page>过来的request。如果没有指定任何< dispatcher >元素,默认值是REQUEST。可以通过下面几个例子来辅助理解。
例1:
<filter-mapping>
<filter-name>Logging Filter</filter-name>
<url-pattern>/products/*</url-pattern>
</filter-mapping>
这种情况下,过滤器将会作用于直接从客户端发过来的以/products/…开始的请求。因为这里没有制定任何的< dispatcher >元素,默认值是REQUEST。
例2:
<filter-mapping>
<filter-name>Logging Filter</filter-name>
<servlet-name>ProductServlet</servlet-name>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
这种情况下,如果请求是通过request、dispatcher的include方法传递过来的对ProductServlet的请求,则要经过这个过滤器的过滤。其它的诸如从客户端直接过来的对ProductServlet的请求等都不需要经过这个过滤器。
指定filter的匹配方式有两种方法:直接指定url-pattern和指定servlet,后者相当于把指定的servlet对应的url-pattern作为filter的匹配模式
filter的路径匹配和servlet是一样的,都遵循servlet规范中《SRV.11.2 Specification of Mappings》一节的说明
例3:
<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方法传递过来或者直接从客户端传递过来的,则必须经过这个过滤器。
详细解决方案
web.xml中的filter-地图ping
热度:79 发布时间:2012-12-18 12:43:41.0
相关解决方案
- Spring自动扫描 <context:componet-scan>和加了<context:include-filter>以后有什么区别
- 紧急 Exception starting filter struts2
- 关于处理ip ping 的结果,该如何解决
- SEVERE: Exception starting filter struts2,该怎么处理
- tomcate启动报错Exception starting filter struts2解决思路
- 错误如下:严重: Exception starting filter struts2Filter
- 严重: Exception starting filter struts2
- Tomcat起步报错 严重: Exception starting filter struts2各位大侠帮帮忙啊
- 启动tomcat时 严重: Exception starting filter struts2,该怎么解决
- C#操作word出现“The message filter indicated that the application is busy”,该怎么解决
- VS.NET2005中怎么使用style Filter
- [dm9000a ping 不通]解决办法
- [dm9000a ping 不通],该怎么解决
- HBase自定义过滤器(Filter)的有关问题
- VFP ping IP地址的有关问题
- vf的set filter to有关问题
- 一直没注意的有关问题,set filter to 的同步执行
- 请帮忙解释一下代码中set filter to 是什么意思解决办法
- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
- 为啥 127.0.0.0 和 127.0.0.1 ping 不通其他的却都正常
- ping www.163.com与ping 163.com回来的结果为什么不一样
- ping www.163.com与ping 163.com返回的结果为什么不一样?解决方案
- 为什么 127.0.0.0 和 127.0.0.1 ping 不通其他的却都正常?该如何解决
- -ping 主机名 不通-该怎么处理
- Dump Filter 你在哪儿?解决思路
- 怎么开发一个推模式的source filter
- wince上的AVI Mux Filter
- CSource Filter 与VMR9 Filter黑屏有关问题
- Dump Filter 您在哪儿
- directshow 如何在自己的程序中加载指定的外部的ax filter