Aplicaciones y proyectos Web dinámicos

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 Refactorizar > Redenominar.
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.
Conceptos relacionados
Recursos Web
Archivos WAR (Web Archive)
Tareas relacionadas
Crear un proyecto Web dinámico
Crear archivos JSP (JavaServer Pages)