Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

init-param and context-param

Tags:

java

servlets

What is the difference between <init-param> and <context-param> !?

like image 305
mina Avatar asked Feb 08 '15 10:02

mina


1 Answers

<init-param> and <context-param> are static parameters which are stored in web.xml file. If you have any data which doesn't change frequently you can store it in one of them.

If you want to store particular data which is confined to a particular servlet scope, then you can use <init-param> .Anything you declare inside <init-param> is only accessible only for that particular servlet.The init-param is declared inside the <servlet> tag.

<servlet>      <display-name>HelloWorldServlet</display-name>      <servlet-name>HelloWorldServlet</servlet-name>      <init-param>          <param-name>Greetings</param-name>          <param-value>Hello</param-value>      </init-param> </servlet> 

and you can access those parameters in the servlet as follows:

out.println(getInitParameter("Greetings")); 

If you want to store data which is common for whole application and if it doesn't change frequently you can use <context-param> instead of servletContext.setAttribute() method of the application context. For more information regarding usage of <context-param> VS ServletContext.setAttribute() have a look at this question. context-param are declared under the tag web-app. You can declare and access the <context-param> as follows

<web-app>     <context-param>         <param-name>Country</param-name>         <param-value>India</param-value>     </context-param>     <context-param>         <param-name>Age</param-name>         <param-value>24</param-value>     </context-param> </web-app> 

Usage in the application either in a JSP or Servlet

getServletContext().getInitParameter("Country"); getServletContext().getInitParameter("Age"); 
like image 170
Sai Upadhyayula Avatar answered Oct 15 '22 21:10

Sai Upadhyayula