在 Struts2 过滤器之前调用自己的过滤器

Invocation of own filter before Struts2 filter

我试图在 "struts2" 过滤器之前调用普通的 servlet 过滤器。如果我将我的过滤器声明放在 struts2 过滤器上方,我能够捕获基于 struts 的 URLs 但是当此自定义过滤器放在 "struts2" 过滤器下方时 web.xml,它无法捕获基于 struts 的 URL(/something.action)。除了将它放在 web.xml 中的 "struts2" 过滤器之上之外,还有什么方法可以调用我的过滤器吗?

如果 S2 应该处理请求,则 S2 过滤器结束过滤器链。

这是因为一旦进入 S2 功能,就假定附加功能将由 S2 处理,例如,通过拦截器。

这很容易改变:扩展或复制默认的 S2 过滤器,更新 doFilter 方法,并在 execute.executeAction(request, response, mapping) 调用之后恢复 chain.doFilter 调用(大致)。

您需要验证它是否按预期工作(应该,但我没有测试过)。