This section contains detailed description of @WebServlet annotation and its implementation with sample code.
@WebServlet annotation is included in Servlet 3.0 in Java EE6. Prior to Servlet 3.0, you need to register the Servlet using deployment descriptor(web.xml) by employing <servlet> or <servlet-mapping> tags. Now , you can do this by using @WebServlet annotation.
The @WebServlet annotation or any annotation works only if classes having annotation is located inside WEB-INF/classes directory of the web application or if it is packaged inside a jar file, it must be situated inside WEB-INF/lib directory. If you are using eclipse, you can put the Servlet/classes inside src directory.
The elements of the @WebServlet are given below :
Element |
Description |
| asyncSupported | If asynchronous operation is supported by servlet, it should be set to true otherwise false. Default is false. |
| description | It contains the description of the Servlet. |
| displayName | It contains the display name of the Servlet. |
| initParams | It contains the Servlet's init parameters. |
| largeIcon | It contains the large icon's URL string. |
| loadOnStartup | It is used to sets the load-on-startup priority of the Servlet. |
| name | It is used to set the name of the Servlet. |
| smallIcon | It contains the small icon's URL string. |
| urlPatterns | It is used to describe the URL patterns of the Servlet. |
| value | It is also used to describe the URL patterns of the Servlet. You need to implement one, either urlPatterns or value. |
The web application's deployment descriptor have a new "metadata-complete" property . If it is sets true, annotations present in application's classes , and web fragments is ignore by the deployment tool. If it sets false, annotations present in application's classes , and web fragments is examine by the deployment tool.
The tools and technology used in the example is given below :
In the below example, a simple Servlet is annotated with @WebServlet annotation. This Servlet below will output a sequence of lines or messages on execution :
package roseindia;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "WebServletAnnotation", urlPatterns = { "/WebServletAnno",
"/ServletAnno" })
public class WebServletAnnotation 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>@WebServlet Annotation</title></head>");
out.write("<body>");
out.write("<h2>@WebServlet Annotation Example</h2>");
out.write("<h3>WELCOME TO <font color='RED'>ROSEINDIA </font>!!!!</h3>");
out.write("<p>This is page is displayed by the servlet having @WebServlet annotataion</p>");
out.write("</body>");
out.write("</html>");
}
}
When you execute the above Servlet, you will get the following output :

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.
Ask Questions? Discuss: @WebServlet
Post your Comment