Foros del Web » Programación para mayores de 30 ;) » Java »

Manejo de sesiones en Java

Estas en el tema de Manejo de sesiones en Java en el foro de Java en Foros del Web. Hola compañeros, Bueno, ahí va mi primer post en este foro... Soy novato en Java, estoy intentando desarrollar una aplicación en la que he de ...
  #1 (permalink)  
Antiguo 24/04/2013, 17:14
Avatar de likanthropous  
Fecha de Ingreso: abril-2013
Mensajes: 2
Antigüedad: 11 años, 7 meses
Puntos: 0
Manejo de sesiones en Java

Hola compañeros,

Bueno, ahí va mi primer post en este foro...

Soy novato en Java, estoy intentando desarrollar una aplicación en la que he de manejar sesiones para comprobar el login de los usuarios previamente al acceso a una serie de páginas. Estoy pegándome con el manejo de sesiones y no consigo llegar a identificar la sesión que previamente he creado en un servlet. Para ello me he creado un JSP, para hacer pruebas con el manejo de sesiones.

El JSP que he creado es el siguiente:

<%@ page import = "java.util.Enumeration" session = "true"%>
<%@ page import = "javax.servlet.*"%>
<%@ page import = "java.sql.*"%>
<%
HttpSession sesion = request.getSession(false);
if(sesion != null) {
out.println("IdSesion: "+sesion.getId());
out.println("</br>");
// MOMENTO DE CREACION DE SESION
Date momento=new Date(sesion.getCreationTime());
out.println("Fecha creacion: "+momento);
out.println("</br>");
// ULTIMO ACCESO DE SESION
Date acceso=new Date(sesion.getLastAccessedTime());
out.println("Fecha ultimo acceso: "+acceso);
out.println("</br>");
// SABER SI LA SESION ES NUEVA O VIENE DE UNA YA CREADA
out.println("Sesion nueva: "+sesion.isNew());
out.println("</br>");
// OBTENER ATRIBUTOS DE LA SESION
Enumeration atributos = sesion.getAttributeNames();
while (atributos.hasMoreElements()) {
String name = (String) atributos.nextElement();
out.println(name + ": " + sesion.getAttribute(name));
out.println("</br>");
}
sesion.invalidate();
} else {
out.println("No hay sesion activa");
}
%>

Como veis, lo primero que hago es HttpSession sesion = request.getSession(false);. Esto, lo que creo que debería hacer es, si hay sesión abierta debería de tomar los datos de esa sesión, en el caso de que no exista sesión, no debería crear una nueva ya que le paso el parámetro false, correcto hasta ahí?

Posteriormente compruebo si hay sesión mediante if(sesion != null), en el caso de que existiera sesión debería ejecutar el contenido del if y si no hay ejecutar la part else y mostrar el mensaje de "No hay sesion activa".

Lo que me ocurre, es que siempre que ejecute este JSP me crea una sesión nueva y es lo que no entiendo porque paso el parámetro false. Si pasara true o ningún parámetro si entendería que crerara sesión porque hago sesion.invalidate() al final del if.

Alguien puede por favor explicarme por qué siempre me crea sesion aún con false. Seguro que debe de ser un fallo tonot, disculpad pero es la primera vez que me pego con manejo de sesiones.

Muchas gracias por vuestra colaboración.

Un saludo.
  #2 (permalink)  
Antiguo 28/04/2013, 16:42
Avatar de likanthropous  
Fecha de Ingreso: abril-2013
Mensajes: 2
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Manejo de sesiones en Java

Pensé que en este foro esto sería fácil de responder. Nadie puede echarme una mano?

Gracias.

Etiquetas: jsp, manejo, servlet, sesiones, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:02.