Curso de Java Servidor

2 - Servlets


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....


Servlets

NOTA PREVIA: para poder realizar el curso es necesario conocer los fundamentos del lenguaje Java y tener instalado y configurado el J2SE SDK, que permite la compilación y ejecución de código Java. Si no se cumplen estos requisitos, se recomienda realizar antes de éste, el curso de Java.

Un servlet es un programa Java que se guarda y ejecuta en un servidor J2EE compatible. Su función primordial es interaccionar dinámica y personalizadamente con el cliente que solicita sus servicios.

La interacción entre cliente y servlet se traduce, en la mayoría de los casos, en la generación y posterior envío de una respuesta codificada en html al cliente, pero no tiene por qué ser así: la respuesta podría realizarse en otro tipo de formatos tales como pdf, xml, wml, zip, jar, gif, doc, xls, etc.

Ejemplo:

Visitar http://www.myjavaserver.com/~trilcejf/EncuestaPrivada.html

Se accede a un formulario que solicita una serie de datos que se emplearán en una encuesta on-line. Todos los datos, excepto los asociados a las casillas de verificación, serán capturados por un servlet, que generará una respuesta html personalizada.

La respuesta variará en función de la elección de sexo realizada por el usuario:

  • Si elige hombre, el color de fondo será cyan y aparecerá un enlace cuya pulsación provocará la visualización de la imagen tomcat.gif
  • Si escoge mujer, el color de fondo será rosa y la pulsación del enlace provocará la visualización de la imagen taza.gif

Además, se enviará un saludo personalizado y se mostrarán en una tabla todos los datos capturados excepto los de las casillas, que se mostrarán en otra tabla indicando las actividades de ocio seleccionadas por el cliente.

Un servlet suele formar parte de una aplicación web. Una aplicación web consiste en un conjunto de servlets, páginas jsp, ficheros html, clases Java de apoyo empaquetadas o no en ficheros jar y otro tipo de recursos tales como ficheros de imágenes, de sonidos, de texto, etc. Se estudiarán con más detalle, más adelante en este tema.

Un servlet debe codificarse, compilarse, desplegarse y ejecutarse. A continuación, se explica lo fundamental de estas operaciones. Conforme avance el tema, se irán analizando con más detalle cada una de ellas. Ahora se trata de tener una idea general del proceso de creación y ejecución de un servlet.

  • Codificación: implica escritura del código del servlet mediante un editor de texto cualquiera o un IDE (Integrated Development Environment). En el curso, JCreatorPro.
  • Compilación: un servlet utiliza clases e interfaces que no forman parte de la API estándar. Dichas clases e interfaces se incluyen en un fichero jar de nombre servlet-api.jar que, habitualmente, se encuentra disponible en la estructura de directorios del servidor J2EE compatible, en el que se hospeda y ejecuta.

En el curso, se empleará Tomcat. Tomcat surgió del proyecto Jakarta que desarrollaron juntos Sun www.sun.com y la fundación Apache www.apache.org. Sun abandonó el desarrollo y la optimización de su propio servidor J2EE compatible, Java Web Server, usado hasta entonces y se decantó por el apoyo a Apache, dando como resultado el servidor hecho íntegramente en Java y con soporte para ejecutar servlets y jsps, Tomcat.

Volviendo al fichero servlet-api.jar, hay que decir que se encuentra en tomcat_home\common\lib, siendo tomcat_home el directorio donde se ha instalado Tomcat. Para instalar Tomcat, ir a http://jakarta.apache.org/tomcat/index.html, sección Download y enlace Tomcat 5.X. Luego localizar la sección Binary Distributions/Core/Windows Service Installer (es un link que apunta al .exe del server)

Descargado el fichero ejecutable, la instalación es sencilla: doble clic y a seguir los pasos del asistente, seleccionando las opciones por defecto, salvo en la ubicación del directorio de instalación (por comodidad, colgará del disco duro). Durante el proceso se muestra el puerto por el que el servidor se mantiene a la escucha (8080) y se pide un password para actuar como administrador. Para realizar el curso, se sugiere dejar el puerto por defecto y no poner password.

En la última pantalla del asistente de instalación se ofrece lanzar el servidor y leer el Readme.txt asociado. Aceptado el ofrecimiento, se observará un icono como éste en la parte derecha de la barra de tareas. Picando sobre él con el derecho se seleccionará "Start service" para lanzar el servidor. El icono se convertirá en una vez levantado. Picando con el derecho sobre el icono se seleccionará "Stop service" para tumbarlo. Tumbado el servidor, volverá a mostrarse el icono

