使用Tomcat作为我的Servlet容器,如何将两个相同的战争部署到不同的上下文,并简单地使用上下文路径作为变量来确定要加载哪些属性文件?我想在web.xml中做这样的事情:
<context-param>
<param-name>initialization.file</param-name>
<param-value>
WEB-INF/config/context${contextPath}.properties
</param-value>
</context-param>
然后根据此context属性加载初始化文件。这可能吗?如果是这样,怎么样?
我正在使用Tomcat 6,Java 6和Servlet API 2.5。
答案 0 :(得分:1)
这取决于您尝试配置的内容。 web.xml是静态的,不能分配任何变量。但是您可以传递可以分配的变量名称。实现ServletContextListner并使用ServletContextEvent:
ServletContext servletContext = servletContextEvent.getServletContext();
String contextPath = servletContext.getContextPath();
您可以使用路径替换变量名称并加载属性文件。当然,您需要将侦听器添加到web.xml,作为第一个侦听器。
它将在应用程序启动时加载,但请记住,您无法确定以何种顺序。