Java 使用Stripes拦截器阻止访问其他servlet

Java 使用Stripes拦截器阻止访问其他servlet,java,servlets,stripes,Java,Servlets,Stripes,我使用的是Stripes 1.5,我使用的是拦截器(基于),以防止未经授权访问*。操作页面 现在我想使用相同的拦截器来阻止对servlet的访问 我已将此添加到web.xml(DisplayChart是我要保护的servlet): 条纹滤光片 显示图表 要求 但是它不起作用,当访问DisplayChartservlet路径时,拦截器intercept方法不会执行(即使我@截取了生命周期的所有设置) 当另一个servlet被访问时,拦截器有没有执行的方法?或者Stripes筛选器不打算以这种方

我使用的是Stripes 1.5,我使用的是拦截器(基于),以防止未经授权访问
*。操作
页面

现在我想使用相同的拦截器来阻止对servlet的访问

我已将此添加到web.xml(
DisplayChart
是我要保护的servlet):


条纹滤光片
显示图表
要求
但是它不起作用,当访问
DisplayChart
servlet路径时,拦截器
intercept
方法不会执行(即使我
@截取了
生命周期的所有设置


当另一个servlet被访问时,拦截器有没有执行的方法?或者Stripes筛选器不打算以这种方式使用(我必须使用普通的
筛选器
)?

我不知道是否可以将Stripes拦截器应用于非Stripes servlet

但我很确定你不应该

Stripes拦截器特定于Stripes和Stripes的请求生命周期。对普通servlet的请求不是Stripes请求,并且不会经过此生命周期,即使它经过Stripes过滤器。这样的请求不应该使用Stripes拦截器,即使这是可能的


我建议您将Stripes拦截器中的授权代码分解成一个Stripes不可知的服务类,然后编写一个使用该类的标准过滤器。您的Stripes拦截器和筛选器是非常小的代码位,这些代码会传递给服务。

Stripes筛选器不能这样使用,因为Stripes筛选器实际上是Stripes前端控制器,它只向action Bean发送,在此之前可能还有Stripes拦截器

因此,正如您已经假设的,您需要一个常规的servlet过滤器

<filter-mapping>
    <filter-name>StripesFilter</filter-name>
    <servlet-name>DisplayChart</servlet-name>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>