`
cn_arthurs
  • 浏览: 328286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在web.xml中添加多个filter

阅读更多

web.xml中的多个filter的运行顺序
walker(walker_cn@163.com)  2007-11-20
环境:tomcat 6.x

多个筛选器的运行顺序取决于下列规则:
将 filter-mapping 元素包含与请求匹配的 url-pattern的筛选器按其在 web.xml 部署描述符中出现的顺序添加到链中。
将 filter-mapping 元素包含与请求匹配的 servlet-name 的筛选器添加在链中与 URL 模式匹配的筛选器之后。
链上先进先出的,链中最后的项目往往是最初请求的资源。
也就是说:

1.以url-pattern方式配置的filter运行时肯定先于以servlet-name方式配置的filter
2.以url-partern方式配置的filter中,如果有多个与当前请求匹配,则按web.xml中filter-mapping出现的顺序来运行
3.对于以servlet-name方式配置的filter,如果有多个与当前请求匹配,也是按web.xml中filter-mapping出现的顺序来运行

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/weizhi/archive/2007/11/20/1895014.aspx

 

DEMO:

<!-- 字符编码Filter -->
	<filter>
		<filter-name>encodingFilter</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>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<!-- 后台用户登录验证Filter -->
	<filter>
		<filter-name>backendFilter</filter-name>
		<filter-class>com.maxwell.help.LoginFilter</filter-class>
	</filter>
	<!-- 前台会员登录验证Filter -->
	<filter>
		<filter-name>memberFilter</filter-name>
		<filter-class>com.maxwell.help.MemberFilter</filter-class>
	</filter>

	<!-- 字符编码Filter-mapping -->
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- 后台用户登录验证Filter-mapping -->
	<filter-mapping>
		<filter-name>backendFilter</filter-name>
		<url-pattern>/backend/*</url-pattern>
	</filter-mapping>
	<!-- 前台会员登录验证Filter-mapping -->
	<filter-mapping>
		<filter-name>memberFilter</filter-name>
		<url-pattern>/member/*</url-pattern>
	</filter-mapping>

 

分享到:
评论

相关推荐

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

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

    在web.xml中引入其他xml配置文件的步骤

    ### 在web.xml中引入其他XML配置文件的步骤 在Java Web开发中,`web.xml`作为Web应用程序的核心配置文件,负责定义应用级别的配置信息。为了提高代码的可维护性和复用性,有时需要将一部分配置内容提取到独立的XML...

    web.xml配置详解, web.xml web.xml 配置实例

    * filter-mapping 元素:一旦命名了一个过滤器,就要利用 filter-mapping 元素把它与一个或多个 servlet 或 JSP 页面相关联。 * listener 元素:事件监听程序在建立、修改和删除会话或servlet 环境时得到通知。 * ...

    Tomcat中用web.xml控制Web应用详解

    在 Servlet 的生命周期中,context-param 可以被多个组件所使用。 listener 元素 listener 元素用于配置监听器。监听器可以在 Web 应用启动时执行一些初始化操作。容器将创建 listener 中的类实例,并将其作为监听...

    Filter过滤器的代码及其web.xml配置代码

    在这个主题中,我们将深入理解Filter的使用方法以及如何在`web.xml`中进行配置。 首先,Filter的工作原理是基于Servlet规范中的请求链模型,当用户发送请求到服务器时,Filter会先于Servlet拦截请求,执行预定义的...

    web.xml配置文件详解

    `web.xml`文件的最外层标签为`&lt;web-app&gt;`,所有的配置项都需要定义在这个标签内,并且遵循一定的顺序。以下是对`web.xml`主要配置项的详细介绍: #### 三、配置项详解 1. ****:该标签用于指定Web应用的显示名称。...

    详解Spring mvc的web.xml配置说明

    `context-param`用于指定Spring上下文配置文件的位置,通常是一个或多个路径,用逗号分隔,如`classpath*:spring/spring-config.xml`。`ContextLoaderListener`监听器会在Web应用启动时读取这些配置文件,创建Spring...

    web.xml配置详解

    distributable 元素用于指定是否可以在多个服务器之间分发该 Web 应用,&lt;!ELEMENT distributable (true | false) &gt;。 context-param 元素用于定义 Web 应用的参数,&lt;!ELEMENT context-param (param-name, param-...

    javaweb项目中web.xml的作用

    web.xml文件是javaweb项目中的一个非常重要的配置文件,它用于初始化工程配置信息,例如welcome页面、filter、listener、servlet、servlet-mapping、启动加载级别等等。了解web.xml文件的作用和用途对于javaweb项目...

    WEB.XML详解

    在web.xml中,还可以定义多个filter,每个filter可以有多个&lt;filter-mapping&gt;节点,但每个&lt;filter-mapping&gt;都必须在对应的&lt;filter&gt;节点之后。因为当Web容器解析到filter-mapping时,必须确保filter-name已经被定义,...

    web.xml各种配置

    web.xml中可以定义多个配置元素,包括但不限于: - **icon**: 指定IDE和GUI工具用来表示Web应用的图像文件位置。 - **context-param**: 定义Web应用范围内的初始化参数。 - **listener**: 声明Web应用启动和终止时...

    web.xml文件配置.doc

    在filter配置中,多个filter的初始化顺序由它们在web.xml文件中的位置决定,但filter拦截资源的顺序则是根据filter-mapping的顺序进行。每个filter-mapping对应一个filter,且filter-mapping必须位于相应的filter...

    加载spring 文件,在web.xml中的配置

    除了默认的`/WEB-INF/applicationContext.xml`,你还可以通过`contextConfigLocation`指定多个配置文件,用逗号分隔它们,例如`&lt;param-value&gt;classpath:app-config.xml,classpath:db-config.xml&lt;/param-value&gt;`,这...

    java web项目 web.xml配置详解

    `web.xml`是Java Web应用的核心配置,它管理了Servlet、过滤器和监听器等组件,以及会话、安全、错误处理等多个方面。理解和熟练掌握`web.xml`配置,能有效提升开发效率,保证应用的稳定性和安全性。在实际开发中,...

    web.xml详解.txt

    此标签表明Web应用是否支持分发部署,即多个JSP容器之间能否共享会话状态。 #### 四、示例 以下是一个简单的`web.xml`文件示例: ```xml &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt; &lt;web-app xmlns=...

    web.xml中标签详解

    它可以包含多个 `&lt;param-name&gt;` 和 `&lt;param-value&gt;` 子元素,用于指定参数的名称和值。 * `&lt;description&gt;` 元素:用于声明描述信息。 * `&lt;param-name&gt;` 元素:用于指定上下文参数的名称。 * `&lt;param-value&gt;` 元素:...

    Web.xml配置文件.pdf

    此时,`Web.xml`可能不是唯一的部署描述符来源,服务器会将多个XML配置文件合并,包括`META-INF/web-fragment.xml`和`WEB-INF/web.xml`。 总结,`Web.xml`是Java Web应用的心脏,它定义了应用的架构、行为和运行...

Global site tag (gtag.js) - Google Analytics