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

Sesion de un uso

Estas en el tema de Sesion de un uso en el foro de Java en Foros del Web. Estoy haciendo una página que consta de lo siguiente: 1º- Tiene un menú donde se le pasa un Usuario y una Contraseña, esto se envia. ...
  #1 (permalink)  
Antiguo 04/05/2009, 23:43
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Sesion de un uso

Estoy haciendo una página que consta de lo siguiente:

1º- Tiene un menú donde se le pasa un Usuario y una Contraseña, esto se envia.

2º- Una página que recibe los datos, creo una sesión y meto los datos en ella, los comparo con datos guardados en una base de datos, si son erroneos vuelve a la 1ª página, si son correctos envia a otra página.

3º- Es como un menu de usuario, le sale datos del usuario que acaba de entrar y demás, el usuario puede navegar por otras páginas mediante links, pero al ir a otra página, los datos de la sesion se vuelven nulos, por lo tanto todos los datos del usuario que están sacados de la base de datos no se muestra y queda inutil la página.

Necesito a alguien que me ayude y me explique mejor la sesiones, yo creo que me pasa por utilizar "HttpSession sesion=request.getSession();" en todas las páginas, pero no se como crear una variable global para todo el proyecto, y "<%! %>" no sirve porque eso hace una variable global para la pñagina presente.

Espero que alguien sepa la resupuesta, gracias por adelantado.
  #2 (permalink)  
Antiguo 05/05/2009, 02:22
 
Fecha de Ingreso: noviembre-2008
Mensajes: 115
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Sesion de un uso

Como metes los datos en la sesion? Por que tu lo que haces con HttpSession sesion = request.getSession() es recuperar la sesion, no crearla.
Por si acaso no lo haces asi, para guardar los datos, suponiendo que tienes los datos en un String nombre y otro apellido
request.getSession().setAttribute("nombre", nombre);
request.getSession().setAttribute("apellido", apellido);

Y para recuperarlos despues:

String nombre = (String)request.getSession().getAttribute("nombre" );
String apellido = (String)request.getSession().getAttriute("apellido ");
  #3 (permalink)  
Antiguo 05/05/2009, 02:36
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Sesion de un uso

Donde compruebo y creo la sesion
Código:
<%! HttpSession sesion;%>

sesion=request.getSession();
	
sesion=request.getSession(true);

String numeroSesion = request.getParameter("Numero");
String contraseñaSesion = request.getParameter("Contraseña");
		
sesion.setAttribute("Numero", numeroSesion);
sesion.setAttribute("Contraseña", contraseñaSesion);
sesion.setMaxInactiveInterval(15);
Y luego, en las demás que necesito el número pues pongo esto:

Código:
	<%
		HttpSession sesion=request.getSession();

		String numeroSesion = request.getParameter("Numero");

		sesion.setAttribute("Numero", numeroSesion);
	%>
Voy a probar con el String ese que pones y edito si funciona


Editado: no funciona con (String)
  #4 (permalink)  
Antiguo 05/05/2009, 02:54
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sesion de un uso

Cita:
Iniciado por SileBird Ver Mensaje
Y luego, en las demás que necesito el número pues pongo esto:
Código:
	<%
		HttpSession sesion=request.getSession();

		String numeroSesion = request.getParameter("Numero");

		sesion.setAttribute("Numero", numeroSesion);
	%>
Donde necesites obtener algo de la sesión, lo que tienes que usar es sesion.getAttribute("Numero") no setAttribute
  #5 (permalink)  
Antiguo 05/05/2009, 03:02
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Sesion de un uso

Cita:
Iniciado por venkman Ver Mensaje
Donde necesites obtener algo de la sesión, lo que tienes que usar es sesion.getAttribute("Numero") no setAttribute
Pero me da error diciendo que no puedo utilizar un Object en un sitio donde va un String

Editado: Explicame mejor lo del "String numeroSesion = (String)request.getParameter("Numero");" que si lo pongo solo no me da error pero no se que hacer.
  #6 (permalink)  
Antiguo 05/05/2009, 03:13
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sesion de un uso

Cuando quieres recuperar algo de la sesión:
1. No tienes que sacar ningún parámetro del request. Es decir, NO necesitas esto:
String numeroSesion = request.getParameter("Numero");
2. Lo que tienes que hacer es usar getAtribute.
String numeroSesion = (String) sesion.getAttribute("Numero");
3. Deberías leer lo que es un cast:
http://www.programacionfacil.com/java:operador_cast
http://es.wikibooks.org/wiki/Program..._Operador_cast
  #7 (permalink)  
Antiguo 05/05/2009, 03:20
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Sesion de un uso

Que grande eres venkman !!!

Muchas gracias, estoy aprendiendo más aquí que lo que vi durante las clases
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 01:08.