Complicando un poco nuestro servlet. web.xml

Tras ver como funciona nuestro primer servlet, el siguiente paso que vamos a dar, para conocer un poco mas estas herramientas es controlar las rutas de acceso por medio de web.xml.

Estoy de acuerdo que la introducion de anotaciones, ha hecho nuestra vida mas sencilla, pero no evita el tener que utilizar web.xml, no solo para los mappings de las clases, si no , tambien para la carga de parametros en las mismas.

Definiendo web.xml

Este fichero se encuentra  en el directorio del proyecto -> WebContent ->WEB_INF

Vista de la ubicacion del fichero web.xml, mdentro de webContent->WEB-INFHemos definido este fichero, como un descriptor de despliegue; esto es, debe definir el comportamiento de nuestra web.

El fichero que habra generado Eclipse, debe ser algo asi:

Contenido del fichero web.xml, segun lo ha generado Eclipse

Y el primer conjunto de nombres, dentro de «<welcome-file-list>» se trata de la pagina que queremos mostrar cuando alguien invoque la direccion web, sin concretar pagina. Podemos crear tantas entradas «<welcome-file> como deseemos, y nuestro servidor las recorrera secuencialmente hasta encontrar con una que exista.

Si no utilizamos anotaciones, o si queremos añadir parámetros de arranque al servlet, podemos indicárselos en el fichero web.xml

Para cada uno de los Servlet que formen parte de nuestra aplicación, podemos realizar entradas en web.xml con el siguiente formato:

Detalle de la estructura del fichero web.xml

La información de cada servlet estará entre las etiquetas <servlet> y </servlet>

Con la etiqueta <servlet-name> podemos indicar un nombre con el que reconoceremos el servlet dentro de web.xml

Con la etiqueta <servlet-class> definimos la clase que implementa el servlet. Se deberá indicar también el package al que pertenece la clase.

Para cada atributo que queramos inicializar, crearemos un paquete <init-param> compuesto por el nombre del atributo en nuestra clase <param-name> y el valor que deseemos cargar en <param-value>

Si no hemos utilizado la anotación @WebServlet podemos utilizar la etiqueta <servlet-mapping> para indicar la URL a la que responde una clase.

detalle de servlet-mapping, para definir la ruta a la que respondera una clase

Teniendo en cuenta que <servlet-name> de <servlet> ha de ser idéntico al de <servlet-mapping> e indicando en <url-pattern> la ruta a la que responderá el servlet.

En este ejemplo, tenemos un servlet  llamado Pruebas, implementado por la clase PruebasServlet y que será llamado cuando en el navegador se escriba /poraqui

Si teneis que trabajar con «servlet-mapping», os recomiendo que tengais mucho cuidado con la escritura de nombres, ya que esa va a ser una de las mayores fuentes de problemas que vais a tener

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Desarrollo Web, Formacion, Java, Sin categoría y etiquetada , , , . Guarda el enlace permanente.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.