Desde la versión de la especificación de Servlets 3.0 a la hora de realizar el mapping ya no es necesario especificarlo en el descriptor de despliegue mediante XML, si no que además se puede realizar de una forma más sencilla mediante anotaciones en la clase del Servlet.
Para crear un Servlet mapping con anotaciones lo primero que vamos a definir es nuestra clase Servlet.
public class MappingAnotaciones extends HttpServlet {
private static final long serialVersionUID = 1L;
public MappingAnotaciones() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Servlet de Prueba de Mapping por anotaciones");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
Como se puede observar es una simple clase Java que extiende de la clase HttpServlet
y lo que consigue es que se convierta en un Servlet y por lo tanto debamos de codificar los métodos .doGet()
y .doPost()
que gestiones las peticiones/respuestas del Servlet.
Para registrar el Servlet y que tenga un path de acceso es necesario realizar un mapping, es decir, indicar el path y la clase del servlet asociadas. Para realizar un Servlet mapping con Anotaciones vamos acudir a la anotación @WebServlet
@WebServlet ("/anotaciones")
public class MappingAnotaciones extends HttpServlet { ... }
Podemos ver que la anotación @WebServlet
recibe como parámetro el path en el cual queremos mapear el Servlet. Y que dicha anotación se pone justo antes de la definición del Servlet.
De esta forma ya tenemos registrado nuestro Servlet y lo podremos acceder desde el path anotaciones.
http://localhost:8080/appweb/anotaciones
El uso de servlet mapping con anotaciones es compatible con el uso de los mapping dentro del descriptor de despliegue.