`
li200429
  • 浏览: 151360 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

servlet中的filter对servlet过滤的执行顺序

    博客分类:
  • java
阅读更多

在配置web工程中的web.xml文件时,filter可以过滤servlet,那对同一个servlet配置多个filter时,执行顺序是怎样的呢?看如下配置:

<filter>
  	<filter-name>CheckLoginFilter</filter-name>
  	<filter-class>web.CheckLoginFilter</filter-class>
 </filter>
 <filter-mapping>
        <filter-name>CheckLoginFilter</filter-name>
        <servlet-name>mvc-dispatcher</servlet-name>
</filter-mapping>

<filter>
	<filter-name>Set Character Encoding</filter-name>
	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
</filter>
<filter-mapping>
	<filter-name>Set Character Encoding</filter-name>
	<servlet-name>mvc-dispatcher</servlet-name>
</filter-mapping>

<filter>
	<filter-name>httpPutFormFilter</filter-name>
	<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>httpPutFormFilter</filter-name>
	<servlet-name>mvc-dispatcher</servlet-name>
</filter-mapping>

<servlet>
	<servlet-name>mvc-dispatcher</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:mvc-dispatcher-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>mvc-dispatcher</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping>
 

 filter的执行顺序是根据filter-mapping配置的先后执行的。按照上面的配置,第一个filter执行是CheckLoginFilter。那么servlet什么时候执行呢?

那要看一下webx中配置的执行顺序:listener->filter->servlet


所以上面的配置执行顺序是:
CheckLoginFilter->Set Character Encoding->httpPutFormFilter->mvc-dispatcher。

 

 

分享到:
评论

相关推荐

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

    filter 的加载顺序是在 servlet 之前的,因为 filter 需要对请求和响应进行过滤和修改,从而实现对 Web 应用的安全和过滤。servlet 的加载顺序是最后的,因为 servlet 需要处理请求和响应,从而实现对 Web 应用的...

    简单使用Filter模拟Servlet中的过滤器

    本篇博客“简单使用Filter模拟Servlet中的过滤器”主要探讨了如何在实际应用中实现和配置Filter,以及其工作原理。虽然描述部分为空,但我们可以从标题推测,博主可能详细讲解了如何创建一个基本的Filter类,实现...

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

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

    Servlet中的Filter

    Servlet中的Filter是Java Web开发中的一个重要组件,它主要用于在Servlet处理请求之前或之后对请求和响应进行拦截和处理。Filter不直接处理用户请求,而是通过Filter链的方式串联多个Filter,形成一个处理流程。 1....

    简单的servlet+Filter的例子

    Servlet和Filter是Java Web开发中的两个重要概念,它们在构建动态Web应用程序中起着关键作用。Servlet是一种Java类,用于扩展服务器的功能,处理客户端(如浏览器)的请求,并向其发送响应。而Filter则是在Servlet...

    servlet过滤器技术实例,

    在本实例中,我们将深入探讨Servlet过滤器(Filter)的使用和实现,以及它在实际应用中的重要性。 一、Servlet过滤器简介 Servlet过滤器遵循Java Servlet规范,通过实现`javax.servlet.Filter`接口来创建自定义过滤...

    jsp+servlet登录验证过滤器

    5. **过滤器链(Filter Chain)**:多个过滤器可以串联起来形成过滤器链,按照定义的顺序逐个执行。过滤器链允许开发者在单个请求中执行多个操作,如身份验证、授权、数据转换等。 6. **配置过滤器**:在`web.xml`...

    servlet_filter.rar_Servlet filter_重写filter

    Servlet Filter是Java Servlet API中的一个重要概念,它是对HTTP请求和响应进行拦截处理的机制,用于在请求被实际的Servlet处理之前或之后执行特定的操作。在这个压缩包“servlet_filter.rar”中,我们聚焦于Servlet...

    Servlet之Filter深入讲解及实例研究

    当一个请求到达Web应用程序时,Filter链会被调用,每个Filter按顺序执行其`doFilter()`方法,传递请求和响应对象到下一个Filter或目标Servlet。 2. **生命周期** Filter有三个主要的方法:`init()`, `doFilter()`,...

    web.xmllistener、filter、servlet加载顺序.pdf

    在Web应用开发中,了解`web.xml`中的监听器(XMLListener)、过滤器(Filter)和Servlet的加载顺序是至关重要的。这些组件是Java Servlet规范的一部分,用于增强和控制Web应用的行为。以下是对这些概念的详细说明: ...

    tomcat、struts2、servlet Filter(过滤器) 工作原理

    Servlet Filter(过滤器)是Servlet API的一部分,它允许开发者在请求被Servlet处理之前或之后对请求和响应进行拦截和修改。Filter可以用来实现如登录验证、字符编码转换、日志记录等多种功能。当一个请求到达Web...

    JAVA WEB中的Servlet过滤器

    在Java Web开发中,Servlet过滤器(Filter)是不可或缺的一部分,它允许开发者在请求到达Servlet之前或响应离开Servlet之后对其进行处理。Servlet过滤器是按照指定的配置顺序进行调用的,能够实现数据的预处理、后...

    Java servlet过滤器配置详解

    在实际项目中,过滤器可以组合使用,通过调整`filter-mapping`的顺序来决定哪个过滤器先执行。同时,也可以根据需要配置多个`filter-mapping`,指定过滤器只对特定的URL或Servlet生效。 总结来说,Java Servlet过滤...

    servlet filter

    Servlet过滤器遵循Java Servlet规范中的Filter接口,该接口定义了三个关键方法:`init()`, `doFilter()`, 和 `destroy()`。`init()`方法在过滤器被创建时调用,用于初始化过滤器;`doFilter()`是核心方法,每次请求...

    servlet过滤器验证用户登录

    在IT领域,特别是Java Web开发中,Servlet过滤器(Filter)是实现用户权限管理、登录状态验证等关键功能的重要机制之一。本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的...

    servlet+jsp实现过滤器 防止用户未登录访问

    关于过滤器的配置部分,通常需要在web.xml文件中对过滤器进行声明,并指定它所拦截的url模式。例如: ```xml &lt;filter&gt; &lt;filter-name&gt;LoginFilter&lt;/filter-name&gt; &lt;filter-class&gt;...

    servlet过滤器

    Servlet过滤器遵循Servlet规范中的Filter接口,该接口定义了三个关键方法:`doFilter()`, `init()` 和 `destroy()`。`doFilter()` 方法是核心,它在每次请求经过过滤器时被调用。`init()` 在过滤器初始化时执行,而`...

    Servlet与jsp与Filter的使用

    Filter的运作依赖于FilterChain对象,这是一个设计模式的应用,用于管理多个Filter的执行顺序。当一个请求到达时,服务器会根据web.xml配置文件中的过滤器映射,依次调用每个Filter的doFilter方法。每个Filter可以...

    过滤器 java servlet

    Java Servlet中的过滤器(Filter)是Java Web开发中一个非常重要的概念,它是Servlet API的一部分,主要用于在请求被发送到目标Servlet或JSP之前对请求进行预处理,以及在响应返回给客户端之前对响应进行后处理。...

    servlet过滤器详解

    ### Servlet过滤器详解 #### 一、Filter的基本...通过以上介绍,我们可以了解到Servlet过滤器的强大功能及其在Web开发中的重要作用。理解并熟练掌握过滤器的使用可以帮助开发者更好地管理Web应用的请求和响应流程。

Global site tag (gtag.js) - Google Analytics