`
- 浏览:
367371 次
- 性别:
-
<!-- 定义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方法传递过来或者直接从客户端传递过来的,则必须经过这个过滤器。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
DOCTYPE 声明中包含了几个特性,告诉我们关于 DTD 的信息,如 web-app 定义该文档的根元素、PUBLIC 意味着 DTD 文件可以被公开使用、DTD 由 Sun Microsystems, Inc. 维护等。 web.xml 文件的根元素是 web-app,DTD...
`web.xml`文件主要负责以下几个方面: - **初始化参数**:为Servlet或整个应用设置初始化参数。 - **Servlet定义**:注册Servlet并指定其映射路径。 - **过滤器与过滤器链**:定义过滤器,并配置过滤规则。 - *...
下面将详细介绍`web.xml`中常见的几个主要元素及其作用。 #### 三、关键元素解析 ##### 1. `<display-name>` 和 `<description>` - **`<display-name>`**:定义Web应用的名称,这个名称可以用于日志记录或显示在...
在Struts2中,`web.xml`通常包含以下几个关键配置元素: 1. **欢迎页面(Welcome-file-list)**:定义当用户访问没有明确资源路径的Web应用时,服务器将展示的默认页面。 2. **Filter(过滤器)**:Struts2使用`...
过滤器 `<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()`方法。过滤器可以决定是否继续调用下一个过滤...
本文档将深入探讨Tomcat中的两个核心配置文件:`web.xml`和`server.xml`,并提供详细的配置说明和实例。 ### 一、Tomcat介绍 1.1 **Tomcat简介** Tomcat是开源的Servlet容器,它实现了Java Servlet和JavaServer ...
`web.xml`文件以XML格式编写,主要包括以下几个部分: 1. **XML声明**:指定了XML文档的版本及字符编码方式。 ```xml <?xml version="1.0" encoding="ISO-8859-1"?> ``` 2. **DOCTYPE声明**:指定了文档类型...
接下来,我们将深入探讨`web.xml`文件中常用的几个关键标签及其用途。 #### 1. `<display-name>`标签 `<display-name>`标签用于指定Web应用的显示名称,这在管理控制台中非常有用,便于识别和管理不同的应用。例如...
本篇文章主要介绍了Java Web开发中Filter过滤器的概念及其使用方法。通过示例代码详细展示了如何编写和配置一个简单的Filter来解决字符集乱码问题。理解Filter的工作机制有助于开发者更好地利用这一功能来增强Web...
过滤器的执行顺序由它们在`web.xml`中的配置顺序决定。如果存在多个过滤器,它们会按照注册的映射顺序依次处理请求。如果一个过滤器决定阻止请求,那么后续的过滤器和目标Servlet都不会收到这个请求。 总结起来,...
第20章 filter在web开发中的应用 588 20.1 过滤器概述 588 20.2 filter api 589 20.2.1 filter接口 589 20.2.2 filterconfig接口 590 20.2.3 filterchain接口 590 20.3 过滤器的部署 591 20.4 过滤器的开发 ...
此外,还可以在web.xml中配置过滤器(Filter)以实现如GZIP压缩、字符编码转换等功能,以及监听器(Listener)来管理应用的生命周期。 **步骤一:** 创建一个新的Spring项目后,我们需要找到项目的结构。在IDE(如...
在Java Web开发中,Filter(过滤器)是Servlet API中的一个重要组成部分,它允许开发者在请求被发送到目标资源(如Servlet、JSP页面)之前和之后进行处理。Filter可以用来实现诸如数据校验、字符编码转换、登录检查...
标题中的“jsp实现下载excel,word,pdf,jpg,gif,xml,js过滤器实现文档.docx”描述了一个使用JavaServer Pages(JSP)技术来处理文件下载的问题,特别是涉及了如何解决在Tomcat和Resin服务器上下载中文文件名时出现的...