Hasta la versión de Servlet 3.0 si queríamos tener parámetros de inicio de los Servlet teníamos que recurrir a darlos de alta en el fichero de despliegue. Desde Servlet 3.0 podemos crear parámetros inicio servlet con anotaciones.
Ya hemos visto que mediante anotaciones podemos realizar el mapping de un Servlet y asociarle una ruta. Siguiendo esa misma filosofía vamos a crear parámetros inicio servlet con anotaciones.
Lo primero será crear nuestro Servlet.
public class MappingParametros extends HttpServlet { ... }
Vemos que extiende de la clase HttpServlet
la cual nos permite configurar la clase MappingParametros
como un Servlet.
Ahora pasaremos a crear el mapping del Servlet contra una URL. Para ello utilizamos la anotación @WebServlet
, la cual recibe con un parámetro value el path sobre el que registramos el Servlet.
@WebServlet (value="/AnotacionesParametros")
public class MappingParametros extends HttpServlet { ... }
Seguimos apoyándonos en la anotación @WebServlet
ya que esta cuenta con un segundo parámetro que es initParams
. Mediante este parámetro vamos a definir los parámetros de inicio del Servlet. Estos parámetros de inicio del Servlet se definen mediante la anotación @WebInitParam
.
@WebServlet (value="/AnotacionesParametros",
initParams = @WebInitParam (name="p1",value="valor 1"))
public class MappingParametros extends HttpServlet { ... }
Cómo podemos ver la anotación @WebInitParam
tiene dos parámetros, el primero es name
en el que especificamos el nombre del parámetro y el segundo es value
sobre el que irá el valor del parámetro.
Una vez definidos los parámetros inicio Servlet con anotaciones podemos acceder a ellos desde el método .init()
del Servlet.
public void init (ServletConfig config) {
valor = config.getInitParameter("p1");
}
Y ya utilizarlos dónde los necesitemos:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter()
.append("Servlet de Prueba de Mapping para parámetros. Valor del parámetro 1: ")
.append(valor);
}
Cómo se puede comprobar es muy sencillo definir los parámetros inicio Servlet con anotaciones.