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

Tomcat et TomEE Java Discussion :

JSP : Destruction de la session utilisateur


Sujet :

Tomcat et TomEE Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Par défaut JSP : Destruction de la session utilisateur
    Bonjour,
    Je cherche à détruire la session utilisateur, en JSP, avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <%@page language="java" contentType="text/html; charset=iso-8859-1" import="java.sql.*,javax.servlet.http.*,java.lang.*,java.util.*"%>
    <%
      if(session!=null) { 
        session.invalidate(); //détruire la session utilisateur si celle-ci existe
      }   
      session = request.getSession(true); // Créer une nouvelle session utilisateur
     
    %>
    Mais visiblement cela ne marche pas. Quelqu'un pourrait-il me dire où se situe le problème?

    Merci

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Salut,

    Quand tu fais "session != null" tu testes la variable session sans l'avoir initialisée.

    A+

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Par défaut
    Ok, mais en ajoutant la ligne en rouge, Tomcat me dit que la variable session est déjà déclarée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <%@page language="java" contentType="text/html; charset=iso-8859-1" import="java.sql.*,javax.servlet.http.*,java.lang.*,java.util.*"%>
    <%
      HttpSession session = request.getSession(false); 
     
     if(session!=null) { 
        session.invalidate(); //détruire la session utilisateur si celle-ci existe
      }   
      session = request.getSession(true); // Créer une nouvelle session utilisateur
    %>

  4. #4
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Oui car je crois que dans le scope page les variable session, request sont deja disponible sans avoir à les déclarer..

    Le fait de rajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpSession session = request.getSession(false);
    indique que tu tentes de créer un nouvel objet session ..

    Supprime HttpSession dans la ligne ci dessus , je pense que tu n'auras plus le problème..

  5. #5
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 18
    Par défaut
    A chaque fois que tu fais getSession() ca te retourne un objet donc tester la valeur null ne marche pas.

    Je proposerais de tester en utilisant isNew() bien que je ne suis pas sur que ca marche etant donné que tu fais ton test dans une jsp.

    Apres il y a surement d'autres methodes pour arriver a ce que tu cherches comme par exemple de mettre un flag dans la session a la creation et apres de tester sur ce flag.

  6. #6
    Membre confirmé Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Par défaut
    Salut,
    Dans une jsp, l'objet session est automatiquement présent (au même titre que request et response ).
    Pour ce qui est du isNew(), ça indique que la session est neuve : elle vient d'être crée, quand on fait La session en cours est renvoyée, sinon, elle est crée (donc new) et si on veut pas créer de nouvelle session et récuperer l'existante, il faut le préciser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession(false);
    Et sinon, par défaut, une jsp crée une session, si on en veut pas, il faut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page session="false" %>
    Ce que je ne comprends pas trop, c'est le
    Mais visiblement cela ne marche pas
    Dans quelle mesure ça marche pos?
    Si je lis la doc,
    public void invalidate()
    Invalidates this session then unbinds any objects bound to it.
    Ce que j'en comprends, c'est qu'il vide la session, c'est pas pour autant que l'objet session est détruit (à vérifier).
    A pluche...

Discussions similaires

  1. [JSP] Destruction de session.
    Par ran_hery dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 16/04/2009, 12h02
  2. Nom session utilisateur windows
    Par snipes dans le forum Windows
    Réponses: 1
    Dernier message: 20/04/2006, 16h17
  3. Liste session utilisateur
    Par trax44 dans le forum Langage
    Réponses: 1
    Dernier message: 18/04/2006, 12h42
  4. [JSP][Struts]Moniteur de sessions
    Par JohnBlatt dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 08/03/2006, 17h13
  5. [Sécurité] destruction automatique de session
    Par samsso2005 dans le forum Langage
    Réponses: 8
    Dernier message: 16/01/2006, 14h29

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