Guía de Configuración del Descriptor de Despliegue Web

1. Elementos Principales del Descriptor de Despliegue

A continuación se presenta una visión general de los elementos más utilizados en el archivo descriptor de despliegue de aplicaciones web:

<web-app>

     <!-- Nombre identificador de la aplicación web -->
     <display-name></display-name>

     <!-- Información descriptiva de la aplicación -->
     <description></description>

     <!-- Parámetros de contexto para inicialización global -->
     <context-param></context-param>

     <!-- Definición de filtros para procesamiento de solicitudes -->
     <filter></filter>

     <!-- Association de filtros con servlets o páginas JSP específicas -->
     <filter-mapping></filter-mapping>

     <!-- Configuración de listeners para eventos del ciclo de vida -->
     <listener></listener>

     <!-- Declaración de servlets y sus características -->
     <servlet></servlet>

     <!-- Mapeo de URLs a servlets específicos -->
     <servlet-mapping></servlet-mapping>

     <!-- Configuración de timeout para sesiones inactivas -->
     <session-config></session-config>

     <!-- Mapeo de extensiones de archivo a tipos MIME -->
     <mime-mapping><mime-mapping>

     <!-- Lista de archivos de bienvenida por defecto -->
     <welcome-file-list></welcome-file-list>

     <!-- Páginas de error personalizadas -->
     <error-page></error-page>

     <!-- Configuración de bibliotecas de tags -->
     <taglib></taglib>

     <!-- Referencia a recursos del entorno -->
     <resource-env-ref></resource-env-ref>

     <!-- Definición de recursos externos -->
     <resource-ref></resource-ref>

     <!-- Restricciones de seguridad para recursos protegidos -->
     <security-constraint></security-constraint>

     <!-- Configuración del método de autenticación -->
     <login-config></login-config>

     <!-- Declaración de roles de seguridad -->
     <security-role></security-role>

     <!-- Variables de entorno para la aplicación -->
     <env-entry></env-entry>

     <!-- Referencias a beans de empresa -->
     <ejb-ref></ejb-ref>

     <!-- Referencias a beans de empresa locales -->
     <ejb-local-ref></ejb-local-ref>

</web-app>

2. Configuración Detallada de Cada Elemento

2.1 Iconos de la Aplicación Web

Especifica las imágenes que representarán la aplicación en herramientas de desarrollo:

<icon>  
     <small-icon>/images/app_small.png</small-icon>  
     <large-icon>/images/app_large.png</large-icon>  
</icon>

2.2 Nombre de la Aplicación

Etiqueta identificativa para herramientas IDE:

<display-name>Aplicación Ejemplo</display-name>

2.3 Descripción de la Aplicación

<description>Aplicación de demostración con servlets y páginas JSP</description>

2.4 Parámetros de Contexto

Permiten definir parámetros accesibles desde toda la aplicación:

<context-param>
     <param-name>configuracion.region</param-name>
     <param-value>es_ES</param-value>
     <description>Configuración regional de la aplicación</description>
</context-param>

Para acceder a estos parámetros desde un servlet:

String region = getServletContext().getInitParameter("configuracion.region");

2.5 Configuración de Filtros

Asociación de un nombre con una clase que implementa la interfaz Filter:

<filter>
     <filter-name>filtroCodificacion</filter-name>
     <filter-class>com.miproyecto.FiltroCodificacionUTF8</filter-class>
     <init-param>
         <param-name>charset</param-name>
         <param-value>UTF-8</param-value>
     </init-param>
</filter>

