après déconnexion cliquez sur le bouton retour du problème de cache
<%
response.setHeader("Cache-Control","no-cache,no-store,must-revalidate");//HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
%>
après déconnexion, à venir sur la page de connexion si vous cliquez à nouveau sur le bouton, il affiche ancienne page que il est connecté. Je suis à l'aide de plus de 3 lignes dans une page jsp et je suis y compris ce dans toutes mes pages jsp intérieur de la balise body. ce n'est pas de travail pour certaines pages jsp . quelles sont les choses dont nous avons besoin à considérer pour stopper cacher après loggout . Si une jsp avoir un formulaire avec la méthode Post , cette technique ne fonctionne pas ?.
Dans ma Déconnexion de l'action que je fais cette.
Cookie logoutCookie = new Cookie("somename", null);
logoutCookie.setPath("/somename");
logoutCookie.setMaxAge(0);
ServletActionContext.getResponse().addCookie(logoutCookie);
Grâce.
OriginalL'auteur MadhuB | 2012-04-26
Vous devez vous connecter pour publier un commentaire.
Cela pourrait être trop tard lorsque la réponse HTTP est déjà engagé à ce point. Une réponse HTTP, soit engagée lorsqu'un X nombre de caractères déjà été écrit, ce qui va dans votre cas le code HTML
<head>
. Vous avez besoin de mettre ces lignes dans le très haut du fichier JSP, pas dans le<body>
de la représentation HTML.Sur une autre note, vous faites une énorme erreur de conception par copypasting les mêmes lignes de code sur plusieurs fichiers. Ce n'est pas SEC. Si vous avez besoin de copypaste code, vous devez toujours arrêter et vous demander si il n'y a pas un unique lieu d'exécution du code. Dans votre cas particulier, vous devriez avoir utilisé un
Filter
à la place. Pour un exemple concret, voir aussi cette réponse: Empêcher l'utilisateur de voir déjà visité page sécurisée après déconnexion. Aussi, l'écriture de code Java dans les pages Jsp est une mauvaise pratique. Vérifier Comment éviter de code Java dans les pages JSP?Aussi, votre déconnexion méthode est étrange. Ne pas stocker le nom d'utilisateur dans certains cookie personnalisé. Vous avez l'impression de réinventer la session. Juste magasin de l'utilisateur connecté comme un attribut de session au lieu et à invalider l'ensemble de la session et envoyer une redirection.
Pour de plus amples informations sur le travail de session, lisez ceci: Comment faire des servlets travail? L'instanciation, les sessions, les variables partagées et le multithreading
La réponse serait d'envoyer une redirection, mais depuis que de l'OBTENIR, c'est la fin de l'histoire. Vivre avec elle, c'est juste de savoir comment le POST fonctionne.
OriginalL'auteur BalusC
Si vous utilisez le bouton retour du navigateur, il n'y a rien que vous pouvez faire. La page sera toujours à partir de la mémoire cache.
Assurez-vous juste d'invalider la session lorsque l'utilisateur clique sur déconnexion. De cette façon, lorsque l'utilisateur appuie sur "retour" et tente d'utiliser la page, il sera redirigé vers la page de connexion (Si votre site est correctement programmé).
[MODIFIER]
Voici l'en-tête de nous mettre ne pas avoir de cache pour http 1.1 :
Eh bien, avec ou sans session, parlez-vous de l'arrière-bouton du navigateur ou de certaines bouton de retour de votre application?
bouton de déconnexion est un appel Ajax..Après l'appel ajax est plus, son redirigé vers la page de connexion..puis-je définir le "no-cache" option sur mon appel Ajax demande?
OriginalL'auteur tom
Avez-vous essayé
response.setHeader("Cache-control","no-store");
? Je pense que votre manque les guillemets au bon endroit..response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires", -1);
"Ne travaillent pas pour certaines pages n'est pas vraiment utile. Êtes-vous à la personne vous connecter à chaque fois? est-il un filtre en fonctionnement? Comment voulez-vous vérifier si l'utilisateur est validé en premier lieu?
OriginalL'auteur seeker
Créer un attribut de session disons-le, "valide" et de l'initialiser avec une valeur autre valeur null dans la page jsp, juste après les identifiants de connexion ont été appariés. Maintenant, créez un vérifier.jsp avec le code suivant:
Maintenant, il suffit d'inclure ce fichier jsp sur chaque page jsp et de son fait. Ne pas oublier d'écrire "de la session.invalidate();" à la déconnexion.jsp
Espère que cela va fonctionner..!!!
OriginalL'auteur Radhika Sharma