【问题标题】:Global Filter for all Web Applications所有 Web 应用程序的全局过滤器
【发布时间】:2011-01-07 12:04:11
【问题描述】:

在 J2EE 应用程序中,如何创建可以访问安装在该应用程序服务器上的其他 Web 应用程序的全局过滤器?

【问题讨论】:

    标签: java web-applications jakarta-ee websphere


    【解决方案1】:

    如果有人仍然感兴趣,以下是我对这个问题的发现:

    1. 对于 tomcat 和其他衍生自它的 webapp 服务器(例如:JBoss),您可以将过滤器添加到“全局”web.xml,通常位于 $TOMCAT_HOME/conf/web.xml 下。

    2. 对于 Websphere,我发现以下文章很有用:http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101859。在这种情况下,基本思想是您编写一个 ServletContext 侦听器并使用它将您的过滤器附加到应用程序

    【讨论】:

      【解决方案2】:

      这对我有用:https://stackoverflow.com/a/8815211/964681

      抱歉,不能就您的问题发表评论。没有足够的“积分”。

      【讨论】:

        【解决方案3】:

        一些应用服务器/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?

        【讨论】:

        • 与 JBoss 一样,Websphere 也在底层使用 Tomcat,如果我没记错我生锈的 Websphere 体验,Websphere 上也提供了非常相似的 crossContext 设置。这样,您可以创建一个在 ROOT 上运行的 webapp,并在/* 上运行过滤器。但同样,这就是理论,我无法从自己的经验中证实这一点。或者,您可以在 appserver 自己的web.xml 中声明过滤器。 +1 提示不管 :)
        【解决方案4】:

        Servlet-API 不提供这样的安全漏洞。但是有些容器提供了类似的功能。查看 Apache Tomcat 的 <Valve> 配置。也许 webshere 也有类似的功能,但通常您需要聘请 ibm 顾问来“查找”配置。

        【讨论】:

          【解决方案5】:

          没有办法以独立于容器/平台的方式做到这一点。不过,您的 J2EE 容器可能会为您提供执行此操作的挂钩。

          【讨论】:

            猜你喜欢
            • 2023-03-20
            • 2013-06-04
            • 1970-01-01
            • 2011-04-07
            • 2012-05-28
            • 2013-11-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多