@WebInitParam
This section contains detailed description of @WebInitParam annotation and its implementation with sample code.
The @WebInitParam is used to set parameters which is available trough out in the context of a Servlet or filter in a web application. Only Servlet or Filter for which these init parameters are set ,can access the init parameters.
Prior to Servlet 3.0, the <init-param> can be set in web.xml as follows :
<servlet> <servlet-name>roseindiaServlet</servlet-name> <servlet-class>net.roseindia.RoseindiaServlet</servlet-class> <init-param> <param-name>myParam</param-name> <param-value>paramValue</param-value> </init-param> </servlet>
Now (in Servlet 3.0), you can set the init parameter using annotation @WebInitParam as follows :
@WebServlet(value="/user",
initParams = {
@WebInitParam(name="rose", value="Hello "),
@WebInitParam(name="india", value=" World!")
})
The @WebInitParam has the following attributes :
- name : Contains the name of the init parameter as string.
- value : Contains the value of the init parameter as string.
- description :Contains the description of the init parameter.
The tools and technology used in the example is given below :
- Eclipse Helios 3.6.1
- Tomcat 7
- jdk1.6.0_18
EXAMPLE
In the below tutorial, you will learn to set the init parameters using @WebInitParam , which we also read and displays as output :
package roseindia;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(asyncSupported = false, name = "WebInitParamAnnotation", urlPatterns = { "/initparamServlet" }, initParams = {
@WebInitParam(name = "param1", value = "Rose"),
@WebInitParam(name = "param2", value = "India") })
public class WebInitParamAnnotation extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
// Writing response to display on page
out.write("<html><head><title>@WebInitParam Annotation</title></head>");
out.write("<body>");
out.write("<h2>@WebInitParam Annotation Example</h2>");
out.write("<h3>WELCOME TO <font color='RED'>ROSEINDIA </font>!!!!</h3>");
out.write("<p>The name & value of two init parameter are given below --></p>");
out.write("<p><b>param1</b> --> " + getServletConfig().getInitParameter("param1")+"</p>");
out.write("<p><b>param1</b> --> " + getServletConfig().getInitParameter("param2")+"</p>");
out.write("</body>");
out.write("</html>");
}
}
OUTPUT
When you execute the above code, you will get the following output :
