SlideShare una empresa de Scribd logo
1 de 12
Java Web
Session
http://javacuriosities.blogspot.com/
¿Qué es una sesión?
Java Web
La sesión representa una forma de identificar a un cliente en particular del
lado del servidor, y poder mantener un conjunto de valores determinados
únicamente para ese cliente a lo largo de un periodo de tiempo.
Técnicamente, es una espacio de memoria que reserva el Servlet
Container para un cliente, identificando este espacio con un identificador
de sesión o sessionID.
El sessionID
Java Web
El sessionID es una cadena de caracteres sumamente larga, que combina
números y letras, e identifica unívocamente a un cliente dentro del
“universo” de clientes. Por su parte, el protocolo HTTP es “stateless” o sin
estado, con lo cual para que el servidor pueda determinar quien es el
cliente, necesita obtener algún identificador. El identificador es
precisamente el sessionID, que viaja permanentemente entre el cliente y
servidor de forma transparente para usuarios finales y también para
desarrolladores. Gracias al sessionID, el servidor podrá brindarle un “trato
personalizado” al cliente.
Session Tracking
Java Web
Existen 4 técnicas para el manejo de la sesión:
- Cookies
- Hidden Form Field
- HttpSession
- URL Rewriting
Cookies
Java Web
Las cookies son pequeñas piezas de información que son persistidas en el
cliente, una cookie tiene un nombre y un valor, cuenta con algunos
atributos como comentario, path, dominio, máxima edad y versión.
Ventajas:
- Técnica simple para mantener el estado
- Cookies son mantenidas del lado cliente
Desventajas:
- Si el cliente no tiene las cookies activas no funciona
- Solo información en formato texto puede ser almacenada
Ejemplo Cookies
Java Web
Hidden Form Field
Java Web
En cada formulario agregamos un textfield no visible que mantiene
información sobre el estado.
Ventajas:
- Funciona siempre independientemente de si las cookies están o no activas
Desventajas:
- El server es el encargado de mantener el estado
- Necesitamos un FORM por pagina
- Solo información en formato texto puede ser almacenada
Ejemplo Hidden Form Field
Java Web
HttpSession
Java Web
El server crea un sesión ID para cada usuario, para lograr esto se usa un
identificador llamado JSESSIONID el cual es almacenado en una cookie
Ventajas:
- Podemos almacenar cualquier tipo de datos
Desventajas:
- Si las cookies no están activas debemos incluir el JSESSION en la URL
HttpSession métodos
Java Web
El objeto HttpSession provee varios métodos útiles:
- getId(): Retorna el unique identifier para la sesión.
- Invalidate(): Invalida la sesion.
- getCreationTime(): El tiempo medido en milisegundos desde January 1, 1970
GMT.
- setAttribute(String name, Object value): Permite asignar un objeto a la sesión
actual.
- getAttribute(String name): Permite recuperar un objeto de la sesión.
URL Rewriting
Java Web
La sesion del lado servidor es localizada usando JSESSIONID el cual es
salvado en una cookie, si la cookie no puede salvarse en el cliente
podemos agregar el identificador en la URL
Ventajas:
- Funciona siempre independientemente de si las cookies están o no activas
Tenemos dos métodos para incluir el JSESSIONID en la URL.
- response.encodeURL(): Incluye el sesión ID si es requerido sino la URL
permanece sin cambios.
- response.encodeRedirectURL: Incluye el sesión ID para luego usar con
el metodo sendRedirect().
Ejemplo URL Rewriting
Java Web

Más contenido relacionado

Similar a Java Web - Session

Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jspdtbadboy0
 
Curso php dia5
Curso php dia5Curso php dia5
Curso php dia5cognos_uie
 
Asp.Net Session And Query String
Asp.Net Session And Query StringAsp.Net Session And Query String
Asp.Net Session And Query StringJuan Pablo Ibañez
 
Objetosimpliciosjsp
ObjetosimpliciosjspObjetosimpliciosjsp
ObjetosimpliciosjspKatherineLG
 
JSPobjetosimplicitos
JSPobjetosimplicitosJSPobjetosimplicitos
JSPobjetosimplicitosKatherineLG
 
12. Administracion Del Estado
12.  Administracion Del Estado12.  Administracion Del Estado
12. Administracion Del Estadoguest3cf6ff
 
Almacenamiento web HTML5
Almacenamiento web HTML5Almacenamiento web HTML5
Almacenamiento web HTML5Javii Enriquez
 
Aplicaciones pagina web
Aplicaciones pagina webAplicaciones pagina web
Aplicaciones pagina websofia2701
 
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDesarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDidier Granados
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxXavierNavia
 
Presentacion sebastian ospina
Presentacion sebastian ospinaPresentacion sebastian ospina
Presentacion sebastian ospinaLeidyTGuarguati
 

Similar a Java Web - Session (20)

10.desarrollowebconjava
10.desarrollowebconjava10.desarrollowebconjava
10.desarrollowebconjava
 
Sesiones en PHP
Sesiones en PHPSesiones en PHP
Sesiones en PHP
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jsp
 
Curso php dia5
Curso php dia5Curso php dia5
Curso php dia5
 
Asp.Net Session And Query String
Asp.Net Session And Query StringAsp.Net Session And Query String
Asp.Net Session And Query String
 
Objetosimpliciosjsp
ObjetosimpliciosjspObjetosimpliciosjsp
Objetosimpliciosjsp
 
JSPobjetosimplicitos
JSPobjetosimplicitosJSPobjetosimplicitos
JSPobjetosimplicitos
 
12. Administracion Del Estado
12.  Administracion Del Estado12.  Administracion Del Estado
12. Administracion Del Estado
 
Almacenamiento web HTML5
Almacenamiento web HTML5Almacenamiento web HTML5
Almacenamiento web HTML5
 