<filter-mapping>
     <filter-name>filtroCodificacion</filter-name>
     <url-pattern>/*</url-pattern>
</filter-mapping>

2.6 Configuración de Listeners

<listener>
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

2.7 Configuración de Servlets

<servlet>
   <servlet-name>controladorPrincipal</servlet-name>
   <servlet-class>com.miproyecto.ControladorPrincipal</servlet-class>
   <init-param>
       <param-name>modoDebug</param-name>
       <param-value>true</param-value>
   </init-param>
   <run-as>
       <description>Rol para acceso anónimo</description>
       <role-name>usuario</role-name>
   </run-as>
   <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>controladorPrincipal</servlet-name>
  <url-pattern>/procesar</url-pattern>
</servlet-mapping>

2.8 Configuración de Tiempo de Sesión

<session-config>
     <session-timeout>30</session-timeout>
</session-config>

2.9 Configuración de Tipos MIME

<mime-mapping>
     <extension>html</extension>
     <mime-type>text/html; charset=UTF-8</mime-type>
</mime-mapping>

2.10 Archivos de Bienvenida

<welcome-file-list>
    <welcome-file>principal.jsp</welcome-file>
    <welcome-file>principal.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
</welcome-file-list>

2.11 Páginas de Error Personalizadas

Por código de error HTTP:

<error-page>
      <error-code>500</error-code>
      <location>/paginas/errorServidor.jsp</location>
</error-page>

Por tipo de excepción:

<error-page>
      <exception-type>java.lang.NumberFormatException</exception-type>
      <location>/paginas/errorDatos.jsp</location>
</error-page>

2.12 Configuración de Biblioteca de Tags

<taglib>
    <taglib-uri>http://miservidor.com/taglibs-personalizadas</taglib-uri>
    <taglib-location>/WEB-INF/taglib/mis-tags.tld</taglib-location>
</taglib>

Nota: En caso de problemas con herramientas de desarrollo, utilizar la estructura dentro de jsp-config:

<jsp-config>
    <taglib>
        <taglib-uri>http://miservidor.com/taglibs-personalizadas</taglib-uri>
        <taglib-location>/WEB-INF/taglib/utilidades.tld</taglib-location>
    </taglib>
</jsp-config>

2.13 Referencias de Recursos de Entorno

<resource-env-ref>
    <resource-env-ref-name>jms/ColaNotificaciones</resource-env-ref-name>
</resource-env-ref>

2.14 Configuración de Recursos

Ejemplo para recursos de correo:

<resource-ref>
    <res-ref-name>mail/SesionCorreo</res-ref-name>
    <res-type>javax.mail.Session</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

Ejemplo para pool de conexiones de base de datos:

<resource-ref>
    <description>DataSource JDBC para tienda online</description>
    <res-ref-name>jdbc/base_datos_tienda</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

2.15 Restricciones de Seguridad

<security-constraint>
    <display-name>Zona Segura de la Aplicación</display-name>
    <web-resource-collection>
        <web-resource-name>Área Protegida</web-resource-name>
        <url-pattern>/admin/*</url-pattern>
        <http-method>DELETE</http-method>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
        <http-method>PUT</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>administrador</role-name>
        <role-name>gestor</role-name>
    </auth-constraint>
</security-constraint>

2.16 Cofniguración de Autenticación

<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>Área de Autenticación Personalizada</realm-name>
    <form-login-config>
        <form-login-page>/admin/autenticacion/login.jsp</form-login-page>
        <form-error-page>/admin/autenticacion/error.jsp</form-error-page>
    </form-login-config>
</login-config>

2.17 Roles de Seguridad

<security-role>
    <role-name>administrador</role-name>
</security-role>

2.18 Variables de Entorno

<env-entry>
    <env-entry-name>minimoElementos</env-entry-name>
    <env-entry-value>5</env-entry-value>
    <env-entry-type>java.lang.Integer</env-entry-type>
</env-entry>

2.19 Declaración de EJB

<ejb-ref>
    <description>Referencia a EJB de gestión de usuarios</description>
    <ejb-ref-name>ejb/Usuario</ejb-ref-name>
    <ejb-ref-type>Entity</ejb-ref-type>
    <home>com.miempresa.mipaquete.UsuarioHome</home>
    <remote>com.miempresa.mipaquete.Usuario</remote>
</ejb-ref>

2.20 Declaración de EJB Local

<ejb-local-ref>
    <description>Referencia local a EJB de procesamiento</description>
    <ejb-ref-name>ejb/ProcesamientoPedidos</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <local-home>com.miempresa.mipaquete.ProcesamientoPedidosHome</local-home>
    <local>com.miempresa.mipaquete.ProcesamientoPedidos</local>
</ejb-local-ref>

Etiquetas: java servlet jsp web.xml descriptor de despliegue

Publicado el 7-19 10:57