首页 > 其他 > 详细

关于filter过滤器为何不能过滤转发的请求

时间:2015-12-14 18:34:50      阅读:616      评论:0      收藏:0      [点我收藏+]

在servlet-2.3中,Filter会过滤一切请求,包括服务器内部使用forward转发请求和<%@ includefile="/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>

这里FORWARD是解决request.getDispatcher("index.jsp").forward(request, response);无法触发Filter的关键,配置上这个以后再进行forward的时候就可以触发过滤器了。

在tomcat7已经是按照servlet3.0来加载了,所以默认不过滤处理转发的请求。而你测试用的weblogic还是用的servlet2.3,就能够过滤所有类型的请求。

关于filter过滤器为何不能过滤转发的请求

原文:http://www.cnblogs.com/mrsl/p/5045942.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!