@WebServlet

This section contains detailed description of @WebServlet annotation and its implementation with sample code.

@WebServlet

@WebServlet

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 :

  • Eclipse Helios 3.6.1

  • Tomcat 7

  • jdk1.6.0_18

EXAMPLE

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

OUTPUT

When you execute the above Servlet, you will get the following output :

Download Source Code