Hay dos tipos de proyectos Web: dinámicos y
estáticos. Los proyectos Web dinámicos pueden contener recursos J2EE dinámicos como, por
ejemplo, servlets, archivos JSP, filtros y metadatos asociados, además de recursos
estáticos como, por ejemplo, imágenes y archivos HTML. Los proyectos Web estáticos
sólo contienen recursos estáticos. Cuando cree proyectos Web, puede incluir hojas de
estilo en cascada y bibliotecas de códigos JSP (para proyectos Web dinámicos), para
que pueda empezar el desarrollo con un conjunto más amplio de recursos del proyecto.
Los proyectos Web dinámicos están siempre incorporados en los proyectos de
aplicación de empresa.
El asistente que se utiliza para crear un proyecto Web
dinámico también creará un proyecto de aplicación de empresa (EAR) si no existe
todavía. Asimismo, el asistente actualizará el descriptor de despliegue
application.xml
del proyecto de aplicación de empresa especificado para definir el proyecto Web como
un elemento de módulo. Si importa un archivo WAR en lugar de crear un nuevo proyecto
Web dinámico, el asistente Importación WAR requiere que especifique un proyecto Web,
que previamente requiere un proyecto EAR.
Los convenios J2EE pueden representar una carga adicional si sólo desea crear una
aplicación Web estática basada en contenido, que no contiene archivos dinámicos
como, por ejemplo, archivos JSP o servlets. En este caso, cuando sólo necesita el
proyecto Web más básico, puede utilizar el tipo de proyecto Web estático (consulte
Proyectos Web estáticos).
Observe que los proyectos Web estáticos se pueden
convertir en proyectos Web dinámicos seleccionando
Convertir a un proyecto Web
dinámico en el menú Proyecto.
El modelo J2EE y, más concretamente, la
Especificación de Sun Microsystems
Java
Servlet 2.3, define una estructura de directorios de aplicación
Web que especifica la ubicación de los archivos de contenido Web, los archivos de
clase, las classpaths, los descriptores de despliegue y los metadatos de soporte. La
jerarquía de proyectos Web duplica la de la aplicación Web creada a partir de un
proyecto. En el entorno de trabajo, puede utilizar el asistente
Proyecto Web nuevo para crear un
proyecto Web nuevo.
La carpeta principal de
proyectos contiene todos los objetos de desarrollo relacionados con una aplicación
Web. La carpeta de contenido Web contiene los elementos del proyecto necesarios para
crear una aplicación Web. La estructura de esta carpeta se correlaciona con la
estructura del archivo de aplicación Web (WAR) definido por Sun Microsystems. Los
siguientes elementos por omisión se ubican en la jerarquía de carpetas de proyectos
Web:
Nota: En la vista Explorador de proyectos, los
proyectos Web se filtran en nodos de carpeta para personalizar la visualización de
recursos Web y garantizar una gestión sencilla durante el desarrollo. Para obtener más
información sobre la estructura filtrada, consulte
Vista Explorador de
proyectos.
- Descriptor de despliegue Web
- Descriptor de despliegue de aplicación Web estándar (el archivo
web.xml).
- JavaSource
- Contiene el código fuente
Java
de las clases, los beans y los servlets del proyecto. Cuando estos recursos se
añaden a un proyecto Web, se compilan automáticamente y los archivos generados se
añaden al directorio WEB-INF/classes.
El contenido del directorio de origen no se
empaqueta en archivos WAR a menos que se especifique una opción cuando se crea un
archivo WAR.
Nota: Aunque el nombre por omisión que se proporciona a la carpeta es
JavaSources, puede cambiar el nombre pulsando sobre él en el Explorador de proyectos y
pulsando
.
- carpeta
imported_classes
- Esta carpeta se puede
crear durante una importación de WAR y contiene archivos de clase que no tienen un
origen acompañante. La carpeta
imported_classes
es una carpeta de clases
Java;
las carpetas de clases
Java
también se pueden crear utilizando la página de propiedades
Vía de acceso de construcción
Java del proyecto Web.
- Carpeta
WebContent
- Ubicación obligatoria de
todos los recursos Web, incluidos los archivos HTML y JSP, los archivos gráficos,
etc. Si los archivos no se colocan en este directorio (o en una estructura de
subdirectorios de este directorio), los archivos no estarán disponibles cuando se
ejecute la aplicación en un servidor. La carpeta de contenido Web representa el
contenido del archivo WAR que se va a desplegar en el servidor. Los archivos que no
estén en la carpeta de contenido Web se consideran recursos de tiempo de desarrollo
(por ejemplo, archivos .java, archivos .sql y archivos .mif), y no se despliegan
cuando se prueba y se publica el proyecto.
Nota: Aunque el nombre por omisión que se da a
la carpeta es WebContent, puede cambiar el nombre en el Explorador
de proyectos pulsando con el botón derecho la carpeta y seleccionando
RefactorizarRedenominar,
o desde la página Web del diálogo Propiedades del proyecto. En un proyecto Web
dinámico, el cambio del nombre de carpeta actualizará el directorio de salida de
construcción
Java.
- META-INF
- Este directorio contiene el archivo
MANIFEST.MF,
que se utiliza para correlacionar classpaths de archivos JAR dependientes que
existen en otros proyectos del mismo proyecto de aplicación de empresa. Una entrada
en este archivo actualizará la classpath de proyecto de tiempo de ejecución y los
valores de construcción
Java
para que incluyan los archivos JAR referenciados.
- theme
- Directorio sugerido para las hojas de estilo en cascada y otros objetos relacionados
con el estilo.
- WEB-INF
- Según la Especificación de Sun Microsystems
Java
Servlet 2.3, este directorio contiene los recursos Web de soporte
de una aplicación Web, incluido el archivo
web.xml,
las clases y los directorios lib.
- /classes
- Este directorio es para servlets, clases de programa de utilidad y el directorio de
salida del compilador
Java. El cargador de clases de la aplicación utiliza las clases de este directorio para
cargar las clases. Las carpetas de este directorio correlacionarán nombres de
paquetes y clases, por ejemplo:
/WEB-INF/classes/com/mycorp/servlets/MyServlet.class.
No coloque archivos .class directamente en este directorio. Los archivos .class se
colocan automáticamente en este directorio cuando el compilador
Java
compila archivos fuente
Java
que están en el directorio de
Recursos
Java.
El compilador
Java
suprimirá los archivos que se coloquen directamente en este directorio cuando se
ejecute.
- /lib
- Archivos JAR de soporte a los que hace referencia la aplicación Web. Las clases
de los archivos .jar que se coloquen en este directorio estarán disponibles para la
aplicación Web.
- Bibliotecas
- Archivos JAR de soporte a los que hace referencia la aplicación Web. Esta carpeta
duplica el contenido de la carpeta lib. Además, en esta carpeta se incluyen los
proyectos de biblioteca Web, que son archivos JAR "virtuales" que no residen
físicamente en el proyecto Web, pero que están asociados con los proyectos
Java
en otros lugares del espacio de trabajo. Se empaquetan con el proyecto cuando se
exporta el archivo WAR de la aplicación.
Nota: Una entrada de biblioteca en la vía de acceso de construcción
Java
permanecerá ahí a menos que se suprima el archivo JAR de la carpeta WEB-INF/lib. Si
elimina una entrada de vía de acceso de biblioteca, pero no el archivo JAR, la
entrada de biblioteca se volverá a añadir a la vía de acceso automáticamente.