被忽视的servlet filter配置参数dispatcher

最近项目遇到一种情况,偶坚持index.jsp采用forward跳转到action,而另一位同事发现这种方式没进入他写的一个filter,导致出现一些未被过滤的问题,于是被改成redirect方式,以便进入过滤器。

访问首页被redirect,懂的自然懂,相当于每次访问首页发了两次请求,对于首页这种访问量相当大的页面,相当不利。

其实我们都忽视了filter一个配置参数:dispatcher,因为默认filter只过滤拦截redirect request , 对于forward(服务器端跳转)不处理。而dispatcher就是解决问题之道。

dispatcher的描述如下:

Element : dispatcher
Data Type : string
Enumerated Values :
– FORWARD
– INCLUDE
– REQUEST
– ASYNC
– ERROR

可用值有5个,有经验的一看就明白,所以知道这些以后,项目里面的问题可以很容易解决掉,只需要配置如下即可:

<filter-mapping>
    <filter-name>test</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <!-- 可以配置多个dispatcher -->
</filter-mapping>

http://cssor.com/servlet-filter-config-dispatcher-element.html

参与评论

电子邮件地址不会被公开。 必填项已用*标注

*

全部分类
Books(4)code(7)database(6)html&css(24)java(11)JavaScript(48)jQuery(24)linux(20)python(1)React(1)share(1)soft(4)solution(53)thinking(17)vim(9)WordPress(8)前端优化(12)拓展(33)服务器(32)移动开发(4)自然(22)