Professional Documents
Culture Documents
Qu es el Seguimiento de Sesin?
Hay una serie de problemas que surgen del hecho de que HTTP es un protocolo stateless". En particular, cuando usted est haciendo compras on-line, es una molestia real que el servidor Web no puede recordar fcilmente transacciones anteriores. Esto hace que aplicaciones como los carros de compras sean problemticas. Al pasar de la pgina donde se especifique lo que desea comprar (almacenada en un servidor Web normal) a la pgina que lleva su nmero de tarjeta de crdito y direccin de envo (alojado en el servidor seguro que utiliza SSL), cmo recuerda el servidor lo que hemos comprado?
18/04/2012
Las cookies
Reescritura de URL Campos ocultos de formulario. Los servlets proporcionan una solucin tcnica: el HttpSession API. Se trata de una interfaz de alto nivel basado en las cookies y la reescritura de URL.
Las cookies
- Puede utilizar cookies HTTP para almacenar informacin sobre una sesin de compras, y cada conexin subsiguiente puede mirar para arriba la sesin actual y luego extraer informacin acerca de esa sesin desde una ubicacin en el equipo servidor
A tener en cuenta:
- Las cookies no son un grave problema de seguridad.
- Los navegadores slo permiten 20 cookies por sitio web y 300 en total.
- Limitadas a 4kb. - Pueden ser un problema de privacidad.
18/04/2012
Uso de Cookie
Atributo de la cookie
18/04/2012
Ventajas
- No son directamente visibles por el usuario, como lo es la reescritura de URL o campo oculto. - No requieren uso de formulario.
Desventajas
- El usuario puede decidir no usar la cookie - Algunos navegadores no lo soportan.
Ejemplo de cookie
Servlet
18/04/2012
Ejemplo de cookie
Web
Reescritura de URL Se agregan parmetros en la URL que permiten realizar un seguimiento de la sesin. Desventajas:
- Existe un lmite al nmero de caracteres en la URL
Para administrar a los usuarios se usa como clave de seguimiento el UID (user ID)
10
18/04/2012
El contenedor web proporciona el servicio de generacin de identificadores y codificacin de URL a travs del mtodo encodeURL(String url) de HttpServletResponse.
11
Campos ocultos de formulario Mediante el uso de formulario s HTML y campos ocultos se puede mantener la sesin desde programacin. No existe ningn tipo de ayuda por parte del contenedor para implementar este mecanismo. El programador debe generar los campos ocultos e incluso en el cuerpo de la respuesta y leerlos de la siguiente peticin. Esto tiene algunos problemas:
- Informacin aun es accesible viendo el cdigo fuente. - Se est limitando al uso de formularios de datos
12
18/04/2012
Seguimiento de sesin
13
Interfaz HttpSession
14
18/04/2012
getAttribute(nombre_variable)
- Devuelve una instancia de Object en caso de que la sesin ya tenga algo asociado a la etiqueta nombre_variable - null en caso de que no se haya asociado nada an.
setAttribute(nombre_variable, referencia )
- Coloca el objeto referenciado por referencia en la sesin del usuario bajo el nombre nombre_variable. A partir de este momento, el objeto puede ser recuperado por este mismo usuario en sucesivas peticiones. Si el objeto ya existiera, lo sobrescribe.
getAttributesNames()
- Retorna una Enumeration con los nombres de todos los atributos establecidos en la sesin del usuario.
MCPD. C Cecilia Wiesse
15
getId().
- Devuelve un identificador nico generado para cada sesin.
isNew().
- True si el cliente (navegador) nunca ha visto la sesin. False para sesin preexistente.
getCreationTime().
- Devuelve la hora, en milisegundos desde 1970, en la que se creo la sesin.
getLastAccessedTime().
- La hora en que la sesin fue enviada por ltima vez al cliente.
16
18/04/2012
Obtenemos la sesin:
- HttpSession sesion = request.getSession( true ); - El argumento true (o sin argumento) indica que si no hay sesin, entonces se crea. Si utilizamos el argumento false, request.getSession( false ), entonces si no existe la sesin no crea una nueva y devuelve null.
17
18
18/04/2012
Borrar e invalidar
Podemos borrar atributos de la sesin: sesion.removeAttribute( "login"); sesion.removeAttribute( "apellido");
19
Ejemplo Session
Servlet
20
10
18/04/2012
HTML
21
11