Java Session. Usando Java Session en aplicaciones web

Documentos relacionados
Diseño Y Aplicaciones de Sistemas Distribuidos. Servlets. Joan Vila

ISJu: Técnicas de Programación Cartilla Teórica-Práctica Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat"

SERVLETS. Aplicaciones Distribuidas

Tutorial Web Dinámica con Servlets y JSP Sesion 3

Quickstart-Webapps-Spring

Curso de gráficos con Java y OpenFlashChart para aplicaciones web. Manual del alumno

Clase Java que implementa un modelo de programación peticiónrespuesta. Puede usarse para procesar cualquier tipo de petición

Ejemplos de Servlet y JSP Web Application Development

Sistemas de Información 12/13 Ejercicios Tecnologías Web

Conexión de Mysql con NetBeans

Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages)

Aplicaciones Web con Servlets y JSP (I)

Servidores Web (II) Contenidos

Implementando nuestro primer servlet

Requisitos. Universidad ORT Arquitectura de Software

Curso Java Web (JSP's/Servlets)

Serialización de datos en C# en Binario, Soap y Xml

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, ILI 258 Departamento de Informática Universidad Técnica Federico Santa María

Java Servlets. Luis Fernando Llana Díaz. 17 de abril de Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Escribir código HTML en los servlets es tedioso. que hay que utilizar las instrucciones print, println, etc. Es decir, HTML está dentro de java.

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

Práctica 4 PROGRAMACIÓN WEB CON SERVLETS Y JSP. 1. Introducción a JSP... 2

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS

Capitulo 7: Tecnologías de la Capa Media, Lógica del Negocio.

DESARROLLO WEB EN ENTORNO SERVIDOR

Unidad IV: Servlets. Comprender la estructura básica de los Servlets Crear servlets sencillos Presentar el ciclo de vida de un Servlet.

Seguridad de la aplicación para servlets y JSP (página activas java)

HTTP, CGI, Applets y Servlets

Desarrollo de Sistemas Software Basados en Servicios y Componentes

JavaBeans y JavaServer Pages: Guía rápida. Manuel Urueña

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages)

Curso de Ajax con Java. Manual del alumno

JAVA WEB SERVICES. Realizado por: Diana Alfaro Complementado por: Carlos Sánchez Página 1

Tema 6: Arquitectura Web Multicapa

Curso de desarrollo web en entorno de servidor

2015 CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE COMPUTÓ

javax.servlet.genericservlet javax.servlet.http.httpservlet MiServlet

Java EE JavaServer Pages (JSP)

Laboratorio de Aplicaciones Telemáticas Ingeniería Técnica de Telecomunicación Especialidad en Telemática

Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

CAPÍTULO 14. DESARROLLO

Contiene código HTML normal junto elementos especiales de JSP. Internamente, el servidor de aplicaciones las compilará a un servlet

Framework 1. Web en Java. (solo aplicaciones en mantenimiento)

JSP Básico. Índice. 2 Traducción de los JSP a servlets Acciones Introducción a JSP... 2

Pasarela de pagos de la Administración Pública Vasca V2. Integración con Sistemas BackEnd de Administraciones

Introducción (1) En una aplicación web, especialmente en Internet, los cambios a la interfaz gráfica son muy frecuentes

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].

4.1 Tutorial de Servlets y JSPs

Tema 5: Tecnologías Web

Tema 4: Servidores Web

Night Of Silence. Documentación. Proyecto: Juego Web Raúl Lobo Medinilla 2ºASI IES. Gonzalo Nazareno

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON

Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat

JSP JDBC SALVADORES OLAIZOLA,

PROGRAMACIÓN JEE CON SERVLETS

Java 2 Enterprise Edition

Aplicaciones Cliente - Servidor

EL CAMINO A LA CERTIFICACION CON SERVLETS Y JSP EL CAMINO A LA CERTIFICACION CON SERVLETS Y JSP SCWCD RAFAEL ALCOCER CALDERA.

3 PROGRAMACIÓN WEB CON SERVLETS

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

Práctica III: Streams, Readers y Writers

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo

EJEMPLO EJERCICIO RESUELTO CON POLIMORFISMO, SOBREESCRITURA DE MÉTODOS Y HERENCIA JAVA. CÓDIGO (CU00691B)

