Comment stocker des objets Java dans HttpSession?
Donc je suis en train d'essayer d'obtenir un servlet pour ajouter un objet Java à la session de l'utilisateur, lors de cette servlet est demandé. Mais après la servlet redirige vers la page suivante et j'essaie de récupérer l'objet, je reçois un null
objet à la place.
Voici ce que je fais pour ajouter l'objet à la HttpSession (dans la servlet):
request.setAttribute("object", obj);
Puis j'ai essayer de le récupérer (dans l'JSP):
Object obj = request.getAttribute("object");
Alors, comment aurais-je obtenir obj pour ne pas être null?
Mise à jour:
J'ai aussi essayé cela avec rien:
HttpSession session = request.getSession();
session.setAttribute("object", obj);
avec les éléments suivants dans la page JSP:
Object obj = request.getSession().getAttribute("object");
Les deux façons de faire est encore de retourner la valeur null.
- Vous êtes paramètre HttpRequest. Mais la question dit HttpSession. Qui sont que vous essayez de faire?
- Assurez-vous également que dans le haut de votre page JSP que vous avez: <%@page language="java" session="true" %>
- Est l'obj null? J'ai trouvé quelque chose que je ne pouvais pas obtenir tous les objets pour résoudre de demande.getSession(), je dois créer un autre objet de session sur ma deuxième page, et j'avais besoin de faire de la session.getAttribute("objet"); au lieu de cela.
- ce Lien est Utile stackoverflow.com/questions/123657/...
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas ajouter cet objet à la session, à la place, vous l'ajoutez à la demande.
Ce que vous avez besoin est:
Dans les Servlets vous avez 4 étendues où vous pouvez stocker des données.
Assurez-vous de comprendre ces. Pour plus d'look ici
<%Object obj = request.getAttribute("object");%>
request
, cela ne veut pas diresession
. Si vous avez défini l'attribut sur lasession
, alors vous avez besoin pour obtenir à partir de lasession
ainsi!<%Object obj = request.getSession().getAttribute("object");%>
. Cependant, ni travaillé pour moi.L'ajouter à la session, de ne pas le demande.
Aussi, n'utilisez pas les scriptlets dans la page JSP. Utilisation EL à la place; à l'accès
object
tous vous avez besoin est${object}
.Ici, vous pouvez le faire en utilisant
HttpRequest
ouHttpSession
. Et pense que votre problème est dans la JSP.Si vous allez utiliser l'intérieur de la servlet faire à la suite,
ou
et après le réglage de votre attribut à l'aide de la demande ou de la session suivante pour accéder à la page JSP,
ou
Semble que votre problème est dans la page JSP.
Si vous souhaitez utiliser les scriptlets il devrait être comme suit,
Ou peut utiliser des expressions comme suit,
ou peut utiliser EL comme suit,
${object}
ou${sessionScope.object}
L'objet de la requête n'est pas la session.
Vous souhaitez utiliser l'objet de session pour stocker. La session est ajouté à la demande et de l'est ont été, vous voulez maintenir les données dans les requêtes. La session peut être obtenu à partir de
Ensuite, vous pouvez utiliser setAttribute ou getAttribute sur la session.
Plus jusqu'à la date de tutoriel sur la jsp séances: http://courses.coreservlets.com/Course-Materials/pdf/csajsp2/08-Session-Tracking.pdf