Vous êtes sur la page 1sur 2

CAMPUS TECNOLGICO DE LA UNIVERSIDAD DE NAVARRA.

NAFARROAKO UNIBERTSITATEKO CAMPUS TEKNOLOGIKOA


Paseo de Manuel Lardizbal 13. 20018 Donostia-San Sebastin. Tel.: 943 219 877 Fax: 943 311 442 www.tecnun.es informacion@tecnun.es
Prctica 10: Sesin en Servlets
Ej ercicio 10.1: Servlets con gestin de sesin
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 aplicacin 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 sesin y guardar y recuperar datos en la
misma.

Ej ercicio 10.2: Escritura de valores en una sesin
Probar el funcionamiento de SessionServlet.java y realizar los siguientes cambios:
En SessionServlet.java aadir a la salida de la pgina HTML un formulario que recoja el
valor de dos variables, una conteniendo el nombre de un atributo de una sesin y la otra el valor de
dicho atributo. Estas variables se deben enviar al mismo servlet. Para crear el formulario aadir
despus de:
out.println("</table></center>");
las lneas:
out.println("<H2>Envo 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 sesin, se deben leer las dos variables anteriores y si
las dos no son nulas aadir el nuevo atributo con su valor a la sesin. Para leer los parmetros y
crear el atributo, aadir despus de:
HttpSession session = request.getSession(true);
las lneas:
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 aadiendo se muestran en la lista de atributos,
as como que se puede cambiar el valor de un atributo existente.
38 Informtica II
Ej ercicio 10.3: Guardar distintas solicitudes de un mismo usuario
Se trata de simular el funcionamiento de una aplicacin, reservaLibros, que acepta reservas de
libros (por ejemplo para su posterior compra o prstamo). La lista de libros que se pueden reservar
se almacena en un fichero lista.txt que contiene la informacin del cdigo, ttulo 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 relacin de libros e ir aadindolos a una lista de reservas del usuario. Este
fichero y los servlets iniciales se encuentran en el fichero de la prctica.
10.3.1. Servlet que muestra la relacin de libros
Se dispone de un servlet, MostrarLibros.java, que muestra los libros contenidos en el
fichero libros.txt. Se llama al servlet sin ningn parametro, con lo que se muestran todos los libros
del fichero.
http://localhost:8080/reservaLibros/MostrarLibros
10.3.2. Servlet que muestra la relacin de libros con posibilidad de seleccin 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 lnea debe tener un checkbox que en el caso
de marcarse enva el ISBN del libro
Aadir un botn 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. Relacin 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 sesin el cdigo de los libros
reservados. Comprobar que con 2 navegadores distintos, se guardan valores distintos en cada sesin,
no as desde 2 pestaas 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 sesin. 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 continuacin se resumen los servlets que aparecen en la prctica con las caractersticas
generales de cada uno de ellos:
Aplicacin Servlet Formulario HttpSession Requiere
modificacin
sesiones ShoppingCart Si No No
sesiones ShowSession No Si No
sesiones SessionServlet Si Si Si
reservaLibros MostrarLibros No No No
reservaLibros MostrarLibrosCheck Si No Si
reservaLibros RealizarReserva No Si No
reservaLibros RegistroUsuario No Si Si

Vous aimerez peut-être aussi