`

web.xml里<filter-mapping>中的<dispatcher>作用

阅读更多

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方法传递过来或者直接从客户端传递过来的,则必须经过这个过滤器。
参考资料:http://topic.csdn.net/t/20060322/23/4633313.html

分享到:
评论
4 楼 江奇缘 2016-03-17  
不错!!!!!!
3 楼 di1984HIT 2014-10-30  
学习了,不错~
2 楼 xubogang 2010-10-05  
1 楼 wenjinglian 2010-04-01  
不错,学习了

相关推荐

    基于MyEclipse搭建maven+springmvc整合图文教程(含源码0

    &lt;param-value&gt;/WEB-INF/dispatcher-servlet.xml&lt;/param-value&gt; &lt;/init-param&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt; &lt;url-...

    解决struts2.1.6+spring+hibernate 中文乱码

    &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt; &lt;init-param&gt; &lt;param-name&gt;encoding&lt;/param-name&gt; &lt;param-value&gt;GBK&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param...

    生活轨迹SSH服务端

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; ...

    struts-2.5.13

    &lt;filter-class&gt;org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; &lt;!-- 引用个具体类文件 --&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; ...

    struts-2.3.4.1所需的jar文件

    &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; struts.xml &lt;?xml version="1.0" encoding="UTF-8" ?&gt; &lt;!DOCTYPE struts PUBLIC "-//...

    Struts2整合SiteMesh技巧

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ActionContextCleanUp&lt;/filter-class&gt; filter&gt; &lt;filter&gt; &lt;filter-name&gt;sitemesh&lt;/filter-name&gt; &lt;filter-class&gt;...

    struts2 + spring + mybatis 框架整合jar包

    &lt;filter&gt;&lt;filter-name&gt;struts2&lt;/filter-name&gt;&lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt;&lt;/filter&gt;&lt;filter-mapping&gt;&lt;filter-name&gt;struts2&lt;/filter-name&gt;...

    struts2配置2.5版

    拦截器:web.xml 配置拦截器&lt;filter&gt; struts2.5的filter-class 与struts2.5以前版本有所不同 &lt;!-- 浏览器访问 http://localhost:8080/MyWeb/helloworld --&gt; --&gt; &lt;?xml version="1.0" encoding=...

    java中文乱码解决方案

    -- zh-cn encoding --&gt; &lt;filter&gt; &lt;filter-name&gt;struts-cleanup &lt;/filter-name&gt; &lt;filter-class&gt; org.apache.struts2.dispatcher.ActionContextCleanUp &lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;...

    SSH第7章上机.zip ACCP8.0

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-...

    VereWebMVC案例(从数据到前端页面)

    &lt;filter-mapping&gt; &lt;filter-name&gt;VereMVC&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; &lt;listener&gt; &lt;listener-class&gt;com.vere.mvc.listener.VereMVCContextListener&lt;/listener-class&gt; &lt;/...

    VereMVC至简mvc微架构

    &lt;filter-mapping&gt; &lt;filter-name&gt;VereMVC&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; &lt;listener&gt; &lt;listener-class&gt;com.vere.mvc.listener.VereMVCContextListener&lt;/listener-class&gt; &lt;/...

    基于EXT SSI的简单树实现

    &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt; &lt;init-param&gt; &lt;description&gt;struts2初始配置文件&lt;/description&gt; &lt;param-name&gt;config&lt;/param-name&gt; &lt;param-value&gt;conf/...

    javaWed笔记

    在web.xml文件中,一个&lt;filter-mapping&gt;元素用于配置一个Filter所负责拦截的资源。 &lt;filter-mapping&gt;元素中有一个特殊的子元素&lt;dispatcher&gt;,该元素用于指定过滤器所拦截的资源被Servlet容器调用的方式,...

    xml里filter-mapping中的dispatcher的使

    xml里filter-mapping中的dispatcher的使

    struts项目搭建

    &lt;filter-mapping&gt; &lt;filter-name&gt;struts&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; &lt;/welcome-file-list&gt; &lt;login-config...

    用Struts2新建一个应用的方法步骤

    &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; &lt;/web-app&gt; 7.右击src——new——XML(Advanced Templates)。在File Name中输入struts.xml(必须为此名)...

    客户关系管理系统框架搭建(二)

    &lt;mapping resource="cn/itcast/crm/domain/SysUserGroup.hbm.xml"/&gt; &lt;/session-factory&gt; * 测试.放置在junit包下 public class TestHibernate { @Test public void ...

    Struts2基本框架搭建jar包

    &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts2&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; ...

    解决struts2下载异常的jar包 struts2-sunspoter-stream-1.0.jar

    &lt;param name="inputName"&gt;targetFile&lt;/param&gt; &lt;param name="contentDisposition"&gt;filename=""&lt;/param&gt; &lt;param name="buffersize"&gt;4096&lt;/param&gt; &lt;/result&gt; &lt;/action&gt;&lt;/package&gt; 也就是说,如果抛出了...

Global site tag (gtag.js) - Google Analytics