最近开发遇到一个问题 在WEB项目中 需要对action和jsp都进行访问控制 因此使用Filter(过滤器)充当拦截器 对请求(request)中的地址过滤拦截 对拦截到的Url做返回登录页(或者首页)处理
问题一:拦截action无效
在web.xml中配置好之后发现对jsp的访问能够过滤,但是过滤不了对action的请求。调试后发现访问action时用于请求过滤的Filter根本就没执行(将.action改成.do后,过滤器也没有执行)。
解决办法:在web.xml中改变Filter的映射顺序,将请求过滤的Filter放到Struts2的核心过滤器之前,则可成功对action进行过滤。这里Filter的调用顺序根据web.xml中<filter-mapping>的声明顺序,而不是根据<filter>元素的声明顺序。
<filter>
<filter-name>CheckLogin</filter-name>
<filter-class>com.myFilter.LoginFil