【发布时间】:2011-01-07 12:04:11
【问题描述】:
在 J2EE 应用程序中,如何创建可以访问安装在该应用程序服务器上的其他 Web 应用程序的全局过滤器?
【问题讨论】:
标签: java web-applications jakarta-ee websphere
在 J2EE 应用程序中,如何创建可以访问安装在该应用程序服务器上的其他 Web 应用程序的全局过滤器?
【问题讨论】:
标签: java web-applications jakarta-ee websphere
如果有人仍然感兴趣,以下是我对这个问题的发现:
对于 tomcat 和其他衍生自它的 webapp 服务器(例如:JBoss),您可以将过滤器添加到“全局”web.xml,通常位于 $TOMCAT_HOME/conf/web.xml 下。
对于 Websphere,我发现以下文章很有用:http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101859。在这种情况下,基本思想是您编写一个 ServletContext 侦听器并使用它将您的过滤器附加到应用程序
【讨论】:
这对我有用:https://stackoverflow.com/a/8815211/964681
抱歉,不能就您的问题发表评论。没有足够的“积分”。
【讨论】:
一些应用服务器/servlet 容器(Tomcat、JBoss)提供了跨上下文特性。它确实取决于您在什么范围内运行应用程序,但它不是 J2EE 功能。
http://tomcat.apache.org/tomcat-5.5-doc/config/context.html
我不确定这是否会帮助您完成您想做的事情。究竟是什么? :)
也看看这个回复:
What does the crossContext attribute do in Tomcat? Does it enable session sharing?
【讨论】:
crossContext 设置。这样,您可以创建一个在 ROOT 上运行的 webapp,并在/* 上运行过滤器。但同样,这就是理论,我无法从自己的经验中证实这一点。或者,您可以在 appserver 自己的web.xml 中声明过滤器。 +1 提示不管 :)
Servlet-API 不提供这样的安全漏洞。但是有些容器提供了类似的功能。查看 Apache Tomcat 的 <Valve> 配置。也许 webshere 也有类似的功能,但通常您需要聘请 ibm 顾问来“查找”配置。
【讨论】:
没有办法以独立于容器/平台的方式做到这一点。不过,您的 J2EE 容器可能会为您提供执行此操作的挂钩。
【讨论】: