Curso de Java Servidor

Etapa de desarrollo

El punto de partida de todo desarrollador de aplicaciones web es la creación de un document root o directorio raíz de aplicación que va a contener a todos sus componentes. Este directorio raíz colgará del directorio raíz de todas las aplicaciones web del servidor J2EE de trabajo.

En el caso de Tomcat, tomcat_home\webapps.

En el caso de JBoss, jboss_home\server\default\deploy

Hecho esto, el desarrollador deberá

  • Situar los ficheros html, jsp, xml, txt, imágenes, sonidos, etc. colgando directamente del directorio raíz de su aplicación o de subcarpetas del mismo
  • Crear un subdirectorio WEB-INF colgando del raíz de la aplicación y almacenar en él, el fichero descriptor de despliegue web.xml.
NOTA: el contenido de este fichero es fundamental para el despliegue de la aplicación ya que describe al contenedor web  sus elementos y el modo en que se accede a los mismos. Además, define aspectos de seguridad, ficheros de bienvenida, parámetros iniciales, parámetros de contexto, etc. Cuando Tomcat (y, en general cualquier servidor J2EE compatible) se levanta, lee este fichero y, si contiene algún tipo de error, se lanzan excepciones que indican que el servidor no se ha levantado correctamente.

Este directorio contiene los recursos privados de la aplicación. No son accesibles directamente desde el cliente, en el sentido de que no puede descargárselos y ver su código

  • Crear un subdirectorio WEB-INF\classes y almacenar en él los class de los servlets compilados y otras clases de apoyo. Debe tenerse en cuenta que si están empaquetados, los class se ubicarán en subdirectorios adecuados atendiendo a sus estructuras de paquete.
  • Crear un subdirectorio WEB-INF\lib y almacenar en él librerías de clases en forma de ficheros jar que la aplicación web usa. Típicamente drivers de BDs y librerías de etiquetas.
  • Además, suele crearse una carpeta de nombre src (source) colgando del raíz de la aplicación donde se ubican los códigos fuente de los servlets, en el caso de que el desarrollador quiera hacerlos públicos
NOTA: todo lo anterior puede hacerse de forma automática si se emplea un IDE (en el curso JCreatorPro); si no, las carpetas deberán crearse a mano. Además, para que los class de los servlets compilados y de todas las clases de apoyo aparezcan en WEB-INF/classes:

Desde el DOS y estando en src se teclea

javac –d ../WEB-INF/classes *.java o javac –d ../WEB-INF/classes codigoFuenteServlet.java

 Si se trabaja con paquetes

javac –d ../WEB-INF/classes paquete/subpaquete/. . ./  *.java o javac –d ../WEB-INF/classes paquete/subpaquete/. . ./  codigoFuenteServlet.java


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Java Servidor y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Ejemplo de desarrollo

Para ilustrar la etapa de desarrollo de una aplicación web, se va a crear la aplicación que se desplegó al principio partiendo de cero. Se recuerda que constaba de un formulario y dos servlets. Su directorio raíz o document root se llamará Prueba.

Estructura de la aplicación web cuyo directorio raíz es Prueba: es la misma que se obtuvo después de desplegar Prueba.war. Se recomienda eliminar el directorio tomcat_home\webapps\Prueba con el fin de volver a realizar la aplicación paso a paso

NOTA 1 PARA TRABAJAR CON APLICACIONES WEB EN JCREATORPRO: se indican los pasos que deben seguirse para realizar la aplicación web Prueba con JCreatorPro

El IDE cuenta con una plantilla para crear aplicaciones web que se va a modificar para ajustarla a nuestro modo de trabajo. Los ficheros base de esta plantilla se encuentran en jcreator_home\Templates\Template_5.

  • Primero se realizará una copia de esta carpeta de nombre Copia de Template_5.
  • A continuación, se eliminarán de la carpeta Template_5 los ficheros build.xml, lib\struts.jar, la carpeta docs y la carpeta web. También se eliminará la subcarpeta mypackage de src y se creará una con el nombre de vuestro paquete de trabajo (en mi caso, trilcejf). Se recomienda que el alumno utilice también este nombre para evitar complicaciones a la hora de descargar las soluciones.
  • De la copia de Template_5, es decir, de Copia de Template_5, se copiará a Template_5 el directorio WEB-INF ubicado en web, se eliminará el fichero struts-template.tld y, finalmente, se moverá a WEB-INF el directorio lib de Template_5.

