Download INSTALACIÓN TOMCAT

Document related concepts
no text concepts found
Transcript
INSTALACIÓN TOMCAT
El servidor Tomcat es una implementación de referencia de las tecnologías Java Servlet y
JavaServer Pages (JSP). Es un subproyecto del Proyecto Jakarta, una iniciativa de
Apache para crear soluciones de servidor abiertas basadas en la plataforma Java. Antes
de comenzar las prácticas de hoy tendreis que instalar el servidor Tomcat en vuestras
cuentas. Para ello debeis seguir los siguientes pasos:


Descargar el fichero jakarta-tomcat-4.0.4.tar.gz al directorio temporal (/tmp).
Extraer los ficheros de Tomcat en algún directorio de vuestra cuenta, para ello una
vez situados en el directorio ejecutad el comando:
tar xvzf /tmp/jakarta-tomcat-4.0.4.tar.gz
se creará un nuevo subdirectorio llamado jakarta-tomcat-4.0.4.




Establecer la variable de entorno CATALINA_HOME para que apunte al directorio
donde hemos instalado nuestro servidor Tomcat.
Añadir el directorio ${CATALINA_HOME}/bin a la variable de entorno PATH.
Establecer la variable de entorno JAVA_HOME para que apunte al directorio
donde está instalado Java (en el laboratorio este directorio es /usr/local/jdk1.3.1).
Añadir el directorio ${JAVA_HOME}/bin a la variable de entorno PATH.
Ahora ya podemos ejecutar el servidor Tomcat y empezar a probar nuestros primeros
servlets.
Instrucciones de arranque y parada de Tomcat
Las instrucciones para parar y arrancar el servidor Tomcat son las siguientes:

El script de arranque se encuentra en el directorio bin de la instalación del Tomcat,
como hemos incluido esta ruta en nuestra variable de entorno PATH será
suficiente ejecutar en la shell:
startup.sh

Del mismo modo, para parar el servidor se debe ejecutar el siguiente comando en
la shell:
shutdown.sh
Para comprobar que vuestra instalación ha sido satisfactoria, arrancad el servidor Tomcat
y desde un navegador conectaros a la URL: http://localhost:8080 si podeis ver la página
principal de Tomcat, la instalación ha sido correcta.
EJERCICIO 1: Servlet Hola Mundo
En este ejercicio vamos a ver cómo se desarrolla y se despliega un servlet sencillo, el
servlet "Hola Mundo". Para ello debemos realizar las siguientes tareas:
1. Codificar y compilar el servlet.
2. Desplegar el servlet en Tomcat.
3. Ejecutar el servlet y visualizar contenidos estáticos.

Tarea 1: Codificar y compilar el servlet.
En este primer ejercicio se os proporciona el código del servlet, que os podeis
descargar desde el enlace HolaMundo.java.
Para compilar un servlet, se necesita la API de Servlet que os podeis descargar
desde servlet.jar. Se recomienda incluirla en la variable de entorno CLASSPATH,
o compilar con la opción -classpath, por ejemplo:
java -classpath servlet.jar HolaMundo.java

Tarea 2: Desplegar el servlet en Tomcat
Desplegar un servlet consiste en incluir una serie de ficheros en un contenedor
web (por ejemplo, Tomcat) para que los clientes puedan acceder a su
funcionalidad. Normalmente, el desarrollo de un servlet forma parte de lo que se
denomina una aplicación Web, que no es más que una colección de servlets,
páginas HTML, JSP, clases y otros recursos que se pueden empaquetar y
ejecutar en distintos contenedores web, de distintos fabricantes, y que ofrecen una
determinada funcionalidad a la que los clientes acceden tipicamente a través de
un navegador. Las Aplicaciones Web, a partir de la especificación de Servlet 2.2,
deben estructurarse según la siguiente jerarquía de subdirectorios:
o
Directorio raíz: puedes publicar ficheros estáticos (HTML, imágenes, hojas
de estilo, etc.) y JSPs.
 Directorio WEB-INF: debe contener un fichero web.xml. Este