Jsp manejo de sesiones
Jsp   manejo de sesionesJsp   manejo de sesiones
Jsp manejo de sesiones
 
Aplicaciones pagina web
Aplicaciones pagina webAplicaciones pagina web
Aplicaciones pagina web
 
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y CookiesDesarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
Desarrollo de Aplicaciones Web II - Sesión 08: Sesiones y Cookies
 
06. jsf (java server faces) (1)
06. jsf (java server faces) (1)06. jsf (java server faces) (1)
06. jsf (java server faces) (1)
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
 
71 Php. Sesiones I
71 Php. Sesiones I71 Php. Sesiones I
71 Php. Sesiones I
 
Presentacion sebastian ospina
Presentacion sebastian ospinaPresentacion sebastian ospina
Presentacion sebastian ospina
 
Session y cookies
Session y cookiesSession y cookies
Session y cookies
 
Metadata api en apex
Metadata api en apexMetadata api en apex
Metadata api en apex
 
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
 
Desarrollo web2
Desarrollo web2Desarrollo web2
Desarrollo web2
 

Más de Luis Miguel De Bello (20)

Java Web Services - REST
Java Web Services - RESTJava Web Services - REST
Java Web Services - REST
 
Java Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas AdicionalesJava Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas Adicionales
 
Java Web Services - SOAP Binding
Java Web Services - SOAP BindingJava Web Services - SOAP Binding
Java Web Services - SOAP Binding
 
Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
 
Java Web - Servlet
Java Web - ServletJava Web - Servlet
Java Web - Servlet
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
 
Base de datos - Clase 3
Base de datos - Clase 3Base de datos - Clase 3
Base de datos - Clase 3
 
Base de datos - Clase 1
Base de datos - Clase 1Base de datos - Clase 1
Base de datos - Clase 1
 
Base de datos - Clase 4
Base de datos - Clase 4Base de datos - Clase 4
Base de datos - Clase 4
 
Java Web - Introduccion
Java Web - IntroduccionJava Web - Introduccion
Java Web - Introduccion
 
Sockets TCP
Sockets TCPSockets TCP
Sockets TCP
 
Sockets UDP
Sockets UDPSockets UDP
Sockets UDP
 
Thread 02
Thread 02Thread 02
Thread 02
 
Thread 01
Thread 01Thread 01
Thread 01
 
Log4J
Log4JLog4J
Log4J
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Best Practices
Best PracticesBest Practices
Best Practices
 

Último

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 

Último (7)

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 

Java Web - Session

  • 2. ¿Qué es una sesión? Java Web La sesión representa una forma de identificar a un cliente en particular del lado del servidor, y poder mantener un conjunto de valores determinados únicamente para ese cliente a lo largo de un periodo de tiempo. Técnicamente, es una espacio de memoria que reserva el Servlet Container para un cliente, identificando este espacio con un identificador de sesión o sessionID.
  • 3. El sessionID Java Web El sessionID es una cadena de caracteres sumamente larga, que combina números y letras, e identifica unívocamente a un cliente dentro del “universo” de clientes. Por su parte, el protocolo HTTP es “stateless” o sin estado, con lo cual para que el servidor pueda determinar quien es el cliente, necesita obtener algún identificador. El identificador es precisamente el sessionID, que viaja permanentemente entre el cliente y servidor de forma transparente para usuarios finales y también para desarrolladores. Gracias al sessionID, el servidor podrá brindarle un “trato personalizado” al cliente.
  • 4. Session Tracking Java Web Existen 4 técnicas para el manejo de la sesión: - Cookies - Hidden Form Field - HttpSession - URL Rewriting
  • 5. Cookies Java Web Las cookies son pequeñas piezas de información que son persistidas en el cliente, una cookie tiene un nombre y un valor, cuenta con algunos atributos como comentario, path, dominio, máxima edad y versión. Ventajas: - Técnica simple para mantener el estado - Cookies son mantenidas del lado cliente Desventajas: - Si el cliente no tiene las cookies activas no funciona - Solo información en formato texto puede ser almacenada
  • 7. Hidden Form Field Java Web En cada formulario agregamos un textfield no visible que mantiene información sobre el estado. Ventajas: - Funciona siempre independientemente de si las cookies están o no activas Desventajas: - El server es el encargado de mantener el estado - Necesitamos un FORM por pagina - Solo información en formato texto puede ser almacenada
  • 8. Ejemplo Hidden Form Field Java Web
  • 9. HttpSession Java Web El server crea un sesión ID para cada usuario, para lograr esto se usa un identificador llamado JSESSIONID el cual es almacenado en una cookie Ventajas: - Podemos almacenar cualquier tipo de datos Desventajas: - Si las cookies no están activas debemos incluir el JSESSION en la URL
  • 10. HttpSession métodos Java Web El objeto HttpSession provee varios métodos útiles: - getId(): Retorna el unique identifier para la sesión. - Invalidate(): Invalida la sesion. - getCreationTime(): El tiempo medido en milisegundos desde January 1, 1970 GMT. - setAttribute(String name, Object value): Permite asignar un objeto a la sesión actual. - getAttribute(String name): Permite recuperar un objeto de la sesión.
  • 11. URL Rewriting Java Web La sesion del lado servidor es localizada usando JSESSIONID el cual es salvado en una cookie, si la cookie no puede salvarse en el cliente podemos agregar el identificador en la URL Ventajas: - Funciona siempre independientemente de si las cookies están o no activas Tenemos dos métodos para incluir el JSESSIONID en la URL. - response.encodeURL(): Incluye el sesión ID si es requerido sino la URL permanece sin cambios. - response.encodeRedirectURL: Incluye el sesión ID para luego usar con el metodo sendRedirect().