`
c_fanatic
  • 浏览: 64216 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

servlet-mapping与filter-mapping 的处理顺序

    博客分类:
  • Java
阅读更多
可以把它理解成在servlet处理过程中,普通servlet和过滤器谁先执行

答案是过滤器先执行:不管url-pattern的值一样或者不一样

这里有个通俗的例子:

到百度贴吧回答问题,这就是一个普通servlet要完成的工作(提交一个问题)

可是贴吧规定:用户未登陆不能回答问题,这就是过滤器的工作

想象以下,当我点击提交回答的时候,肯定是先要进行用户登陆的判断,如果登陆了才把用户的回答提交,未登陆就提示其先登陆

对不对?

<filter-mapping>
<filter-name>aaa</filter-name>
<url-pattern>/a/b</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>sss</servlet-name>
<url-pattern>/a/b</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sssaa</servlet-name>
<url-pattern>/a/ba</url-pattern>
</servlet-mapping>

对于上面的配置,执行的情况是:
用户请求"/a/b"
filter先判断是不是要过滤这个请求:根据
<url-pattern>/a/b</url-pattern>
发现该请求要执行过滤操作,于是执行doFilter中的代码

用户请求"/a/ba"
filter先判断是不是要过滤这个请求:根据
<url-pattern>/a/b</url-pattern>
发现该请求不用执行过滤操作,于是doFilter中的代码没又执行

以上言论引用处百度贴吧,个人觉得通俗易懂,值得一贴!


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/scnujie/archive/2007/12/21/1956931.aspx
分享到:
评论

相关推荐

    Spring MVC 框架应用实例

    &lt;filter-mapping&gt; &lt;filter-name&gt;encodingFilter&lt;/filter-name&gt; &lt;url-pattern&gt;*.do&lt;/url-pattern&gt; &lt;/filter-mapping&gt; &lt;servlet&gt; &lt;servlet-name&gt;ideawu&lt;/servlet-name&gt; &lt;servlet-class&gt; org.spring...

    SpringStrutsHibernate的配置

    把servlet-name等的servlet改为filter就变成了过滤器了。 说明:要继承HttpServlet类 一、 ①处可以随便取一个名字,但一般是和下面②处的类名一样。 二、 ②处就填servlet类的类名(src目录下的包名.类名),把要...

    web.xml详细说明

    用于 web.xml 配置详解。例如: &lt;web-app&gt; &lt;display-name&gt;&lt;/display-name&gt;定义了...&lt;filter-mapping&gt;&lt;/filter-mapping&gt; 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。

    jsp servlet中的过滤器Filter配置总结

    jsp servlet中的过滤器Filter配置总结 1。如果要映射过滤应用程序中所有资源: &lt;filter&gt; &lt;filter-name&gt;loggerfilter&lt;/filter-name&gt; &lt;filter-class&gt;myfilter.LoggerFilter&lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-...

    Web配置详解

    jsp的web.xml配置说明 Web.xml常用元素&lt;web-app&gt;&lt;display-name&gt;&lt;/display-name&gt;定义...&lt;filter-mapping&gt;&lt;/filter-mapping&gt; 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。

    web.xml详解(web-app_2_3.dtd)

    7. filter-mapping元素 8. listener元素 9. servlet元素 10. seervlet-mapping 元素 11. session-config元素 12. mime-mapping元素 13. welcome-file-list元素 14. error-page元素 15. taglib元素 ...

    JSF文件上传

    —要和&lt;servlet-mapping&gt;中的&lt;servlet-name&gt;一致--&gt; &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt; &lt;/filter-mapping&gt; &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.html&lt;/welcome-file&gt; &lt;/welcome-file-list&gt; ...

    登录过滤器

    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; ...

    javaWed笔记

    &lt;filter-mapping&gt;元素中有一个特殊的子元素,该元素用于指定过滤器所拦截的资源被Servlet容器调用的方式,元素的值共有4个,具体如下: 1)REQUEST 当用户直接访问页面时,Web容器将会调用过滤器。如果目标资源是...

    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;...

    LoginFilter.war

    把请求传给 Filter 链的下一个 Filter,若当前 Filter 是 Filter 链的最后一个 Filter,则把请求传给目标 Servlet(或 JSP)注:多个 Filter 拦截的顺序和 &lt;filter-mapping&gt; 配置的顺序有关,靠前的先被调用

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

    &lt;/servlet-mapping&gt; &lt;/web-app&gt; dispatcher-servlet.xml文件代码 &lt;?xml version="1.0" encoding="UTF-8"?&gt; xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context=...

    如何配置Filter过滤器处理JSP中文乱码

    配置Filter过滤器处理JSP中文乱码 参考Tomcat服务器目录webapps的examples示例 简单配置步骤: 1.在项目web.xml文件添加过滤器标记&lt;filter&gt;和&lt;filter-mapping&gt;; 2.实现过滤器代码; 3.对Tomcat服务器conf目录里的...

    Spring MVC 入门实例

    然后我们再配置 Servlet 映射(servlet-mapping 标签), 也就是你希望哪些请求被DispatcherServlet处理. 这里, 我们设置后缀名为 do(*.do) 的所有URL请求都被名为 ideawu 的 DispatcherServlet 的程序处理. 选择 .do ...

    Web.xml的作用及常用标签的功能

    web.xml文件是用来初始化工程配置信息的,比如说welcome页面,filter,listener,servlet,servlet-mapping,启动加载级别等等,当你的web工程中没用到这些当然也就不需要这个xml文件来配置你的apllication了 ...

    JavaWeb Servlet中url-pattern的使用

    一个页面请求根据url-pattern只匹配一个最佳的Servlet,而根据web.xml的filter-mapping标签的先后顺序,将满足要求的一个或者多个过滤器生成一个FilterChain 2.url-pattern配置  配置web.xml文件,用于定义映射的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    7.4.2 [servlet-mapping]元素及其子元素 249 7.5 一个实例 250 7.6 小结 253 第8章 数据库访问 254 8.1 驱动程序的类型 254 8.1.1 jdbc-odbc桥 254 8.1.2 部分本地api java驱动程序 255 8.1.3 jdbc网络纯java...

    java filter过滤器

    过滤器Filter也具有生命周期:init()-&gt;doFilter()-&gt;destroy(),由...在servlet2.4中,过滤器同样可以用于请求分派器,但须在web.xml中声明,&lt;dispatcher&gt;INCLUDE或FORWARD或REQUEST或ERROR该元素位于filter-mapping中。

    java 过滤器 filter

    如果访问的路径中截取的内容和filter-mapping中的url-pattern相同,就会拦截用户的请求,然后到对应的filter类中,自动调用doFilter方法. 拦截之后的处理都有该法决定. (与servlet的区别: 调用doPost/doGet) .

    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-class&gt;com.vere.mvc.listener.VereMVCContextListener&lt;/listener-class&gt; 新建一个...

Global site tag (gtag.js) - Google Analytics