fichero configura la aplicación. Por ejemplo, permite declarar
servlets, asignarles parámetros de inicio, declarar alias y filtros,
etc.
 Directorio classes: puedes colocar en él los ficheros
compilados (servlets, beans, etc.) de las clases utilizadas
por la aplicación web.
 Directorio lib: puedes colocar en él otras bibliotecas de
clases adicionales (comprimidas con jar) que utilice tu
aplicación.
 Resto de subdirectorios: para ficheros estáticos y JSP.
Para exportar aplicaciones web a otros servidores, puedes comprimir esta
estructura de directorios, utilizando jar, dando lugar así a un fichero WAR
(almacénalo con extensión war, por ejemplo practica4.war). Este fichero es
compatible con cualquier plataforma de ejecución de servlets y JSP.
Para desplegar nuestro servlet de ejemplo crearemos un contexto para nuestra
aplicación web, denominado practica4, crear un contexto en Tomcat no es más
que crear un directorio debajo de ${CATALINA_HOME}/webapps/. Éste directorio
se corresponde con el directorio raíz de nuestra aplicación web y por lo tanto,
debajo de él debemos crear la estructura de subdirectorios indicada
anteriormente.
Nota: El nombre del contexto es el primer nivel de la jerarquía de la ruta de
acceso a nuestra aplicación, que en este caso será:
http://localhost:8080/practica4/path_recurso
El fichero de despliegue, para este ejemplo, lo podeis descargar del enlace
web.xml. También se os proporcionan una serie de ficheros estáticos estatico.html
y tomcat.gif para que veais cómo se accede a ellos. Situad correctamente todos
estos ficheros, junto con el HolaMundo.class, en la estructura de directorios
creada.
${CATALINA_HOME}/webapps +-- practica4 +-- WEB-INF +-web.xml
|
+-classes +-- HolaMundo.class
+-- estatico.html
|
+-- tomcat.gif

Tarea 3: Ejecutar el servlet y visualizar contenidos estáticos
Si arrancamos un navegador y nos conectamos a la URL
http://localhost:8080/practica4/servlet/hola activaremos nuestro servlet de ejemplo
y se mostrará la página XHTML con el mensaje ¡Hola Mundo!. Para ver los
contenidos estáticos tendremos que conectarnos a las URL
http://localhost:8080/practica4/estatico.html
NOTA: Analizad el código del servlet proporcionado, así como el del fichero web.xml
(sobre todo la parte correspondiente a la declaración del servlet hola).
Modificación
Modifica el servlet anterior para que devuelva, además del saludo, la siguiente
información:



Dirección IP del cliente.
Contenido de la cabecera User-Agent.
Fecha y hora del servidor.
EJERCICIO 2: Parámetros de la petición
Realizad un formulario XHTML1.1 en el que se le solicite al usuario: su nombre, primer y
segundo apellido y dirección. Escribe un servlet que muestre un resumen de la
información enviada por dicho formulario. Comprueba que funcione correctamente.
Para acceder al nuevo servlet tienes dos opciones:


Declarar un nuevo elemento servlet en web.xml, con su alias asociado (accesible
mediante /practica4/servlet/alias).
No modificar web.xml, y ejecutar el servlet mediante el nombre de su clase. Por
ejemplo, si la clase se llama FormularioUsuario, debes copiar
FormularioUsuario.class en WEB-INF/classes y solicitar el recurso
/practica4/servlet/FormularioUsuario al servidor.
EJERCICIO 3: Test de vocabulario
La API de servlets proporciona mecanismos para gestionar sesiones de forma
transparente al programador (consulta la clase javax.servlet.http.HttpSession y el método
getSession() de HttpRequest).
Programa un servlet que se comporte igual que la CGI del ejercicio 2 de la práctica 3. En
este caso, el contenedor de servlets mantiene automáticamente la sesión, enviando una
cookie con un identificador de sesión. Por tanto, no es necesario que envíes cookies
explícitamente: basta con utilizar HttpSession adecuadamente.
Modificad el servlet anterior para que se realice la misma pregunta hasta que el usuario la
acierte