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

Problema con sesiones

Estas en el tema de Problema con sesiones en el foro de Java en Foros del Web. Hola, he hecho unas jsp's que usan variables de sesión y hago cosas como esta: HttpSession sesion = request.getSession(true); sesion.setAttribute("bd", "03") ; String db=sesion.getAttribute("bd").toString(); El ...
  #1 (permalink)  
Antiguo 01/09/2005, 08:55
 
Fecha de Ingreso: enero-2002
Mensajes: 31
Antigüedad: 22 años, 4 meses
Puntos: 0
Problema con sesiones

Hola, he hecho unas jsp's que usan variables de sesión y hago cosas como esta:

HttpSession sesion = request.getSession(true);

sesion.setAttribute("bd", "03") ;
String db=sesion.getAttribute("bd").toString();

El problema que tengo es para usarlas la gente debe ir al explorer y activar la casilla "aceptar las cookies de session" y eso es un engorro.

¿Que debo hacer para poder manejar variables de sesión sin tener que tocar la configuración del explorer?

gracias
__________________
ops
  #2 (permalink)  
Antiguo 05/09/2005, 13:06
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
El motor de servlets intenta utilizar cookies para seguir la traza de ID de session.
En la respuesta HTTP escrita por un servlet que creó una session se encuentra una cabecera Set-Cookie con el ID de session en una cookie llama JSESSIONID

Set-Cokkie: JSESSIONID=rkbg6z27j1;Path=/jspr

Si el cliente acepta la cookie, luego la devuelve en las peticiones posteriores:

Cookie: JSESSIONID=rkbg6z27j1

Si esto ocurre, la petición del cliente puede ser asociada a la session sin más consideraciones por parte del servlet. Pero si el cliente no acepta las cookies, se pierde la session. Para evitar esto, la API del servlet tiene un mecanismo de retirada (fallback). Si fallan las cookies, utiliza la reescritura de URL. Esto es un poco más complicado para el programador por que significa que todas las direcciones URL escritas por el servlet deben llevar añadido el ID de session.
Pero como esto es innecesario y costoso si el cliente acepta las cookies, la reescritura de URL debe realizarse sólo si se sabe a ciencia cierta que el método de las cookies falla. Afortunadamente, la API del servlet tiene métodos que encapsulan toda esta lógica. La clase HttpServletResponse tiene los métodos encodeURL() y encodeRedirectURL(), que añaden el ID de session a una dirección URL sólo si es necesario:

String miURL = response.encodeURL("/servlet/nextServlet");
out.println("Haz clic <a href='" + miURL + "'> AQUI</a> para continuar");

Debe utilizarse encodeRedirectURL() con todas las direcciones URL pasadas al método response.sendRedirect() y encodeURL() con todas las demás.


Espero haberte ayudado.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 06/09/2005, 00:40
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 19 años
Puntos: 1
sin poner lo de httpsession ... a mi me funciona correctamente

salu2
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
  #4 (permalink)  
Antiguo 08/09/2005, 15:33
 
Fecha de Ingreso: septiembre-2004
Mensajes: 13
Antigüedad: 19 años, 7 meses
Puntos: 0
hola puedes primero asignar atributos a la sesion y despues asignarselos a variables
HttpSession sesion = request.getSession(true); // con esto genero la sesion

sesion.setAttribute("bd", "03") ; // asi asigno un atributo a una sesion
String nuevo=(String)session.getAttribute("db"); // de esta manera obtengo el valor de "db" pero de la sesion en cuestion
bueno espero que te sirva

y en otro formulario lo llamas de la misma forma sin tener que volver a asignar valores a la sesion
String nuevo=(String)session.getAttribute("db");
bye saludos
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:07.