Using properties in web.xml

per_jansson picture per_jansson · Jun 1, 2010 · Viewed 41.6k times · Source

I would like to control the settings in web.xml and using different once for different environments.

Is it possible to use a property, from a property file on classpath, in web.xml? Something like this:

 <context-param>
  <param-name>myparam</param-name>
  <param-value>classpath:mypropertyfile.properties['myproperty']</param-value>
 </context-param>

Best regards

P

Answer

Ken Blair picture Ken Blair · May 7, 2011

No. However you can pass the properties file in and read from it at runtime.

<context-param>
    <param-name>propfile</param-name>
    <param-value>myprop.properties</param-value>
</context-param>

It is then trivial to load the property at runtime if you have access to the servlet.

Properties properties = new Properties();
GenericServlet theServlet = ...;
String propertyFileName = theServlet.getInitParameter("propfile");
properties.load(getClass().getClassLoader().getResourceAsStream(propertyFileName));
Object myProperty = properties.get("myProperty");