La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sesión en Servlets 31 de Marzo de 2010. Índice ¿Por qué seguir la trayectoria de usuarios? Formas de seguir la trayectoria de usuarios –Cookies –Reescritura.

Presentaciones similares


Presentación del tema: "Sesión en Servlets 31 de Marzo de 2010. Índice ¿Por qué seguir la trayectoria de usuarios? Formas de seguir la trayectoria de usuarios –Cookies –Reescritura."— Transcripción de la presentación:

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?jsessionid=1234 –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 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 00:00 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


Descargar ppt "Sesión en Servlets 31 de Marzo de 2010. Índice ¿Por qué seguir la trayectoria de usuarios? Formas de seguir la trayectoria de usuarios –Cookies –Reescritura."

Presentaciones similares


Anuncios Google