首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过WebApplicationContext访问过滤器对象

通过WebApplicationContext访问过滤器对象
EN

Stack Overflow用户
提问于 2014-03-13 16:04:49
回答 2查看 485关注 0票数 1

我想在Filter对象根据web.xml定义添加方法之后调用它。我得到的只是一个WebApplicationContext对象(让我们称之为:wac)。

  • 我可以通过:wac.getServletContext().addFilter("otherfilter", otherFilter);添加新的过滤器对象
  • 此外,我还可以通过:wac.getServletContext().getFilterRegistration("myfilter")成功地测试它的存在。

但是,我如何访问(并可能修改)之前添加的Filter对象?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-13 16:12:01

我不知道如何做到您想要的,但这个问题通常是通过不同的方法解决的。

您可以在应用程序上下文中将Filter声明为bean,然后在web.xml中注册一个DelegatingFilterProxy,将过滤委托给过滤器。

在本例中,您的过滤器将是一个普通的Spring,您将能够像任何其他bean一样访问它。

票数 3
EN

Stack Overflow用户

发布于 2014-03-13 16:24:59

Servlet没有提供任何机制来直接访问Filter实例,一旦它被添加到ServletContext中。使用Servlet获得的最好结果是您已经找到的FilterRegistration接口,它允许您通过web.xml修改相同的配置选项集。

具体取决于您想要做什么,您可能可以使用init参数编写解决这个问题的方法,但这永远不会是一个特别干净的解决方案。我会使用由axtavt提出的DelegatingFilterProxy解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22384297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档