在研究liferay框架中看到Web.xml中加入了过滤器的标签,可以根据页面提交的URL地址进行过滤,发现有几个新标签没用过,下面就介绍以下几个过滤器的标签用法:
<!-- 定义Filter -->
<filter>
<!-- Filter的名字 -->
<filter-name>log</filter-name>
<!-- Filter的实现类 -->
<filter-class>lee.LogFilter</filter-class>
</filter>
<!-- 定义Filter拦截的URL地址 -->
<filter-mapping>
<!-- Filter的名字 -->
<filter-name>log</filter-name>
<!-- Filter负责拦截的URL 全部以/的请求,如果<url-pattern>/*.action </>,将会以拦截*.action的请求-->
<url-pattern>/*</url-pattern>
</filter-mapping>
在Servlet2.4中filter-mapping中加入了新的标签<dispatcher> ,里面有4个值即REQUEST, FORWARD,INCLUDE和ERROR,默认不写这个标签的时候是REQUEST,该标签是根据客户端传过来的地址进行过滤,FORWARD方法传过来的request方法可以拦截,<ERROR-PAGE>错误页面传过来的拦截,INCLUDE包含过来的过滤,一般REQUEST传过来的拦截.该标签可以加入多个.
下面例子是引用网上的:
例1:
Xml代码
- <filter-mapping>
- <filter-name>Logging Filter</filter-name>
- <url-pattern>/products/*</url-pattern>
- </filter-mapping>
这种情况下,过滤器将会作用于直接从客户端发过来的以/products/…开始的请求。因为这里没有制定任何的< dispatcher >元素,默认值是REQUEST。
例2:
Xml代码
- <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:
Xml代码
- <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://www.cnblogs.com/edwardlauxh/archive/2010/03/11/1918618.html
<script type="text/javascript"></script>
分享到:
相关推荐
DOCTYPE 声明中包含了几个特性,告诉我们关于 DTD 的信息,如 web-app 定义该文档的根元素、PUBLIC 意味着 DTD 文件可以被公开使用、DTD 由 Sun Microsystems, Inc. 维护等。 web.xml 文件的根元素是 web-app,DTD...
`web.xml`文件主要负责以下几个方面: - **初始化参数**:为Servlet或整个应用设置初始化参数。 - **Servlet定义**:注册Servlet并指定其映射路径。 - **过滤器与过滤器链**:定义过滤器,并配置过滤规则。 - *...
在Struts2中,`web.xml`通常包含以下几个关键配置元素: 1. **欢迎页面(Welcome-file-list)**:定义当用户访问没有明确资源路径的Web应用时,服务器将展示的默认页面。 2. **Filter(过滤器)**:Struts2使用`...
下面将详细介绍`web.xml`中常见的几个主要元素及其作用。 #### 三、关键元素解析 ##### 1. `<display-name>` 和 `<description>` - **`<display-name>`**:定义Web应用的名称,这个名称可以用于日志记录或显示在...
过滤器 `<filter>` 标签 ``` <filter> <filter-name>FilterName</filter-name> <filter-class>com.example.FilterClass</filter-class> </filter> ``` - **`filter-name`**:过滤器的名称。 - **`filter-class`...
在Java Web开发中,`web.xml`文件是应用的核心配置文件,它定义了Servlet、过滤器、监听器等组件,并负责映射它们的行为。本文将深入解析`web.xml`配置,帮助开发者理解其背后的原理和用途。 一、web.xml文件概述 `...
`web.xml`文件通常包含以下几个主要元素: 1. **`web-app`标签**:这是`web.xml`的根元素。 2. **`display-name`标签**:定义应用程序的显示名称。 3. **`context-param`标签**:定义全局配置参数。 4. **`filter`...
根据提供的文件信息,我们可以深入探讨以下几个关键的知识点: ### 1. web.xml 文件的作用与结构 #### 1.1 web.xml 文件概述 `web.xml` 是一个 XML 文件,用于配置 Java Web 应用程序中的各种组件和服务。它是 ...
在web.xml中,你可以通过`<filter>`和`<filter-mapping>`元素定义过滤器。当请求匹配到过滤器映射时,Tomcat会创建一个过滤器链,并按顺序调用每个过滤器的`doFilter()`方法。过滤器可以决定是否继续调用下一个过滤...
`web.xml`文件以XML格式编写,主要包括以下几个部分: 1. **XML声明**:指定了XML文档的版本及字符编码方式。 ```xml <?xml version="1.0" encoding="ISO-8859-1"?> ``` 2. **DOCTYPE声明**:指定了文档类型...
本文档将深入探讨Tomcat中的两个核心配置文件:`web.xml`和`server.xml`,并提供详细的配置说明和实例。 ### 一、Tomcat介绍 1.1 **Tomcat简介** Tomcat是开源的Servlet容器,它实现了Java Servlet和JavaServer ...
接下来,我们将深入探讨`web.xml`文件中常用的几个关键标签及其用途。 #### 1. `<display-name>`标签 `<display-name>`标签用于指定Web应用的显示名称,这在管理控制台中非常有用,便于识别和管理不同的应用。例如...
本篇文章主要介绍了Java Web开发中Filter过滤器的概念及其使用方法。通过示例代码详细展示了如何编写和配置一个简单的Filter来解决字符集乱码问题。理解Filter的工作机制有助于开发者更好地利用这一功能来增强Web...
1.3 关于xml的几个问题 3 1.4 xml与html的比较 4 1.4.1 xml将数据与显示分开 5 1.4.2 xml对文档的格式要求更加严格 6 1.4.3 xml有且只能有一个根元素 6 1.5 xml的编辑工具 7 1.6 xml文档 8 1.6.1 xml声明 9 ...
此外,还可以在web.xml中配置过滤器(Filter)以实现如GZIP压缩、字符编码转换等功能,以及监听器(Listener)来管理应用的生命周期。 **步骤一:** 创建一个新的Spring项目后,我们需要找到项目的结构。在IDE(如...
在Java中,实现管道过滤器通常涉及以下几个关键知识点: 1. **Filter接口**:这是所有过滤器组件需要实现的接口,定义了处理数据的方法,例如`filter()`。每个过滤器类都需实现此接口,提供其特定的处理逻辑。 2. ...
过滤器的生命周期分为几个阶段: 1. **初始化**:当服务器启动时,每个Filter的`init()`方法会被调用一次,这提供了初始化过滤器的机会。 2. **执行过滤**:每当有请求到达时,过滤器链会按注册的顺序依次调用每个...
在Java Web开发中,Filter(过滤器)是Servlet API中的一个重要组成部分,它允许开发者在请求被发送到目标资源(如Servlet、JSP页面)之前和之后进行处理。Filter可以用来实现诸如数据校验、字符编码转换、登录检查...