一、概述
我们都知道Filter是属于Servlet,用于请求过滤的,通常用于过滤请求的URL,不需要进行安全验证的URL直接通过。而OncePerRequestFilter我们可能不太熟悉,该Filter从字面上理解:只执行一次的Filter。可能有人会问了,我们自己写的Filter不都只执行一次吗?为何Spring还要专门提供这么一个类来处理呢?
二、OncePerRequestFilter更加稳妥
通常 serlvet版本的不同会略有差异。如:servlet2.3与servlet2.4也有一定差异:
在servlet2.3中,Filter会经过一切请求,包括服务器内部使用的forward转发请求和<%@ include file=”/login.jsp”%>的情况
servlet2.4中的Filter默认情况下只过滤外部提交的请求,forward和include这些内部转发都不会被过滤,
因此此处我有个建议:我们若是在Spring环境下使用Filter的话,个人建议继承OncePerRequestFilter吧,而不是直接实现Filter接口。这是一个比较稳妥的选择。
网友评论