由于某些未知原因,我无法在struts2上使用过滤器.我正在使用apache tomcat并使用过滤器来限制用户访问(我更喜欢而不是拦截器).我的/ tela-paciente请求没有被过滤的原因是什么?
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>Paciente</filter-name>
<filter-class>br.ufg.inf.sas.filtros.FiltroPaciente</filter-class>
</filter>
<filter-mapping>
<filter-name>Paciente</filter-name>
<url-pattern>/tela-paciente</url-pattern>
</filter-mapping>
解决方法:
您是否尝试过将过滤器映射设置为“ / tela-paciente / *”(< url-pattern> / tela-paciente / *< / url-pattern>)?
您的问题是tomcat问题,在与struts相关的特定映射中没有任何内容.
史蒂文·贝尼特斯(Steven Benitez)的以下说法是正确的-我很糟糕(“没有人会进入您的安全筛选器”).
有关过滤器的更多常规信息:除非过滤器之一通过不调用过滤器链来停止处理,否则它们将被处理(在此处可能是这种情况-这应该是一件罕见的事情,仅在处理异常,重定向URL或防止页面加载).您可以根据需要将任意数量的过滤器绑定到重叠的URL集.