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

Servlets/JSP Java Discussion :

[Servlet] ServletContextListener


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué Avatar de phoebe
    Inscrit en
    Août 2003
    Messages
    289
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 289
    Points : 143
    Points
    143
    Par défaut [Servlet] ServletContextListener
    bonjour,
    j'ai des opérations à faire dans ma base quand l'utilisateur quitte l'appli.
    S'il quitte l'appli en cliquant sur le bonton "quitter" y a pas de problème mais s'il ferme le navigateur alors là...

    j'ai donc implémenté un ServletContextListener mais il ne se déclenche pas à la fin de la session de l'utilisateur mais seulement lorsque j'envoi "SHUTDOWN" à Tomcat.

    comment dois je m'y prendre ?

  2. #2
    Membre habitué
    Avatar de dtateur
    Inscrit en
    Mars 2004
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 106
    Points : 140
    Points
    140
    Par défaut
    c'est normal.
    Pour faire ce que tu veux, tu dois utiliser un sessionListener.

    http://java.sun.com/j2ee/sdk_1.3/tec...nListener.html

  3. #3
    Membre habitué Avatar de phoebe
    Inscrit en
    Août 2003
    Messages
    289
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 289
    Points : 143
    Points
    143
    Par défaut
    oui merci je viens juste de voir ça, mais je dois juste le signaler dans le web.xml ? et tomcat gère ensuite tout seul les sessions ?

  4. #4
    Membre habitué
    Avatar de dtateur
    Inscrit en
    Mars 2004
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 106
    Points : 140
    Points
    140
    Par défaut
    Une fois que tu as créé ton sessionListener, il ne te reste plus qu'à le déclarer dans le web.xml et ton serveur d'appli fera le reste (à l'expiration du time-out de session ou à l'invalidation de ta session.)

  5. #5
    Membre habitué Avatar de phoebe
    Inscrit en
    Août 2003
    Messages
    289
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 289
    Points : 143
    Points
    143
    Par défaut
    2 problèmes aparaissent:
    1) ce message d'erreur java.lang.IllegalStateException: "getAttribute": Session déjà invalidée
    2) lorsque je quitte le navigateur le listener ne se déclenche pas, non plus à la fin du timeout, enfin pas automatiquement, c'est seulement en rouvrant une session que les évènements précédents sont lancés ??

  6. #6
    Membre habitué Avatar de phoebe
    Inscrit en
    Août 2003
    Messages
    289
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 289
    Points : 143
    Points
    143
    Par défaut
    finalement on oubli le point 2) tout est bien déclenché.

    par contre le point 1) m'embête

    la session est déjà détruite lors de l'appel à la méthode sessionDestroyed() alors comment puis je récupérer la valeur de mes attributs de session ?

  7. #7
    Membre habitué Avatar de phoebe
    Inscrit en
    Août 2003
    Messages
    289
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 289
    Points : 143
    Points
    143
    Par défaut
    là je ne vois plus comment faire...
    à quoi ça sert d'avoir la méthode sessionDestroyed si on a plus accès aux attributs de sessions

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Eh bien a verifier la fermeture de connexions JDBC ou calculer des statisques par exemple...

    J'ai une question sur ce sujet :

    Comment acceder Au listener de session dans le code d'une Action struts par exemple ? (Utiliser une méthode...)

    Mmm je réponds moi même : utiliser des méthodes static !


    ... pourquoi je ne suis pas réveillé ? ...

  9. #9
    Membre habitué Avatar de phoebe
    Inscrit en
    Août 2003
    Messages
    289
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 289
    Points : 143
    Points
    143
    Par défaut
    j'ai finalement réussi !!
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class SessionListener implements HttpSessionListener, HttpSessionAttributeListener {
      public void sessionCreated(HttpSessionEvent se) {...}
      public void sessionDestroyed(HttpSessionEvent se) {...}
      public void attributeAdded(HttpSessionBindingEvent se){...}	
      public void attributeRemoved(HttpSessionBindingEvent se){...}	
      public void attributeReplaced(HttpSessionBindingEvent se){...}
    }
    j'ai donc implémenté 2 Listener en 1 et ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/01/2011, 21h32
  2. [Servlet]Erreur tomcat avec ServletContextListener et Quartz
    Par K-Kaï dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 01/06/2006, 12h44
  3. [ Debutant ] [ Weblogic ] [ Servlet ] ServletContextListener
    Par berret dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 08/03/2005, 18h46
  4. [JSP/Servlet] Outils pour developper?
    Par BenoitM dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/05/2004, 12h03
  5. Servlet dans Eclipse ?
    Par unflag dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 10/04/2003, 19h46

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