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