Search code examples
web-applicationspropertiesweb.xml

Can you read a java property in web.xml?


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


Solution

  • 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");