Picando con el derecho y seleccionando "Configure ..." se muestra un cuadro de diálogo con propiedades de Tomcat. La más interesante es la que se muestra en la pestaña "Logging"

ya que se indica el directorio donde se ubican los ficheros log que permiten conocer todo lo que está ocurriendo en Tomcat. El más interesante es el señalado ya que actúa como consola, es decir, un System.out.println("cucu"); se traduce en que aparece escrito cucu en este fichero. Además también informa de cuando se han actualizado los class resultantes de la recompilación de un servlet.

Durante la instalación, se crea un grupo de accesos directos colgando de Inicio/Programas/Apache Tomcat 5.X que permiten acceder a la configuración, a la ayuda, etc.

Para verificar que Tomcat funciona bien, una vez levantado, abrir una sesión del navegador y teclear http://localhost:8080. Debe aparecer esto

Volviendo a la compilación de un servlet, hay que decir que para que se realice con éxito es necesario agregar a la variable de entorno CLASSPATH, la ruta del fichero servlet-api.jar (recordar que se encuentra en tomcat_home\common\lib). Dos posibilidades:

  • Si no se utiliza IDE (el profesor no lo aconseja), en función del s.o. instalado se seguirán los siguentes pasos:
  • En W98, se accederá al autoexec.bat y se agregará la ruta tomcat_home\common\lib\servlet-api.jar. A continuación se reinicia la máquina.
  • En WMillenium, W2000, WNT, WXP, se accederá a las variables de entorno desde Panel de control/Rendimiento y mantenimiento/Sistema/Opciones avanzadas, botón Variables de entorno y se agregará la ruta a la variable CLASSPATH. En este caso no será preciso reiniciar, tan solo abrir una nueva sesión del DOS.
  • Si se utiliza JCreator como IDE (es lo que el profesor aconseja), se agregará a la variable CLASSPATH propia del IDE, la ruta de servlet-api.jar.
NOTA: antes de continuar, se va a aconsejar un IDE para escribir, compilar y ejecutar código Java. Conviene no olvidar que el objetivo del curso es aprender Java servidor, no el manejo de un software que permite trabajar con código Java de un modo más o menos automático. No obstante, es una opinión bastante compartida que un IDE facilita la realización de estas tareas y hace perder menos tiempo al programador en cuestiones no directamente relacionadas con la creación de código, como teclear javac ... cada vez que se quiere compilar, teclear java ... cada vez que se quiere ejecutar, consultar la API porque no se recuerda el nombre de un método, etc.

IDE de trabajo recomendado: JCreator. Hay dos versiones:

  • JCreator LE version: versión limitada. Es gratuita y descargable desde www.jcreator.com, sección Download
  • JCreator PRO versión: versión profesional. Es de pago. Dispone de herramientas que permite la autocompletación de código

Se pone a disposición de los alumnos unos apuntes básicos sobre la descarga, instalación y manejo del IDE en

http://teleformacion.fer.es/general/prt/c/java/2/NotasJCreatorV3.XX.doc para versiones 3.XX

http://teleformacion.fer.es/general/prt/c/java/2/NotasJCreatorV4.XX.doc para versiones 4.XX

¿Cómo se hace esto?

Menu Configure/Options/JDK Profiles, se selecciona el profile instalado y se observa la CLASSPATH en uso. En ella no aparecerá la ruta de servlet-api.jar.

¿Cómo se sigue para que aparezca?

Botón Edit, pestaña Classes, botón Add/Add Archive y se selecciona el fichero servlet-api.jar.

Hecho esto, se acepta y se observará la nueva ruta en la CLASSPATH. Ahora ya pueden compilarse servlets con JCreator

Para comprobarlo se escribirá el código de abajo. Si se trabaja con JCreatorPro, cerrar el Workspace actual y crear un nuevo fichero java en el Workspace por defecto, sin que forme parte de ningún proyecto.

Código fuente

  • Despliegue (deployment): implica ubicación del class del servlet en el directorio adecuado de Tomcat y escritura en el fichero descriptor de despliegue de la aplicación que incluye al servlet, del elemento xml <servlet> correspondiente, junto con su cierre. Todo esto, se estudiará a lo largo del tema.
  • Ejecución: implica levantar Tomcat o el servidor J2EE compatible que se utilice y teclear el url adecuado en la barra de direcciones del cliente.

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.