Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
Cerrar Sesion con objeto Session
Enviado por Soraya el día 20 de enero de 2004
Hola chic@s....
Tengo un problemilla de nada, con el objeto session y el metodo setAttribute("usuario").
En mi web, hay un log out, es decir un cerrar session para conectarte como otro usuario, cuando inicias la web, te identificas y guardas en un atributo de session llamado "usuario", un identificador de usuario
session.setAttribute("usuario",id);
cuando quieres terminar la session, llamas al enlace log out, y en este he puesto
session.setAttribute("usuario",null);
el problema es que cuando introduzco un nuevo id de usuario, en algunos link de mi menu, me los coge con ese nuevo id, y en otros con el anterior, como que la sesion no ha sido cerrada realmente (como si se quedara en caché)...
Teneis idea de como resolverlo por favor...
Se que si le digo que cierre la ventana del explorador, evidentemente ya no hay session, pero yo no crero que sea necesario tener que cerrarla.
El servidor es Tomcat, y esta programado en un jsp
Gracias por todo y por adelantado a la amable persona que se preste a ayudarme.
Es muy fácil. Sólo tienes que establecer el objeto HttpSession a null (session = null;). De esta forma "borras" el objeto HttpSession, quedando anulada la sesión hasta la próxima vez que se inicie de nuevo (HttpSession session = request.getSession( true ); session.setAttribute( "id", id );).
Un saludo.
Re: Re: Re: Re: Re: Cerrar Sesion con objeto Session
Enviado por ricardo el día 3 de junio de 2008
he probado todo lo que vi en este foro y no funciona... bueno mi problema esta en que le doy logout y obvio mata la sesion supongo... y luego me lleva a la pagina por defecto que puse para cuando se cierre sesion... pero le di atras en el explorador.. y la sesion sigue intacta
Al iniciar tu pagina o tu Action, segun sea tu arquitectura, debes de preguntar si existe la sesion, p.e.
//Obtiene session
HttpSession login = request.getSession();
if (login.getAttribute("usuario") == null) {
// aqui redireccionas a tu pagina de salida