Introducción a los servlets

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

Ejercicios de Introducción a JMS

Ejercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE

4.1 Tutorial de servlets

Taller de Sistemas de Información 2. Desarrollo Web

Programación Orientada a Objetos en Java

En en el netbeans (instalación J2EE) seleccionar la opción de Java Web al crear un nuevo proyecto y elegir WebApplication:

4. DESARROLLO WEB CON JAVA JSP & SERVLETS

Descripción de los Servicios Web de Portal Mayores

Modulo 11. Clases y Objetos en Java

Transcripción:

Uno de los conceptos que más problemas produce cuando comenzamos a trabajar con aplicaciones web en Java es el concepto de java session (HttpSession) que sirve para almacenar información entre diferentes peticiones HTTP ya que este protocolo es stateless (sin estado). Así pues en muchas ocasiones nos encontraremos con el problema de compartir estado (datos usuario) entre un conjunto amplio de páginas de nuestra Aplicación. Java Session Para solventar este problema en la plataforma Java EE se usa de forma muy habitual la clase HttpSession que tiene una estructura de HashMap (Dicccionario) y permite almacenar cualquier tipo de objeto en ella de tal forma que pueda ser compartido por las diferentes páginas que como usuarios utilizamos.

Funcionamiento El funcionamiento del sistema de sessiones es relativamente sencillo. Cada vez que un usuario crea una session accediendo a una página (que la genere) se crea un objeto a nivel de Servidor con un HashMap vacío que nos permite almacenar la información que necesitamos relativa a este usuario. Realizado este primer paso se envía al navegador del usuario una Cookie que sirve para identificarle y asociarle el HashMap que se acaba de construir para que pueda almacenar información en él. Este HashMap puede ser accedido desde cualquier otra página permitiéndonos compartir información.

Usuarios y Sessiones El concepto de Session es individual de cada usuario que se conecta a nuestra aplicación y la información no es compartida entre ellos. Así pues cada usuario dispondrá de su propio HashMap en donde almacenar la información que resulte útil entre páginas.

Un ejemplo sencillo Vamos a ver un ejemplo utilizando dos Servlets básicos en el cual un servlet almacena datos en la sessión (concretamente un objeto producto) y otro servlet lee los datos de la session y los muestra por pantalla. package com.arquitecturajava; public class Producto {

private int id; private String concepto; private double importe; public int getid() { return id; public void setid(int id) { this.id = id; public String getconcepto() { return concepto; public void setconcepto(string concepto) { this.concepto = concepto; public double getimporte() { return importe; public void setimporte(double importe) { this.importe = importe; public Producto(int id, String concepto, double importe) { super(); this.id = id; this.concepto = concepto; this.importe = importe; public Producto() { super();

package com.arquitecturajava; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; @WebServlet("/CrearSession") public class CrearSession extends HttpServlet { private static final long serialversionuid = 1L; protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession misession= request.getsession(true); Producto miproducto= new Producto(1,"telefono",300); misession.setattribute("producto",miproducto); PrintWriter pw= response.getwriter(); pw.println("<html><body>producto en session</body></html>"); pw.close();

package com.arquitecturajava; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; @WebServlet("/VerSession") public class VerSession extends HttpServlet { private static final long serialversionuid = 1L; protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession misession= (HttpSession) request.getsession(); Producto miproducto= (Producto) misession.getattribute("producto"); PrintWriter pw= response.getwriter(); pw.println("<html><body>"+ miproducto.getid()+ "," +miproducto.getconcepto()+","+ miproducto.getimporte()); pw.close();

En este caso el primer Servlet (CreaSession) se encarga de crear la session y almacenar un producto en ella. Mientras el segundo Servlet se encargará de acceder a los datos y mostrarlos por pantalla. Una vez invocado el Servlet que crea la session invocamos a VerSession y nos mostrará por pantalla los datos que se han introducido.

Hemos compartido información perteneciente al mismo usuario entre dos Servlets. Recordemos que no se debe abusar del almacenamiento de objetos en Session ya que al ser por cada usuario si tenemos muchos usuarios concurrentes estaremos obligando al servidor a utilizar mucha memoria para almacenarlos. Otros artículos relacionados : ServletContext, Java Filter, ServletContextListener