【问题标题】:How can I use variable substitution in Tomcat's web.xml for the context path如何在 Tomcat 的 web.xml 中使用变量替换作为上下文路径
【发布时间】:2014-06-30 18:02:29
【问题描述】:

使用 Tomcat 作为我的 Servlet 容器,我如何将两个相同的战争部署到不同的上下文,并简单地使用上下文路径作为变量来确定要加载的属性文件?我希望在 web.xml 中做这样的事情:

    <context-param>
        <param-name>initialization.file</param-name>
        <param-value>
            WEB-INF/config/context${contextPath}.properties
        </param-value>
    </context-param>

然后根据这个上下文属性加载初始化文件。这可能吗?如果是这样,怎么做?

我正在使用 Tomcat 6、Java 6 和 Servlet API 2.5。

【问题讨论】:

    标签: xml tomcat tomcat6 contextpath servlet-2.5


    【解决方案1】:

    这取决于您尝试配置的内容。 web.xml 是静态的,不能分配任何变量。但是您可以将变量名称传递给可以分配的位置。实现 ServletContextListner 并使用 ServletContextEvent:

    ServletContext servletContext = servletContextEvent.getServletContext();
    String contextPath = servletContext.getContextPath();
    

    然后你可以用路径替换变量名并加载属性文件。当然,您需要将监听器添加到 web.xml,作为第一个监听器。

    它将在应用程序启动时加载,但请记住,您无法确定顺序。

    【讨论】:

      猜你喜欢
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 2013-05-03
      • 2019-08-22
      相关资源
      最近更新 更多