Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 591
  • Last Modified:

New to servlets and properties files!!!

I have a jsp/servlet application.  I would like to set a value in a file called mypet.properties.  I create the file using
Properties props = new Properties();
props.put("server", "100.00.00.00");
String propFile = "C:\\JAVA\\mypet.properties";
FileOutputStream out = new FileOutputStream(propFile);
 props.store(out, "MyPet");
So know I have a file in C:\\JAVA\\ called mypet.properties with server=100.00.00.00
I want to be able to get the info from the mypet.properties file and be able to use it an a servelt  that I am reading the web.xml file  using
public void init(ServletConfig config)
 throws ServletException
{
   super.init(config);
    file = config.getInitParameter("server");
}

How do I get the info from the C:\\JAVA\\mypet.properties and store it in the web.xml file?
public class PropBuilder
{
  public static void main(String[] args) throws Exception
  {
    Properties props = new Properties();
    props.put("server", "100.00.00.00");
    String propFile = "C:\\JAVA\\mypet.properties";
    FileOutputStream out = new FileOutputStream(propFile);
    props.store(out, "MyPet");
  }
}
<web-app>
  <servlet>
    <servlet-name>Pet</servlet-name>
    <servlet-class>pet.PetServlet</servlet-class>
	<init-param>
	 <param-name>server</param-name>
      	 <param-value>value from mypet.properties</param-value>
    </init-param>
  </servlet>
</web-app>
 
public void init(ServletConfig config)
	      throws ServletException
	{
 
	    super.init(config);
  	    file = config.getInitParameter("server");
	}

Open in new window

0
Kcpl
Asked:
Kcpl
  • 4
  • 2
1 Solution
 
rrzCommented:
>I want to be able to get the info from the mypet.properties file and be able to use it an a servelt  
Why not create a instance variable in the servlet and store it there ? That way you wouldn't have to mess around with the web.xml file.
Also why not put the prop file in your web app ? If you put it into your web app's WEB-INF/classes folder then you access it as a resource.
0
 
KcplAuthor Commented:
When I put the prop file in the web-inf/classes folder I get null pointer exception say it can't find the file.

I need to store the ip address in one place so when the server ip address changes, I don't have to change it all over the application.  I want to be able to put the ip address and only change it there.  I don't want to hard code it in the web.xml file.  This application is a RMI application, so I need to be able to access the file from the server and also from the web application.  So I will already have to change the ip address in two locations.
0
 
rrzCommented:
In a servlet that loads on start-up (add <load-on-startup/>  to <servlet> tag in web.xml file),
you could use  
ServletContext application = getServletContext();
public void init() throws ServletException{
                           Properties props = new Properties();
                           try{
                                 props.load(getClass().getResourceAsStream("/myPet.properties")); //in classes folder
                                 //props.load(application.getResourceAsStream("/myPet.properties")); // in root folder
                          }catch(Exception e){System.out.print("can't get pass props");}
                      application.setAttribute("server",props.getProperty("server")) ;

}
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
rrzCommented:
To access in a JSP,  you could use
${server}
or
application.getAttribute("server");
or in a servlet
getServletContext.getAttribute("server");  
0
 
KcplAuthor Commented:
Now do I do the following to get the info:

public void init(ServletConfig config)
     throws ServletException
{
       super.init(config);
       ServletContext cont = new ServletContext();
      cont = getServletContext.getAttribute("server");
     //file = config.getInitParameter("server");
     file = cont.getInitParameter("server");
}
0
 
rrzCommented:
In my last post I showed how to access the value.  
In a servlet  use  
ServletContext application = getServletContext();
String  ipAddress = (String)application.getAttribute("server");
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now