Download Práctica 8: Servlets - TECNUN:Campus Tecnológico de la

Document related concepts
no text concepts found
Transcript
Práctica 8: Servlets
En esta práctica, primero se creará y se instalará en el servidor de aplicaciones Apache Tomcat,
el servlet “HelloWorld”. Después se instalará un segundo servlet al cual se le harán una serie de
modificaciones. Finalmente se comenzará a crear la aplicación de gestión de servlets en entorno
Web.
Ejercicio 8.1: Instalación de Tomcat y primer servlet
Este primer ejercicio consiste en seguir los pasos que se describen a continuación para instalar y
ejecutar el servlet “HelloWorld”.
Pasos a realizar para la puesta en funcionamiento del servidor Tomcat:
1. Copiar el directorio Q:\Java\apache-tomcat-5.5.12 al directorio G:\
2. 2.Definir las variables de entorno en una consola de MS-DOS:
SET JAVA_HOME=Q:\JAVA\jdk1.6.0_04
SET CATALINA_HOME=G:\apache-tomcat-5.5.12
SET PATH=%JAVA_HOME%\bin;%CATALINA_HOME%\bin;%PATH%
SET CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\common\lib\servlet-api.jar;
%CATALINA_HOME%\common\lib\Jama-1.0.2.jar;
. (se deben escribir estas dos últimas líneas en una sola línea)
De esta forma se tendrá acceso a los comandos startup y shutdown de la aplicación tomcat y a
las clases de los servlets.
Pasos a realizar para realizar el primer servlet:
3. Crea los directorios de la aplicación “primerServlet” en el subdirectorio webapps de la
instalación del tomcat.
Crear la carpeta primerServlet en webapps
Crear la carpeta WEB-INF en el subdirectorio webapps\primerServlet
Crear la carpeta classes en el subdirectorio webapps\primerServlet\WEB-INF
4.
En el directorio webapps\primerServlet\WEB-INF\classes crear el código fuente de HelloWorld.java:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
Compilarlo con el comando:
javac HelloWorld.java
5. Crear el fichero web.xml en el directorio
CAMPUS TECNOLÓGICO DE LA UNIVERSIDAD DE NAVARRA. NAFARROAKO UNIBERTSITATEKO CAMPUS TEKNOLOGIKOA
Paseo de Manuel Lardizábal 13. 20018 Donostia-San Sebastián. Tel.: 943 219 877 Fax: 943 311 442 www.tecnun.es [email protected]
30
Informática II
G:\apache-tomcat-5.5.12\webapps\primerServlet\WEB-INF con el contenido:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
<servlet>
<servlet-name>primer</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>primer</servlet-name>
<url-pattern>/primer.html</url-pattern>
</servlet-mapping>
</web-app>
6. Arranca el servidor de servlets con el comando:
startup
7. Arranca el navegador y solicita la página con la dirección:
http://localhost:8080/primerServlet/primer.html
Ejercicio 8.2: Instalación de ServletOpinion
En este segundo ejercicio se instalará el servlet ServletOpinion, descrito en el libro.
Pasos a realizar para la puesta en funcionamiento de ServletOpinion en Tomcat:
1. Tomcat se encuentra instalado según las instrucciones del ejercicio 1.
2. Descomprimir en el subdirectorio webapps de la instalación de tomcat el fichero
ServletOpinion.zip. Al descomprimirse creará ya el subdirectorio de la nueva aplicación
ServletOpinion y la estructura de directorios (WEB-INF y classes).
El fichero MiServlet.html se debe encontrar en webapps\ServletOpinion
El fichero web.xml en el subdirectorio webapps\ServletOpinion\WEB-INF
El fichero ServletOpinion.java debe estar en el subdirectorio webapps\ServletOpinion\WEB-INF\classes
3. La dirección a la que debe llamar el formulario de MiServlet.html es:
opinion
4. En el directorio webapps \ServletOpinion\WEB-INF\classes compila el código fuente java con el
comando:
javac ServletOpinion.java
5. El contenido del fichero web.xml debe ser:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app>
<servlet>
<servlet-name>Opinion</servlet-name>
<servlet-class>ServletOpinion</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Opinion</servlet-name>
<url-pattern>/opinion</url-pattern>
</servlet-mapping>
</web-app>
6. Arranca el servidor de servlets con el comando:
startup
7.
Arranca el navegador y solicita la página MiServlet.html. con al URL:
http://localhost:8080/ServletOpinion/MiServlet.html
8. Rellenar los distintos campos del formulario y pulsar enviar. El servlet responde con “Valores
recogidos del formulario: “.
Prácticas
31
En el servlet ServletOpinion es necesario fijarse en la función doGet() y algunos de los métodos
que utiliza, en concreto:
•
getParameter(), método de la clase HttpServletRequest, que devuelve el valor enviado por
el formulario, para el elemento cuyo nombre se introduce como argumento. Con esta
función se recupera cada uno de los valores que el usuario ha introducido en los distintos
elementos del formulario. Este método siempre devuelve el valor como String, por lo que si
se quiere utilizar de forma numérica, habrá que convertirlo de la forma habitual (por
ejemplo a entero con el método: Integer.parseInt(String).
•
setContentType(), método de la clase HttpServletResponse, que indica que el contenido va
a ser una página Html, esta sentencia se incluirá al comienzo de la salida de todos los
servlets.
•
getWriter(), método de la clase HttpServletResponse, que devuelve un objeto de tipo
PrintWriter (como System.out o para escribir en un fichero) de forma que se pueden utilizar
los métodos print() y println(), iendo dicha salida al navegador del usuario que realizó la
petición. Esta sentencia se incluye junto a la anterior al comienzo de la salida del servlet.
•
Los métodos flush() y close() de PrintWriter se ponen al final de la salida para asegurar el
envío d la página.
•
El método devolverPaginaHTML, no es estrictamente necesario, es simplemente por la
organización de este servlet en particular, pero se podría eliminar la utilización de esta
clase e incluir su contenido directamente en el método doGet().
Ejercicio 8.3: Servlet menú de aplicación
Basado en el servlet primerServlet, crear un nuevo directorio en webapps de nombre “matrices”,
y crear la estructura de carpetas para contener un servlet (directorios WEB-INF y classes y fichero
web.xml).
Realizar 2 páginas web estáticas, una conteniendo el menú de la aplicación y otra un formulario
como respuesta a la primera opción del menú. Este formulario preguntará por el número de filas y
columnas de la matriz que se desea crear. El aspecto de estas páginas puede ser similar al que se
muestra a continuación.
32
Informática II
Crear 3 servlets:
1. El servlet Celdas.java, crea un formulario con el número de celdas indicadas en el formulario
anterior. El formulario que crea este servlet llama al servlet CrearMatriz.java.
2. El servlet CrearMatriz.java guarda los valores introducidos en el formulario en un objeto de
Jama.Matrix y muestra la matriz creada.
Para guardar y compartir las matrices se crea una clase con una variable estática de
Vector<Matrix> que contiene todas las matrices. Dicha clase de puede definir de la siguiente forma
y es accesible por las otros servlets.
import java.util.*;
import Jama.*;
public class MatrixVector {
public static Vector<Matrix> v = new Vector<Matrix>();
}
3. El servlet MostrarMatrices.java, es la respuesta a la segunda opción del menú y muestra todas
las matrices creadas.
El resultado de ambos servlets se muestra a continuación:
Servlet CrearMatriz
Servlet MostrarMatrices