Bonjour à tous!
Je n'ai jamais posté sur forum ayant toujours trouvé mon bonheur. Mais là je m'avoue vaincueUn problème inconnu?
Contexte:
Je fais une application web pour un client.
Le client accède à tout le contenu (pas de login).
Quand un client va sur le site (index.jsp), mon HttpListener récupère d'emblée son HttpSession.getID() et le stock dans une liste.
Un admin peut consulter cette liste de clients selon leur id, ip et navigateur dans une page admin.jsp.
Pour des besoins de performance, les sessions inactives (après 5min) sont détruites grâce au timeout (dans le web.xml).
Problème:
J'ai également créer un lien "Deconnexion".
En cliquant dessus, le client est redirigé vers une deco.jsp qui fait:
Une fois sur cette page, la session est bel et bien détruite, seulement voilà, quand je veux retourner dans mon index.jsp après ce logout (sans fermer le navigateur donc), Internet Explorer créer d'abord 3 http session différentes (3 nouveaux sessionID différents) dont deux inutilisées, je peux les voir dans mon admin.jsp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <% HttpSession httpSession = request.getSession(); if (httpSession != null) { System.out.println("Invalidating"); httpSession.invalidate(); } %> //Puis affiche une page blanche "deconnexion"
Firefox lui me recréer bien une seule session.
Pour info, si la session est détruite par timeout, je n'ai aucun problème (sur IE et FF), une nouvelle session est bien créée en rafraichissant la page d'index
Cela viendrait-il de l’interprétation de invalidate() par IE? Est-ce que c'est connu que IE créer deux sessions inutiles avant de "générer" l'utile?
Partager