How to read a properties file in a web application
The code to do this is pretty simple. But going by the number of people who keep asking this question, i thought i would post the code over here. Let's consider that you have a war file named SampleApp.war which has a properties file named myApp.properties at it's root : 
		
				
			SampleApp.war
   |
   |-------- myApp.properties
   |
   |-------- WEB-INF
                |
                |---- classes
                         |
                         |----- org
                                 |------ myApp
                                           |------- MyPropertiesReader.class
Let's assume that you want to read the property named "abc" present in the properties file:
----------------
myApp.properties:
----------------
abc=some value xyz=some other value
Let's consider that the class org.myApp.MyPropertiesReader present in your application wants to read the property. Here's the code for the same:
- packageorg.myapp;
 - importjava.io.IOException;
 - importjava.io.InputStream;
 - importjava.util.Properties;
 - /**
 - *Simpleclassmeanttoreadapropertiesfile
 - *
 - *@authorJaikiranPai
 - *
 - */
 - publicclassMyPropertiesReader{
 - /**
 - *DefaultConstructor
 - *
 - */
 - publicMyPropertiesReader(){
 - }
 - /**
 - *SomeMethod
 - *
 - *@throwsIOException
 - *
 - */
 - publicvoiddoSomeOperation()throwsIOException{
 - //GettheinputStream
 - InputStreaminputStream=this.getClass().getClassLoader()
 - .getResourceAsStream("myApp.properties");
 - Propertiesproperties=newProperties();
 - System.out.println("InputStreamis:"+inputStream);
 - //loadtheinputStreamusingtheProperties
 - properties.load(inputStream);
 - //getthevalueoftheproperty
 - StringpropValue=properties.getProperty("abc");
 - System.out.println("Propertyvalueis:"+propValue);
 - }
 - }
 
package org.myapp;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* Simple class meant to read a properties file
*
* @author Jaikiran Pai
*
*/
public class MyPropertiesReader {
/**
* Default Constructor
*
*/
public MyPropertiesReader() {
}
/**
* Some Method
*
* @throws IOException
*
*/
public void doSomeOperation() throws IOException {
// Get the inputStream
InputStream inputStream = this.getClass().getClassLoader()
.getResourceAsStream("myApp.properties");
Properties properties = new Properties();
System.out.println("InputStream is: " + inputStream);
// load the inputStream using the Properties
properties.load(inputStream);
// get the value of the property
String propValue = properties.getProperty("abc");
System.out.println("Property value is: " + propValue);
}
}
Pretty straight-forward. Now suppose the properties file is not at the root of the application, but inside a folder (let's name it config) in the web application, something like:
SampleApp.war
   |
   |-------- config
   |           |------- myApp.properties   
   |           
   |
   |-------- WEB-INF
                |
                |---- classes
                         |
                         |----- org
                                 |------ myApp
                                           |------- MyPropertiesReader.class
There will just be one line change in the above code:
- publicvoiddoSomeOperation()throwsIOException{
 - //GettheinputStream-->Thistimewehavespecifiedthefoldernametoo.
 - InputStreaminputStream=this.getClass().getClassLoader()
 - .getResourceAsStream("config/myApp.properties");
 - Propertiesproperties=newProperties();
 - System.out.println("InputStreamis:"+inputStream);
 - //loadtheinputStreamusingtheProperties
 - properties.load(inputStream);
 - //getthevalueoftheproperty
 - StringpropValue=properties.getProperty("abc");
 - System.out.println("Propertyvalueis:"+propValue);
 - }
 
  public void doSomeOperation() throws IOException {
//Get the inputStream-->This time we have specified the folder name too.
InputStream inputStream = this.getClass().getClassLoader()
.getResourceAsStream("config/myApp.properties");
Properties properties = new Properties();
System.out.println("InputStream is: " + inputStream);
//load the inputStream using the Properties
properties.load(inputStream);
//get the value of the property
String propValue = properties.getProperty("abc");
System.out.println("Property value is: " + propValue);
}
That's all that is required to get it working.