如何在Tomcat的web.xml中使用变量替换来设置上下文路径。

3

使用Tomcat作为我的Servlet容器,我如何将两个完全相同的WAR包部署到不同的上下文,并简单地使用上下文路径作为变量来确定要加载哪个属性文件?我希望在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。

1个回答

1
这取决于您尝试配置的内容。web.xml是静态的,无法分配变量。但是,您可以传递变量名称以进行分配。实现ServletContextListner并使用ServletContextEvent:
ServletContext servletContext = servletContextEvent.getServletContext();
String contextPath = servletContext.getContextPath();

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接