在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代码如下:
这样.不管是forward的请求还是request的请求.都会被这个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过滤..
Servlet2.4+ Filter应用
本文介绍在Servlet2.4及以上版本中如何通过配置filter的dispatcher属性来确保forward请求也能触发filter。提供了详细的配置示例,适用于需要对forward请求进行过滤的场景。
703

被折叠的 条评论
为什么被折叠?



