Servlet2.4以上的filter新特性

本文介绍在Servlet2.4及以上版本中如何通过配置filter的dispatcher属性来确保forward请求也能触发filter。提供了详细的配置示例,适用于需要对forward请求进行过滤的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Servlet2.4以下的版本中 WEB组件forward()到另外一个 WEB组件的时候是不执行filter.最近项目中既需要forward()的方式.又需要forward请求访问filter.查阅了一下google.发现Servlet2.4以上版本的可以配置filter的规则,如下:

1,只有当request直接来自客户,过滤器才生效,对应为REQUEST条件。

2,只有当request被一个请求分发器使用forward()方法转到一个Web构件时(采用或定义),对应称为FORWARD条件。

3,类似地,只有当request被一个请求分发器使用include()方法转到一个Web构件时(采用或定义),对应称为INCLUDE条件。

4,只有当request被一个请求分发器使用“错误信息页”机制方法转到一个Web构件时,对应称为ERROR条件。

·第五种过滤器作用的条件可以是上面四种条件的组合。

然后在web.xml中指定某个filter的dispather代码如下:

<filter-mapping>
<filter-name>cache</filter-name>
<url-pattern>/portal/**</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

这样.不管是forward的请求还是request的请求.都会被这个filter过滤..
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值