博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web.xml里<filter-mapping>中的<dispatcher>作用
阅读量:6000 次
发布时间:2019-06-20

本文共 1279 字,大约阅读时间需要 4 分钟。

hot3.png

2.4版本的servlet规范在部属描述符中新增加了一个<dispatcher>元素,这个元素有四个可能的值:即REQUEST,FORWARD,INCLUDE和ERROR,可以在一个<filter-mapping>元素中加入任意数目的<dispatcher>,使得filter将会作用于直接从客户端过来的request,通过forward过来的request,通过include过来的request和通过<error-page>过来的request。如果没有指定任何< dispatcher >元素,默认值是REQUEST。可以通过下面几个例子来辅助理解。 

例1:

Xml代码   
  1. <filter-mapping>   
  2. <filter-name>Logging Filter</filter-name>   
  3. <url-pattern>/products/*</url-pattern>   
  4. </filter-mapping>  

 

这种情况下,过滤器将会作用于直接从客户端发过来的以/products/…开始的请求。因为这里没有制定任何的< dispatcher >元素,默认值是REQUEST。 

例2:

Xml代码   
  1. <filter-mapping>   
  2. <filter-name>Logging Filter</filter-name>   
  3. <servlet-name>ProductServlet</servlet-name>   
  4. <dispatcher>INCLUDE</dispatcher>   
  5. </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:

Xml代码   
  1. <filter-mapping>   
  2. <filter-name>Logging Filter</filter-name>   
  3. <url-pattern>/products/*</url-pattern>   
  4. <dispatcher>FORWARD</dispatcher>   
  5. <dispatcher>REQUEST</dispatcher>   
  6. </filter-mapping>   

 

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

转载于:https://my.oschina.net/tianhandigeng/blog/136742

你可能感兴趣的文章
node.js中使用http模块创建服务器和客户端
查看>>
LeetCode 453. Minimum Moves to Equal Array Elements C#
查看>>
Away3D基础教程(六):支持双面交互的PlaneGeometry
查看>>
(十五)Centos之安装jdk
查看>>
51nod 最长公共子序列+输出路径
查看>>
RISC-V: custom instruction and its simulation(转)
查看>>
博客园个性时钟,Play with me !!!
查看>>
HDU 5366 The mook jong
查看>>
Unity ScriptableObject自定义属性显示
查看>>
【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
查看>>
ORACLE内存管理之ASMM AMM
查看>>
移动前端常用meta标签
查看>>
非结构化数据与结构化数据提取---多线程爬虫案例
查看>>
splay版
查看>>
unity 打包编译记录
查看>>
CSS知识总结(四)
查看>>
软件工程第一次作业
查看>>
22. Generate Parentheses
查看>>
MDL相关总结
查看>>
抓取代理IP
查看>>