在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ include file="/index.jsp"%>的情况。
到了servlet-2.4中Filter默认下只拦截外部提交的请求,forward和include这些内部转发都不会被过滤,但是有时候我们需要forward的时候也用到Filter,这样就需要如下配置。
<filter>
<filter-name>TestFilter</filtername>
<filter-class>anni.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filtername>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EXCEPTION</dispatcher>
</filter-mapping>
这样TestFilter就会过滤所有状态下的请求。如果我们没有进行设置,默认使用的就是REQUEST。而EXCEPTION是在isErrorPage="true"的情况下出现的,这个用处不多,看一下即可。
这里FORWARD是解决request.getDispatcher("index.jsp").forward(request, response);无法触发Filter的关键,配置上这个以后再进行forward的时候就可以触发过滤器了。
Filter还有一个有趣的用法,在filter-mapping中我们可以直接指定servlet-mapping,让过滤器只处理一个定义在web.xml中的servlet。
<filter-mapping>
<filter-name>TestFilter</filter-name>
<servlet-name>TestServlet</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>anni.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/TestServlet</url-pattern>
</servlet-mapping>
直接指定servlet-name,TestFilter便会引用TestServlet配置的url-pattern,在某些filter与servlet绑定的情况下不失为一个好办法。
分享到:
相关推荐
在这个主题中,我们将深入理解Filter的使用方法以及如何在`web.xml`中进行配置。 首先,Filter的工作原理是基于Servlet规范中的请求链模型,当用户发送请求到服务器时,Filter会先于Servlet拦截请求,执行预定义的...
以下是配置Filter过滤器处理JSP中文乱码的详细步骤: 1. **配置web.xml文件** 在项目的`web.xml`文件中,你需要添加一个Filter来定义处理乱码的逻辑。首先,声明一个新的过滤器,给它一个唯一的名称,例如`...
2. **Filter配置**: - Filter在Servlet容器中扮演着预处理和后处理请求的角色。在Spring MVC中,常见的Filter包括字符编码Filter、登录验证Filter等。 - `CharacterEncodingFilter`:确保请求和响应的字符编码...
以下是对JSP Servlet中Filter配置的详细总结: 1. 过滤所有资源: 当你想让一个Filter作用于应用中的所有资源时,你需要在`web.xml`配置文件中定义一个Filter,并设置`<url-pattern>`为`/*`。这样,任何通过HTTP...
直接可以运行,包含测试类,对HTML和SQL进行过滤,方便扩展。并且可以配置不拦截的路径,包含注释,方便学习。 博客地址:https://blog.csdn.net/u011974797/article/details/121792680
在给定的标题“Data、Type属性与Intent-filter配置”中,我们关注的重点是如何通过设置`data`和`type`属性来过滤Intent,以便指定的应用组件(如Activity)能够响应特定的用户操作或系统事件。 `data`属性在Intent-...
### web.xml文件中配置(servlet, spring, filter, listener)的加载顺序 在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如...
将这些jar包放入Tomcat的`lib`目录下,然后在`web.xml`配置文件中添加filter和filter-mapping,定义过滤器的类名以及其在请求处理链中的位置。例如,添加如下配置: ```xml <filter> <filter-name>CorsFilter...
web.xml配置filter和filtermapping,编写类 读取或写死filter的init-params中的字符编码传入 reqeust中 调用dofilter方法,乱码解决
标题中的“osgi session共享 支持springmvc 配置个filter即可”表明我们要讨论的是在OSGi(Open Service Gateway Initiative)环境中,如何通过Spring MVC并利用Filter来实现多个服务之间的Session共享。OSGi是一种...
本文将详细介绍 OSCache 的配置和使用方法。 **一、缓存整个页面** OSCache 提供了一个名为 `CacheFilter` 的过滤器,该过滤器用于实现页面级别的缓存。通过在 `web.xml` 文件中配置,我们可以指定哪些页面或一组...
本文将对 web.xml 的配置进行详细的解释,包括加载顺序、context-param、listener、filter、servlet 等配置节的使用和顺序。 加载顺序 ---------- 加载顺序是指 web.xml 文件中的元素出现的顺序,它对 Web 应用...
本篇文章将详细讲解如何通过使用`web.xml`配置文件来实现Filter过滤器,以实现对网站访问量的统计。这种方法是Java Web应用中的经典实践,适用于传统的基于Servlet的项目。 首先,我们需要了解Filter的基本概念。...
最新版的druid和旧版在filter配置方面有些不同,以下是旧版druid中配置filter: spring: ##数据库连接信息 datasource: url: jdbc:mysql://localhost:3306/young username: root password: root driver-class...
### Struts 2.0 详细配置解析 #### 一、Struts 2.0 简介 Struts 2.0 是一个基于 Java 的开源框架,用于开发 Web 应用程序。它继承了 Struts 1.x 的优点,并在架构上进行了改进,更加灵活且易于扩展。Struts 2.0 ...
正常情况下,我们需要将shiro的filter配置在所有的filter前面,当然和encodingFilter这个filter是不区分前后的。因为两者互相不影响的。spring-shiro.xml 这里我们将来看看spring-shiro.xml的配置,这里我采取倒叙的...
下面将结合给定的部分内容,详细分析如何使用注解来配置`Filter`。 ```java @WebFilter( filterName = "encodingFilter", urlPatterns = {"/*"}, initParams = { @WebInitParam( name = "charset", value = ...
以下是对web.xml配置文件中各个元素的详细说明: 1. **定义头和根元素** - **XML头**:文件开头必须包含XML声明,指定XML版本和字符编码,如`<?xml version="1.0" encoding="UTF-8"?>` - **DOCTYPE声明**:紧接着...
"imu_filter_nodelet.xml"可能定义了ROS节点let的配置;"cfg"目录可能包含配置文件,用户可以调整滤波器的参数;"test"目录存放测试用例;"sample"可能包含示例数据或使用示例;".git"是Git版本控制系统的工作目录;...
### Java中的Filter(过滤器)使用详解 ...以上就是关于Java中Filter(过滤器)的一些基本概念和具体实现方式的详细介绍。通过合理的使用Filter,开发者可以轻松地实现许多强大的功能,提高应用程序的安全性和性能。