Práctica 10

Anuncio
Práctica 10: Sesión en Servlets
Ejercicio 10.1: Servlets con gestión de sesión
Instalar, probar y entender el funcionamiento de los siguientes servlets contenidos en el fichero
de fuentes del capitulo:
http://www.tecnun.es/asignaturas/informat2/Material/Libro/sesiones.zip
(Descomprimir dicho fichero en el directorio webapps para que se cree la estructura de
directorios de la aplicación “sesiones”.)
El servlet ShoppingCart.java guarda en campos ocultos (type = “hidden”) los valores
introducidos por el usuario.
El servlet ShowSession.java muestra como crear una sesión y guardar y recuperar datos en la
misma.
Ejercicio 10.2: Escritura de valores en una sesión
Probar el funcionamiento de SessionServlet.java y realizar los siguientes cambios:
En SessionServlet.java añadir a la salida de la página HTML un formulario que recoja el
valor de dos variables, una conteniendo el nombre de un atributo de una sesión y la otra el valor de
dicho atributo. Estas variables se deben enviar al mismo servlet. Para crear el formulario añadir
después de:
out.println("</table></center>");
las líneas:
out.println("<H2>Envío de atributo al servlet</H2>");
out.println("<FORM action=\"SessionServlet\" method=\"GET\">");
out.println("<INPUT type=\"text\" size=\"20\" name=\"dataname\">");
out.println("<BR>");
out.println("<INPUT type=\"text\" size=\"20\" name=\"datavalue\">");
out.println("<BR>");
out.println("<INPUT type=\"submit\">");
out.println("</FORM>");
En el mismo servlet, una vez obtenida la sesión, se deben leer las dos variables anteriores y si
las dos no son nulas añadir el nuevo atributo con su valor a la sesión. Para leer los parámetros y
crear el atributo, añadir después de:
HttpSession session = request.getSession(true);
las líneas:
String dataName = request.getParameter("dataname");
String dataValue = request.getParameter("datavalue");
if (dataName != null && dataValue != null) {
session.setAttribute(dataName, dataValue);
}
Llamar al servlet desde el navegador:
http://localhost:8080/sesiones/SessionServlet
Comprobar que los nuevos atributos que se van añadiendo se muestran en la lista de atributos,
así como que se puede cambiar el valor de un atributo existente.
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]
38
Informática II
Ejercicio 10.3: Guardar distintas solicitudes de un mismo usuario
Se trata de simular el funcionamiento de una aplicación, “reservaLibros”, que acepta reservas de
libros (por ejemplo para su posterior compra o préstamo). La lista de libros que se pueden reservar
se almacena en un fichero lista.txt que contiene la información del código, título y autor de cada
libro. Cada libro se almacena en una fila del fichero, separados los campos por un tabulador. El
objetivo es mostrar esta relación de libros e ir añadiéndolos a una lista de reservas del usuario. Este
fichero y los servlets iniciales se encuentran en el fichero de la práctica.
10.3.1. Servlet que muestra la relación de libros
Se dispone de un servlet, MostrarLibros.java, que muestra los libros contenidos en el
fichero libros.txt. Se llama al servlet sin ningún parametro, con lo que se muestran todos los libros
del fichero.
http://localhost:8080/reservaLibros/MostrarLibros
10.3.2. Servlet que muestra la relación de libros con posibilidad de selección de libros
A partir del servlet MostrarLibros.java
anterior,
realizar
el
servlet
MostrarLibrosCheck.java con las siguientes
modificaciones sobre el original:
•
La tabla debe estar incluida en un formulario html
(<FORM …) que llame al servlet ya realizado
RealizarReserva.java
•
Cada línea debe tener un checkbox que en el caso
de marcarse envía el ISBN del libro
•
Añadir un botón dentro del formulario que realice
la llamada al servlet (input de tipo submit).
Probar el servlet realizado. La salida originada por
el servlet MostrarLibrosCheck.java es la que se
muestra en la Figura 10.1.
Figura 10.1. Relación de libros para reservar
10.3.3. Servlet que realiza la reserva de un libro seleccionado
Se dispone del servlet RealizarReserva.java que guarda en la sesión el código de los libros
reservados. Comprobar que con 2 navegadores distintos, se guardan valores distintos en cada sesión,
no así desde 2 pestañas o 2 ventanas abiertas desde el mismo navegador.
Este servlet se llama cuando se pulsa “Submit Query” en el formulario que muestra el servlet
MostrarLibrosCheck.java (ver Figura 10.1).
10.3.4. Registro de un usuario
El Servlet RealizarReserva.java busca el valor del atributo “user” y si no es nulo, lo
muestra en lugar del ID de la sesión. Realizar un servlet que ponga este atributo con el valor que el
usuario defina en un formulario. Para ello hay que crear un serlet de nombre
RegistroUsuario.java que responde a la llamada del formulario registroUsuario.html.
A continuación se resumen los servlets que aparecen en la práctica con las características
generales de cada uno de ellos:
Aplicación
sesiones
sesiones
sesiones
reservaLibros
reservaLibros
reservaLibros
reservaLibros
Servlet
ShoppingCart
ShowSession
SessionServlet
MostrarLibros
MostrarLibrosCheck
RealizarReserva
RegistroUsuario
Formulario
HttpSession
Si
No
Si
No
Si
No
No
No
Si
Si
No
No
Si
Si
Requiere
modificación
No
No
Si
No
Si
No
Si
Descargar