Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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
Java 向Grails应用程序动态添加servlet过滤器_Java_Servlets_Grails_Runtime_Servlet Filters - Fatal编程技术网

Java 向Grails应用程序动态添加servlet过滤器

Java 向Grails应用程序动态添加servlet过滤器,java,servlets,grails,runtime,servlet-filters,Java,Servlets,Grails,Runtime,Servlet Filters,我有一个场景,如果用户向我的Grails应用程序提供某种类型的输入,我想动态添加一个javax.servlet.Filterimpl(MyCustomerFilter),以便所有对服务器的后续请求都通过这个过滤器 换句话说,当Grails应用程序启动时,MyCustomFilter不会被激活,也不在过滤器链中。但是,当用户做了一些事情(比如对服务器端控制器进行AJAX调用)时,我希望将MyCustomFilter添加到过滤器链中并激活它(用于所有未来/后续请求) 这可能吗?如果是,怎么做?如果没

我有一个场景,如果用户向我的Grails应用程序提供某种类型的输入,我想动态添加一个
javax.servlet.Filter
impl(
MyCustomerFilter
),以便所有对服务器的后续请求都通过这个过滤器

换句话说,当Grails应用程序启动时,
MyCustomFilter
不会被激活,也不在过滤器链中。但是,当用户做了一些事情(比如对服务器端控制器进行AJAX调用)时,我希望将
MyCustomFilter
添加到过滤器链中并激活它(用于所有未来/后续请求)


这可能吗?如果是,怎么做?如果没有,原因是什么?

您不能动态添加筛选器,但是您可以添加筛选器,根据用户输入包装请求或仅沿筛选器链传递请求

为什么不将其添加到链中,但允许在筛选器本身的运行时切换实际筛选?谢谢@Joshuamore(+1)-我想我不太明白你的意思。您是说您可以(以编程方式)激活/停用链上的过滤器吗。如果是这样,我如何指定
MyCustomFilter
在链上,但在启动时停用,然后,我如何在以后以编程方式激活它?请参见Graeme的回答,这是我在评论中描述的。