`
c_fanatic
  • 浏览: 66957 次
  • 性别: 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
分享到:
评论

相关推荐

    超级注意复杂整合环境中的Filter-Mapping的顺序--配置单点登陆及UrlRewrite有感

    这篇博客“超级注意复杂整合环境中的Filter-Mapping的顺序--配置单点登陆及UrlRewrite有感”深入探讨了如何在这样的环境中正确配置Filter和Mapping,以实现单点登录(Single Sign-On, SSO)以及URL重写。下面我们将...

    xml里filter-mapping中的dispatcher的使

    ### XML中的filter-mapping与dispatcher使用详解 在Java Web开发中,过滤器(Filter)是十分重要的组件之一,主要用于处理客户端请求或响应服务器反馈时的数据处理任务,如编码转换、登录验证、敏感词过滤等。而在...

    Servlet-api setvlet文档

    10. **MVC模式与Servlet**:虽然Servlet主要用于处理请求和响应,但在实际应用中,常常与Model-View-Controller(MVC)设计模式结合,如Spring MVC框架,将业务逻辑、视图渲染和控制逻辑分离。 通过深入学习Servlet...

    servlet-2_4-fr-spec-doc.rar_doc_servlet 2.4 spec_servlet api_ser

    3. **过滤器(Filter)**:Servlet 2.4引入了过滤器,允许在请求到达Servlet之前或从Servlet返回响应之后对其进行处理。过滤器通过实现`javax.servlet.Filter`接口并配置在部署描述符中。它们可以用于数据验证、身份...

    Servlet--2.filter

    请求会按顺序通过这些Filter,每个Filter都有机会处理请求和响应。 3. **doFilter()方法**:这是Filter的核心方法,它接收ServletRequest和ServletResponse对象,以及一个FilterChain对象。FilterChain对象用于将...

    web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序

    ### web.xml文件中配置(servlet, spring, filter, listener)的加载顺序 在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如...

    servlet-api.jar

    6. **Filter和FilterChain**:Servlet API还定义了`Filter`接口,允许开发者在请求到达Servlet之前或之后对其进行拦截和处理。`FilterChain`则允许一个过滤器链中的多个过滤器按顺序执行。 7. **Servlet的多线程...

    java-servlet-连接mysql-数据库.docx

    这里,你需要定义一个Servlet或Filter来处理数据库连接。通常,你会声明一个Servlet,然后在`&lt;servlet-class&gt;`标签中指定你的实现类,同时在`&lt;servlet-mapping&gt;`标签中指定URL模式,使得请求能够到达这个Servlet。 ...

    servlet-2013-08-14

    虽然Servlet仍然是构建Web应用的基础,但随着Java EE(现在称为Jakarta EE)的发展,出现了更高级的组件模型,如Filter和Servlet 3.0引入的Asynchronous Servlet。Spring MVC和JSF等框架也提供了更抽象的编程模型,...

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

    Filter的执行顺序由`&lt;filter-mapping&gt;`在`web.xml`中的顺序决定,先出现的Filter先执行。在Filter中,可以通过调用`doFilter()`方法将请求传递给下一个Filter或目标资源。Filter还可以选择是否中断请求链,通过调用`...

    servlet-ppt java web相关servlet课件

    - `&lt;servlet-mapping&gt;`元素将URL与Servlet关联,`&lt;url-pattern&gt;`指定匹配的URL模式。 4. **请求处理**: - `doGet()`和`doPost()`方法处理HTTP GET和POST请求,分别对应HTTP协议的两种主要请求方式。 - 使用`...

    Tomcat中web.xml文件的详细说明

    init-param 元素定义了 Servlet 的初始化参数,而 load-on-startup 元素指定了 Servlet 的加载顺序。 7. servlet-mapping 元素 servlet-mapping 元素定义了 Servlet 的映射关系,例如: ```xml &lt;servlet-mapping&gt;...

    web.xml 文件详解

    4. **过滤器映射**(`&lt;filter-mapping&gt;`):将过滤器与URL模式或Servlet关联,决定过滤器的执行顺序和作用范围。 5. **监听器**(`&lt;listener&gt;`):定义监听器类,用于监听Web应用中的各种事件,如ServletContext、...

    servlet api servlet api

    Filter允许在Servlet处理请求之前和之后进行拦截操作,如认证、编码转换、日志记录等。通过实现`Filter`接口并配置在`web.xml`中启用。 8. **监听器(Listener)**: 监听器可以监听特定的事件,如会话创建、请求...

    serlvet 源码 servlet-src 源文件

    7. **Servlet映射**:在Web应用的部署描述符(web.xml)中,我们可以通过`&lt;servlet&gt;`和`&lt;servlet-mapping&gt;`元素定义Servlet及其URL映射,决定哪些请求由哪个Servlet处理。 8. **请求和响应对象**:`...

    Java-Servlet-API.zip

    9. **过滤器**:`javax.servlet.Filter`接口允许在请求到达Servlet之前对其进行拦截和处理。过滤器可以用来实现如登录检查、GZIP压缩、字符编码转换等功能。 10. **监听器**:Servlet API还包含各种监听器,如`...

    servlet-api

    Servlet API还提供了过滤器(Filter)机制,允许在请求到达Servlet之前进行拦截和处理,如登录检查、字符编码转换等。过滤器通过实现`Filter`接口并配置在web.xml或使用注解实现。 八、监听器(Listener) 监听器...

    web.xml配置汇总(servlet2.3)

    `filter`元素用于注册过滤器,`filter-mapping`则用于将过滤器与URL模式关联起来。 ```xml &lt;!ELEMENT filter (filter-name, filter-class, init-param*)&gt; &lt;!ELEMENT filter-name (#PCDATA)&gt; &lt;!ELEMENT filter-class...

    web.xml 中的listener、 filter、servlet 加载顺序及其详解.doc

    例如,以 filter 为例,web.xml 中当然可以定义多个 filter,与 filter 相关的一个配置节是 filter-mapping,这里一定要注意,对于拥有相同 filter-name 的 filter 和 filter-mapping 配置节而言,filter-mapping ...

Global site tag (gtag.js) - Google Analytics