
En la arquitectura Java EE, los componentes web y los ficheros con contenido estático, como imágenes, son llamados recursos web. Un módulo web es la más pequeña unidad de un recurso web que se pueda utilizar y desplegar. Un módulo web Java EE corresponde con una aplicación web, como se define en la especificación de Java Servlet.
Además de los componentes web y los recursos web, un módulo web puede contener otros ficheros:
- Clases utilitarias del lado del servidor (beans para bases de datos, carritos de compras y demás). A menudo estas clases cumplen con la arquitectura JavaBeans.
- Clases del lado del cliente (applets y clases utilitarias).
Un módulo web tiene una estructura específica. El directorio más alto de la jerarquía de directorios de un módulo web es el raíz de documento de la aplicación. Es donde las páginas JSP, clases y archivos del lado del cliente, y los recursos estáticos como imágenes, son almacenados.
El directorio raíz de los documentos contiene un subdirectorio llamado WEB-INF, que contiene los siguientes ficheros y directorios:
- web.xml: El descriptor de despliegue de aplicación.
- classes: Un directorio que contiene las clases del lado del servidor: componentes Servlets, clases utilitarias y JavaBean.
- tags: Un directorio que contiene ficheros de etiquetas, que son implementaciones de librerías de etiquetas.
- lib: Un directorio que contiene los archivos JAR de las librerías llamadas por las clases del lado del servidor.
Un módulo web debe ser empaquetado en un WAR en ciertos escenarios de despliegue y cuando se quiera distribuir el módulo web. Se empaqueta un módulo web en un WAR ejecutando el comando jar
en un directorio ubicado en el formato de un módulo, utilizando la utilidad Ant o utilizando la herramienta IDE de su elección.
Un módulo web puede ser desplegado como una estructura de ficheros sin empaquetar o puede ser empaquetado en un fichero JAR conocido como un archivo web (WAR). Dado que el contenido y uso de los ficheros WAR difieren de aquellos ficheros JAR, el nombre del fichero WAR utiliza una extensión .WAR. El módulo web descrito es portátil, se puede desplegar en cualquier contenedor web que cumpla con la especificación Java Servlet.
Para desplegar un WAR en un servidor de aplicaciones, el fichero debe contener un descriptor de despliegue en tiempo de ejecución. El descriptor de despliegue es un fichero XML que contiene información como el contexto raíz de la aplicación web y la relación de los nombres portátiles de los recursos de aplicación a los recursos del servidor de aplicación.
Existen una serie de tareas para Ant que podemos utilizar para la gestión de aplicaciones, entre las cuales destacamos:
<deploy>
:Despliega una aplicación web.<start>
: Inicia una aplicación web.<stop>
: Para una aplicación.<undeploy>
: Repliega (desinstala) una aplicación.<trycatch>
: Evita que falle unbuild
aunque falle alguna tarea.
Se pueden emplear diversos tipos de servidores de aplicaciones web junto con la herramienta Ant, por ejemplo JBoss/Wildfly o Tomcat.
Para desplegar un WAR con la herramienta Ant, abrimos una ventana de terminal o línea de comando en el directorio donde se ha construido y empaquetado el WAR y ejecutamos ant deploy
.
Un bean es un componente software que tiene la particularidad de ser reutilizable y así evitar la tediosa tarea de programar los distintos componentes uno a uno.
Es un componente de una aplicación que se ejecuta en el contexto de otro programa, por ejemplo un navegador web.