2015-07-31 2 views
0

Je suis nouveau sur le développement web java. J'ai créé une application Web servlet/jsp qui est déployée sur Tomcat 7. Après l'authentification, l'utilisateur parcourt quelques pages qui ont ses propres formulaires. Les entrées sont stockées en tant qu'attributs de session et sont affichées sur une confirmation avant la déconnexion.Comment empêcher les attributs de session de persister sur le serveur?

Pour la déconnexion, j'ai utilisé session.invalidate() and sendRedirect("Logout.jsp").

Si je réexécute l'application, elle retournera ma nouvelle entrée, mais elle copiera également toutes les anciennes entrées de session. J'ai désactivé la persistance de session et mettre le contexte cachingAllowed="false".

Il semble que tous les attributs de session sont stockés dans la mémoire du serveur. Ce problème est-il causé par la configuration du serveur?

+0

ce que tu veux faire? –

+0

Ajoutez votre code ici –

+1

Êtes-vous sûr que les données se trouvent dans la mémoire du serveur et non dans la mémoire du navigateur? – PWC

Répondre

0

Assurez-vous d'utiliser la méthode request.getSession (boolean b) et non le request.getSession()

Toutes page qui doivent être accessibles à l'utilisateur connecté doit faire un appel à request.getSession (false)

Si l'appel à cette méthode ne renvoie aucune session, l'utilisateur doit être redirigé vers la connexion.

0

assurez-vous que votre banque d'informations en session comme ceci:

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

lorsque vous souhaitez supprimer, vous devriez le faire comme ceci:

HttpSession session = request.getSession(); 
session.removeAttribute("info");