@WebServlet annotation is used to define a Servlet component in a web application. Let's consider following web.xml configuration.
@WebServlet
web.xml
<servlet> <servlet-name>viewController</servlet-name> <servlet-class>com.logicbig.servlet.ViewController</servlet-class> <init-param><param-name>renderer-class-name</param-name> <param-value>com.logicbig.HtmlRenderer</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> ...... <servlet-mapping> <servlet-name>viewController</servlet-name> <url-pattern>/view/*</url-pattern> </servlet-mapping>
In following example we will use annotations to do the same mapping.
maven-archetype-webapp
webapp/index.jsp
pom.xml
ViewController
@WebServlet(name = "viewController", urlPatterns = {"/view/*"}, initParams = @WebInitParam(name = "renderer-class-name" , value = "com.logicbig.HtmlRenderer"), loadOnStartup = 1) public class ViewController extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String renderer = getServletConfig().getInitParameter("renderer-class-name"); PrintWriter writer = resp.getWriter(); writer.println("renderer: " + renderer); String servletName = getServletConfig().getServletName(); writer.println("servlet name " + servletName); } }