tiempo sesiones sesion servlet por mvc manejo inactividad escritorio ejemplo cerrar java jsp servlets httpsession

sesiones - ¿Cómo se almacenan los objetos Java en HttpSession?



manejo de sesiones en spring mvc (4)

Así que estoy tratando de obtener un servlet para agregar un objeto Java a la sesión del usuario, cuando se solicita este servlet. Pero después de que el servlet redirecciona a la página siguiente y trato de recuperar el objeto, obtengo un objeto null lugar.

Esto es lo que hago para agregar el objeto a la HttpSession (en el servlet):

request.setAttribute("object", obj);

Luego trato de recuperarlo por (en el JSP):

Object obj = request.getAttribute("object");

Entonces, ¿cómo conseguiría OBJ para no ser nulo?

Actualización: también he intentado esto sin nada:

HttpSession session = request.getSession(); session.setAttribute("object", obj);

con lo siguiente en el JSP:

Object obj = request.getSession().getAttribute("object");

Ambas formas aún devuelven nulo.


Agréguelo a la sesión , no a la solicitud .

HttpSession session = request.getSession(); session.setAttribute("object", object);

Además, no use scriptlets en el JSP. Use EL lugar; para acceder al object todo lo que necesitas es ${object} .

Una característica principal de la tecnología JSP versión 2.0 es su compatibilidad con un lenguaje de expresión (EL). Un lenguaje de expresión hace que sea posible acceder fácilmente a los datos de la aplicación almacenados en los componentes de JavaBeans. Por ejemplo, el lenguaje de expresión JSP permite que un autor de la página acceda a un bean con una sintaxis simple como ${name} para una variable simple o ${name.foo.bar} para una propiedad anidada.


Aquí puede hacerlo utilizando HttpRequest o HttpSession . Y piensa que tu problema está dentro del JSP.

Si vas a usar el servlet interno haz lo siguiente,

Object obj = new Object(); session.setAttribute("object", obj);

o

HttpSession session = request.getSession(); Object obj = new Object(); session.setAttribute("object", obj);

y después de configurar su atributo mediante el uso de solicitud o sesión, use following para acceder a él en el JSP,

<%= request.getAttribute("object")%>

o

<%= session.getAttribute("object")%>

Entonces parece que tu problema está en el JSP.

Si desea usar scriptlets, debería ser el siguiente,

<% Object obj = request.getSession().getAttribute("object"); out.print(obj); %>

O puede usar expresiones de la siguiente manera

<%= session.getAttribute("object")%>

o puede usar EL como sigue, ${object} o ${sessionScope.object}


El objeto de solicitud no es la sesión.

Desea usar el objeto de sesión para almacenar. La sesión se agrega a la solicitud y es si desea persistir los datos entre las solicitudes. La sesión se puede obtener de

HttpSession session = request.getSession(true);

Luego puede usar setAttribute o getAttribute en la sesión.

Un tutorial más actualizado sobre las sesiones de jsp es: http://courses.coreservlets.com/Course-Materials/pdf/csajsp2/08-Session-Tracking.pdf


No está agregando el objeto a la sesión, en cambio lo está agregando a la solicitud.
Lo que necesitas es:

HttpSession session = request.getSession(); session.setAttribute("MySessionVariable", param);

En Servlets tiene 4 ámbitos donde puede almacenar datos.

  1. Solicitud
  2. Sesión
  3. Solicitud
  4. Página

Asegúrate de entender esto. Para más información mira here