Guardar datos dentro de la sesión del usuario que se comparte entre el usuario

tengo un archivo jsp con el siguiente código

String name=request.getParameter("user");
  if(name==null)
    name=(String)request.getSession().getAttribute("name");
  else
    request.getSession().setAttribute("name", name);

Supongo que si la página recibe alguna solicitud con el usuario como parámetro, guardará el valor en esa sesión de usuario en particular y, en caso de que la solicitud de obtención no tenga ningún parámetro de 'usuario', intentará leer el valor del usuario de la sesión. El código funciona perfectamente cuando lo alojo desde mi servidor local (glassfish). Pero cuando lo subo a un host remoto, las cosas se ponen raras. Cuando llego a la página con el parámetro 'usuario', está guardando el valor en la sesión. Pero, de nuevo, si accedo a la página desde otro navegador (o después de borrar la cookie), está recuperando el valor anterior guardado, en lugar de devolver nulo. ¿Estoy haciendo algo mal? En realidad, soy bastante nuevo en Java EE.

preguntado el 22 de mayo de 12 a las 13:05

1 Respuestas

No puede guardar el valor anterior a menos que 1) Su sesión no haya terminado y la misma sesión se esté extendiendo. ¿Puede explicar cómo está borrando las cookies? 2) ¿Estás escribiendo la URL o intentando actualizar la página después de eliminar las cookies?

contestado el 22 de mayo de 12 a las 14:05

No estoy limpiando las cookies en absoluto. Primero llegué a la página de Chrome como mypage?user='chrome'. Luego, el valor 'chrome' se guardará en la sesión. A continuación, trato de acceder a la página desde Firefox como mypage (sin ningún parámetro). Aquí el código request.getSession().getAttribute("name") devuelve 'chrome'. Según yo, debe devolver nulo. - Arqueado

@Arshed ¿Está seguro de que no tiene una sesión anterior en Firefox en la que acaba de usar "cromo" como nombre de usuario? Intente imprimir el "id" de la sesión en su página para ayudar a ver qué está pasando. - cristobal schultz

es probable que haya alguna sesión anterior, pero ¿cómo es que obtiene el nuevo valor? - Arqueado

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.