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

Sesion eliminada me la reconoce como valida

Estas en el tema de Sesion eliminada me la reconoce como valida en el foro de Java en Foros del Web. Hola a todos, tengo un calentamiento de cabeza con las sesiones que me esta dejando seco. yo creo la sesion mediante Httpsesion y me logea ...
  #1 (permalink)  
Antiguo 07/09/2005, 03:41
 
Fecha de Ingreso: noviembre-2004
Mensajes: 37
Antigüedad: 19 años, 5 meses
Puntos: 0
Sesion eliminada me la reconoce como valida

Hola a todos, tengo un calentamiento de cabeza con las sesiones que me esta dejando seco.

yo creo la sesion mediante Httpsesion y me logea cuando le da la gana. pero el principal problema es que he puesto un codigo de validacion en una paguina, para que solo entren logeados, y me detecta el valor null de sesion como un usuario!!. y por lo tanto se logea igual. aqui os pongo el codigo en cuestion.

Código PHP:
<% 
HttpSession sesion request.getSession(false);  
if(
sesion==null){
        
System.out.print("Sesion Vacia");            
%>      
LA SESION ESTA VACIA  
<!-- <SCRIPTopen("entrar.jsp","_parent");</SCRIPT> -->      
<%}      else{%>
          Bienvenido <b><%=sesion.getAttribute("usuario")%></b>      <%}%> 
con El codigo de cerrar sesion me pasa otro tanto, le pongo una condicion de que si es distinto de null que borre la sesion, y reconoce el valor null como una sesion mas.

Código PHP:
    <%
HttpSession sesion request.getSession(false);      
if(
sesion!=null){
    
session.invalidate();      
    
System.out.println("sesion cerrada");%>          
<
script language="javascript">open("entrar.jsp","_parent");</script>      <%}%> 
a ver si me podeis resolver la duda, porque no se que hacer ya
saludos

Última edición por dryaner; 07/09/2005 a las 03:52
  #2 (permalink)  
Antiguo 07/09/2005, 13:01
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Pues veras, tu estas preguntando si session es null, pero justo despues de haberla creado, es decir, si creas la session y despues preguntas si es null... es ilogico, siempre va a arrojar que no es null.

Para hacer este proceso lo que debes hacer es crearte un Bean que maneje todos los datos del usuario, luego cuando el usuario se logea, llenas el Ben y lo agregas a la session, luego lo que debes preguntar es si existe el objeto Usuario en la session, si no existe entonces no esta logeado, si existe ya se logeo.

Esa es la forma ^^

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 09/09/2005, 04:28
 
Fecha de Ingreso: noviembre-2004
Mensajes: 37
Antigüedad: 19 años, 5 meses
Puntos: 0
lo de hacer un bean con el usuario lo habia pensado, pero como la unica informacion que guardaria una vez logeado es el nombre del usuario. pues me parecio matar moscas a cañonazos.

sobre lo de que siempre creo sesion, creo que no, porque le indico
request.getSession(false);
y segun tengo entendido con el false le estoy diciendo que si no me devuelve una sesion no cree otra nueva.

temporalmente lo que he hecho al final es indicarle que si
sesion.getAttribute("usuario")==null

pues que no valide, de esta forma si funciona, auqnue no me convence, mirare eso del bean, aunque basicamente es lo mismo

muchas gracias.
saludos
  #4 (permalink)  
Antiguo 09/09/2005, 11:14
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Es correcto lo que dices hacerca del parametro false, sin embargo veo que estas trabajando con una JSP y no con un Servlets, debes saber que en las paginas JSP la creacion de una session es automatica, siempre tendra un indetificador de session por defecto, a menos que en la cabecera de la pagina le indiques lo contrario de esta forma

<%@page session="false"%>

Si no tienes esa linea en la cabecera de tu JSP, la session ya se creo, y al mokento de decirle getSession(false) recoge el identificador de session ya creado.

Con respecto a lo del Bean, eso veras tu como lo manejes, pero siempre es una buena practica teenr todos los datos del usuario a la mano, pues no sabes cuando los querras ocupar en la pagina y si ya havias extraido los datos de la base de datos, para que hacerlo denuevo? pero como dije, eso es a gusto del programador.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
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 00:27.