Sesion en Servlets - PowerPoint PPT Presentation

About This Presentation
Title:

Sesion en Servlets

Description:

Title: Sesion en Servlets Author: MCO Last modified by: jipotvim Created Date: 2/6/2002 4:27:40 PM Document presentation format: Presentaci n en pantalla – PowerPoint PPT presentation

Number of Views:74
Avg rating:3.0/5.0
Slides: 12
Provided by: MCO145
Category:
Tags: servlets | sesion

less

Transcript and Presenter's Notes

Title: Sesion en Servlets


1
Sesión en Servlets
31 de Marzo de 2010
2
Índice
  • Por qué seguir la trayectoria de usuarios?
  • Formas de seguir la trayectoria de usuarios
  • Cookies
  • Reescritura de URLs
  • Campos ocultos
  • Sesiones en Java (Session Tracking)
  • Cosas esenciales para trabajar con sesiones
  • Métodos de la clase HttpSession

3
Por qué seguir la trayectoria de usuarios?
  • Cuando los clientes de una tienda on-line añaden
    artículos a su cesta de la compra, cómo sabe el
    servidor lo que hay ya en sus cestas de la
    compra?
  • Cuando los clientes deciden confirmar el pedido,
    cómo sabe el pedido cuál de las cestas de la
    compra previamente creadas es la suya?
  • En un Sistema de Información Empresarial, es
    importante saber qué usuario está realizando
    operaciones para adjudicarle un rol y
    permitirle ciertas operaciones y otras no

4
Formas de seguir la trayectoria de usuarios
  • HTTP es un protocolo sin estado
  • Cada vez que un cliente pide una página Web, abre
    una conexión separada con el servidor Web y el
    servidor no mantiene automáticamente información
    contextual acerca del cliente
  • Servlets
  • Permiten obtener y mantener una determinada
    información acerca de un cliente
  • Información accesible a diferentes servlets o
    entre diferentes ejecuciones de un mismo servlet
  • Tres soluciones típicas
  • Cookies
  • Reescritura de URLs
  • Campos ocultos de formularios

5
Cookies (NO)
  • Objetos de la clase Cookie
  • Permite guardar información relativa a un usuario
    a lo largo de sus distintos accesos
  • Se almacenan en los equipos de los clientes
  • El cliente debe soportar cookies
  • Pueden ser desactivadas por el cliente
  • El navegador es el encargado de almacenarlas
  • Se transmiten en las cabeceras cuando se realiza
    la comunicación HTTP
  • Las cookies se implementan como una colección y
    se usan mediante los objetos integrados
    HttpServletRequest y HttpServletResponse

6
Reescritura de URLs (NO)
  • Idea
  • El cliente añade ciertos datos extra que
    identifican la sesión al final de cada URL
  • http//host/path/servlet/name?jsessionid1234
  • El servidor asocia ese identificador con datos
    que ha guardado acerca de la sesión
  • Ventajas
  • Funciona incluso si las Cookies no son soportadas
    o están desactivadas
  • Desventajas
  • Se deben codificar todas las URLs referentes al
    sitio propio
  • Todas las páginas deben generarse dinámicamente
  • Funciona mal para links desde otros sitios

7
Campos ocultos de formularios (NO)
  • Idea
  • Incluir campos ocultos con los datos a mantener
  • ltINPUT typehidden namesession value1234gt
  • Ventajas
  • Funciona incluso si las Cookies no son soportadas
    o están desactivadas
  • Desventajas
  • Cantidad de procesamiento tedioso
  • Todas las páginas deben ser el resultado de
    envíos de formularios

8
Sesiones en Java (Session Tracking) (SI)
  • Los objetos de la sesión se guardan en el
    servidor
  • Se pueden guardar objetos arbitrarios dentro de
    una sesión
  • Las sesiones se asocian automáticamente al
    cliente vía Cookies o Reescritura de URLs
  • Como una caja negra para el cliente, el sistema
    se encarga de utilizar el método apropiado para
    mantener la sesión, bien mediante cookies o
    mediante reescritura de URLs
  • Clase HttpSession de la Servlet API 2.0
  • Existen APIs más actuales para trabajar con
    servlets que vienen con la distribución de J2EE

9
Cosas esenciales para trabajar con sesiones
  • Acceder al objeto sesión
  • Mediante el método request.getSession() se
    obtiene un objeto HttpSession
  • Obtener información asociada con la sesión
  • Mediante el método getAttribute del objeto
    HttpSession
  • Se hace un cast al tipo de objeto apropiado
  • Se chequea si el resultado es null
  • Guardar información en una sesión
  • Usar el método setAttribute con un nombre y un
    valor

10
Métodos de la clase HttpSession
  • getCreationTime()
  • Devuelve la hora de creación de la sesión en
    milisegundos desde las 0000 del 01/01/1970
  • getId()
  • Devuelve el identificador asignado a la sesión
  • getLastAccessedTime()
  • Devuelve la hora de la última petición al servlet
    con el identificador asignado a esa sesión
  • getSessionContext()
  • Devuelve el contexto al que está asociada la
    sesión
  • getAttribute(String)
  • Devuelve el objeto asociado al nombre dado

11
Métodos de la clase HttpSession
  • getAttributes()
  • Devuelve un Enumeration con los nombres de todos
    los atributos asociados a la sesión
  • invalidate()
  • Invalida la sesión y la elimina de su contexto
  • isNew()
  • Una sesión se considera new si ha sido creada
    por el servidor pero el cliente aún no se ha
    reconocido asociándose a ella
  • setAttribute(String,Object)
  • Asocia el objeto específico a la sesión con el
    nombre dado
  • removeAttribute(String)
  • Elimina el objeto asociado a la sesión con el
    nombre dado
Write a Comment
User Comments (0)
About PowerShow.com