Existen dos tipos de proyectos web: dinámicos y estáticos. Los proyectos Web dinámicos pueden contener recursos Java EE 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. El asistente también actualiza el descriptor de despliegue
application.xml del proyecto Enterprise Application especificado para definir
el proyecto Web como 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 Java EE 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, sólo necesitará el proyecto Web más básico,
tipo de proyecto Web estático (consulte Proyectos Web estáticos).
Tenga en cuenta 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 Java EE, y más específicamente, la Especificación de Sun Microsystems Java™ Servlet
2.3, define una estructura de directorios para aplicaciones web que especifica
la ubicación de los archivos de contenido Web, archivos de clases, vías de acceso de clases, descriptores de despliegue
y 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 nuevo proyecto Web.
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 predeterminados
se encuentran en la jerarquía de carpetas de proyecto Web:
Nota: en la vista Explorador de proyectos,
los proyectos Web aparecen filtrados en nodos de carpetas para personalizar la visualización de los recursos Web
para facilitar su gestión durante el desarrollo. Para obtener información sobre la estructura
filtrada, consulte la
vista Explorador de proyectos.
- Descriptor de despliegue Web
- El descriptor de despliegue de aplicación web estándar (el archivo web.xml).
- JavaSource
- Contiene el código fuente Java del proyecto para las clases, beans y
servlets. 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 predeterminado proporcionado para la carpeta
es JavaSources, puede cambiar el nombre pulsando con el botón derecho del ratón en el nombre
en el Explorador de proyectos y pulsando en .
- 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 pueden también crearse utilizando la página de propiedades
Vía 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 subdirectorio bajo 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 predeterminado proporcionado a la carpeta
es WebContent, puede cambiar el nombre en el Explorador de proyectos pulsando con el botón derecho del ratón en la carpeta
y seleccionando RefactorizarRedenominar o
en la página Web del recuadro de diálogo Propiedades del proyecto. En un proyecto Web dinámico, cambiar el nombre de la carpeta
actualizará el directorio de salida de compilación de Java.
- META-INF
- Este directorio contiene el archivo
MANIFEST.MF,
que se utiliza para correlacionar vías de acceso de clases de archivos JAR dependientes que
existen en otros proyectos del mismo proyecto de aplicación de empresa. Una entrada en este archivo actualizará la vía de acceso de clase de proyecto
y valores de compilación de Java que incluir en los archivos JAR referenciados.
- theme
- El 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, incluyendo el archivo web.xml y los directorios classes y 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 en este directorio automáticamente cuando el compilador Java compila archivos Java en el directorio Java Resources.
El compilador de Java suprimirá los archivos transferidos directamente a este
directorio al ejecutarse.
- /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, 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 proyectos
Java en otras partes del entorno de trabajo, se incluyen en esta
carpeta. 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 compilación de Java permanecerá ahí a no ser
que se suprima el archivo JAR físico 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.