Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Servlets 有没有办法只运行一次servlet过滤器?_Servlets_Servlet Filters_Web.xml - Fatal编程技术网

Servlets 有没有办法只运行一次servlet过滤器?

Servlets 有没有办法只运行一次servlet过滤器?,servlets,servlet-filters,web.xml,Servlets,Servlet Filters,Web.xml,有没有办法在web.xml中定义某个servlet筛选器只能执行一次?否。筛选器不适用于此。无论过滤器在做什么,都应该由一个代理来完成 当您还没有使用Servlet 3.0时,请删除@WebListener,并以旧的方式在web.xml中注册它,如下所示: <listener> <listener-class>com.example.Config</listener-class> </listener> com.example.Conf

有没有办法在
web.xml
中定义某个servlet筛选器只能执行一次?

否。
筛选器不适用于此。无论
过滤器
在做什么,都应该由一个代理来完成

当您还没有使用Servlet 3.0时,请删除
@WebListener
,并以旧的方式在
web.xml
中注册它,如下所示:

<listener>
    <listener-class>com.example.Config</listener-class>
</listener>

com.example.Config

如果您确实坚持使用
过滤器
,您可能会滥用作业的
init()
方法,只需在
doFilter()中调用
chain.doFilter(请求、响应)
方法。

一种迂回的方法是使用类变量并在第一次访问时将其设置,并将所有功能代码放在检查该变量的“if”块中

<listener>
    <listener-class>com.example.Config</listener-class>
</listener>