Java 向Grails应用程序动态添加servlet过滤器
我有一个场景,如果用户向我的Grails应用程序提供某种类型的输入,我想动态添加一个Java 向Grails应用程序动态添加servlet过滤器,java,servlets,grails,runtime,servlet-filters,Java,Servlets,Grails,Runtime,Servlet Filters,我有一个场景,如果用户向我的Grails应用程序提供某种类型的输入,我想动态添加一个javax.servlet.Filterimpl(MyCustomerFilter),以便所有对服务器的后续请求都通过这个过滤器 换句话说,当Grails应用程序启动时,MyCustomFilter不会被激活,也不在过滤器链中。但是,当用户做了一些事情(比如对服务器端控制器进行AJAX调用)时,我希望将MyCustomFilter添加到过滤器链中并激活它(用于所有未来/后续请求) 这可能吗?如果是,怎么做?如果没
javax.servlet.Filter
impl(MyCustomerFilter
),以便所有对服务器的后续请求都通过这个过滤器
换句话说,当Grails应用程序启动时,MyCustomFilter
不会被激活,也不在过滤器链中。但是,当用户做了一些事情(比如对服务器端控制器进行AJAX调用)时,我希望将MyCustomFilter
添加到过滤器链中并激活它(用于所有未来/后续请求)
这可能吗?如果是,怎么做?如果没有,原因是什么?您不能动态添加筛选器,但是您可以添加筛选器,根据用户输入包装请求或仅沿筛选器链传递请求为什么不将其添加到链中,但允许在筛选器本身的运行时切换实际筛选?谢谢@Joshuamore(+1)-我想我不太明白你的意思。您是说您可以(以编程方式)激活/停用链上的过滤器吗。如果是这样,我如何指定
MyCustomFilter
在链上,但在启动时停用,然后,我如何在以后以编程方式激活它?请参见Graeme的回答,这是我在评论中描述的。