Por último, se editará el fichero setup.tst y se modificará su contenido de forma que quede como el siguiente:

; This file contains the setup information for a template project.

[LABEL]          Jesus Web Application

[DESTPATH]  "WEB-INF\classes"

[SRCPATH]   "src\trilcejf"

En la primera línea, en vez de Jesus, poner vuestro nombre. Cuando se cree un nuevo proyecto aparecerá un nuevo icono con la label o etiqueta definida.

En la última línea, en vez de trilcejf, cada alumno pondrá el nombre de su correspondiente package de trabajo (en mi caso, trilcejf). Se recomienda mantener el trilcejf para evitar complicaciones en la descarga de las soluciones

La estructura de directorios colgando de Templates quedará así:

  

El directorio src contendrá al subdirectorio trilcejf (estará vacio), el WEB-INF al subdirectorio lib (estará vacio) y al modelo de un descriptor de despliegue web.xml que se irá modificando adecuadamente para cada aplicación web.

 

NOTA 2 PARA TRABAJAR CON APLICACIONES WEB EN JCREATORPRO: hecho lo anterior, se explica a continuación la creación de una aplicación web con JCreator basada en la template o plantilla comentada en la nota anterior:

  • Crear, en mi caso, una “Jesus Web Application” mediante File/New/Project de nombre Prueba que forme parte del espacio de trabajo JavaServidor. Debe tenerse lo siguiente:

     

Para ello, se teclea Prueba en Name y se selecciona desde el botón de puntitos   tomcat_home\webapps. Después Finish. Hecho esto, JCreator crea la carpeta Prueba y todos los subdirectorios indicados en el fichero de configuración de plantilla setup.tst

  • Agregar un fichero html de nombre FormularioPrueba a la aplicación, pero antes de aceptar, asegurarse de que en Location aparece tomcat_home\webapps\Prueba. Si no es así, empleando el botón de los puntitos hacer que aparezca seleccionando la correspondiente carpeta
  • Agregar los servlets ServletPrueba y ServletEnlace a la aplicación. Para ello, actuar como antes, pero seleccionado Java File y haciendo que se muestre en Location tomcat_home\webapps\Prueba\src\trilcejf

Los class resultantes de la compilación de los servlets aparecerán en tomcat_home\webapps\Prueba\WEB-INF\classes\trilcejf. Para comprobarlo, ir al menú Project/Project Settings/Output Path y verificar que aparece tomcat_home\webapps\Prueba\WEB-INF\classes.

A continuación, se proporcionan los fuentes de cada uno de los ficheros mencionados anteriormente para que el alumno desarrolle la aplicación. En posteriores ocasiones, se proporcionará al alumno la aplicaciones web empaquetada en su correspondiente war. El alumno la desplegará y accederá a todos sus componentes desde JCreator.

 

Código del fichero descriptor de despliegue de la aplicación (web.xml)

Si alguien no conoce XML, puede consultar http://www10.brinkster.com/trilcejf/XML.pdf

Código fuente

Una vez pulsado el enlace, conviene ir a menú Ver/Código fuente para obtener el contenido sin ningún tipo de formato.

Después del DTD, debe aparecer la etiqueta <web-app>, que va a ser el elemento raíz del fichero XML. El resto de elementos son característicos de una aplicación web J2EE compatible y tienen que estar contenidos entre <web-app> y su cierre </web-app>.

El fichero descriptor de una aplicación web puede contener muchos elementos. En el curso se van a ver sólo los más importantes y utilizados.

NOTA:

todas las peticiones cuyo url fuera http://host/dirRaizAplicacion


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Java Servidor y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Si desea obtener un acceso sin restricciones a los contenidos del curso de Java Servidor y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.