IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

[semi-résolu] Problème étrange - HTTP Session avec Internet Explorer


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Points : 24
    Points
    24
    Par défaut [semi-résolu] Problème étrange - HTTP Session avec Internet Explorer
    Bonjour à tous!
    Je n'ai jamais posté sur forum ayant toujours trouvé mon bonheur. Mais là je m'avoue vaincue Un 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:

    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"
    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.

    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?

  2. #2
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Points : 24
    Points
    24
    Par défaut
    Je viens d'essayer en désactivant les cookies sur Firefox.
    En faisant ça, j’obtiens le même comportement que sur IE: plusieurs sessions.
    Voici mon code complet de ma page logout.jsp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <%@ page contentType="text/html"%><%@page pageEncoding="UTF-8"%>
    <html>
        <head>
            <jsp:include page="allo/header.jsp"></jsp:include>
        </head>
        <body>
            <% HttpSession httpSession = request.getSession();
                        if (httpSession != null) {
                            System.out.println("Invalidating");
                            httpSession.invalidate();
                        }%>
            <div style="margin-left: 20px; margin-top:20px;">DISCONNECTED</div>
        </body>
    </html>
    Aussi, j'ai remarqué qu'il manquait des choses dans l'entête HTTP de IE.
    Voilà une comparaison des deux entêtes sous IE (qui à l'air incomplète) et Firefox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //Sous Internet Explorer
    GET /dos/index.jsp HTTP/1.1
    Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    Accept-Language: fr
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.0.3705; InfoPath.2)
    Accept-Encoding: gzip, deflate
     
    HTTP/1.1 200 OK
    Content-Type: text/html;charset=UTF-8
    Transfer-Encoding: chunked
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //Sous FireFox
    Server	Apache-Coyote/1.1
    Set-Cookie	JSESSIONID=F3CD8B1E89A7F325E1AF1D4F4ECE28D6; Path=/dsxdevds
    Content-Type	text/html;charset=UTF-8
    Transfer-Encoding	chunked
     
    Host	localhost:8079
    User-Agent	Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
    Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language	fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding	gzip, deflate
    Accept-Charset	ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive	115
    Connection	keep-alive
    Cookie	JSESSIONID=20CD73B675BD327C46C40A391F89FF99; dosView="1"

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 20
    Points : 24
    Points
    24
    Par défaut
    Problème résolu avec l'artillerie lourde. J'ai interdit le cache.
    C'est sale m'enfin.

    Bizarrement le code Java du fichier .jsp mis en cache devrait quand même s'activer, ce qui n'est pas le cas. Si quelqu'un peut m'expliquer pourquoi. Le code Java est carrément ignoré s'il vient du cache?
    J'aurai au moins appris quelque chose.

Discussions similaires

  1. Réponses: 10
    Dernier message: 10/11/2011, 00h46
  2. Utilisation de session avec Internet Explorer
    Par mickpiet dans le forum Langage
    Réponses: 5
    Dernier message: 03/07/2009, 21h31
  3. Réponses: 1
    Dernier message: 26/03/2008, 10h02
  4. [POO] Problème de code PHP avec Internet Explorer
    Par bzoler dans le forum Langage
    Réponses: 5
    Dernier message: 12/02/2006, 11h00
  5. [HTML] Tableau problème de formatage avec internet Explorer
    Par rabobsky dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/11/2005, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo