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 :

Stocker la liste des utilisateurs connectés [FAQ]


Sujet :

Développement Web en Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Points : 31
    Points
    31
    Par défaut Stocker la liste des utilisateurs connectés
    Bonjour,

    J'ai une classe Java qui doit mémoriser dans une ArrayList
    tous les utilisateurs connectés au site web avec leurs infos.

    Comment puis-je accéder à cette classe à partir d'un JSP ou Servlet ?

    Merci pour toute réponse !!

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    si tu veux mémoriser tes utilisateurs conectés dans une arraylist tu peux mettre cet objet dans le context de l'application.

    En gros il te faut initialiser cet objet via une classe implementant ServletContextListener et surveiller les ouvertures/fermetures de session avec HttpSessionListener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class MaClasseContextListener implements ServletContextListener {
     public void contextInitialized(ServletContextEvent event) {
      List<User> list = new ArrayList<User>();
     ServletContext context = event.getServletContext();
     context.setAttribute("MesUtilisateursConnectes",list);
    }
     
    et une autre classe
    public class MaClasseListenerSession implements HttpSessionListener {
    	public void sessionCreated(HttpSessionEvent e) {}
    	public void sessionDestroyed(HttpSessionEvent e) {}
    }
    tu gères apres les evenement de la session. Ne pas oublier de déclarer ces classes dans le web.xml.
    Apres pour acceder à cet objet tu recuperes le context avec getServletContext().getAttribute("MesUtilisateursConnectes"); dans une servlet
    dans une JSP me souviens plus tres bien ce doit etre application.getAttribute("MesUtilisateursConnectes" );
    nb : la classe User est un exemple, à toi d'adapter

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    Merci beaucoup beaucoup ! Ton explication est très claire !
    Je n'y aurait jamais pensé !!

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    Au fait j'ai instancié et mémoriser ces classes dans le contexte,
    pas à partir d'une classe implémentant ContextListener,
    mais dans une servlet 'extends HttpServlet' load-on-start.
    Ils ont aussi accès au contexte, est-ce qu'il faut absolument avoir cette clase implementant ContextListener ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 21
    Points : 25
    Points
    25
    Par défaut
    non tu peux aussi le faire a partir d'une servlet (HttpServlet), dans la methode init() avec le load on startup.
    la solution que je t'ai donné est pour bien séparer tes données dans ton application, une servlet est généralement lié a une seule action, elle traite une requete elle n'a pas a faire autre chose.
    le ServletContextListener gère lui le context de l'application donc les données relatives au context.
    En pratique tu pourrais meme initialiser ces donnes dans une JSP! c'est une juste une question d'organisation du code apres cest plus facile de relire ton code tu sais ou se trouve tes initialisations

    bonne continuation !

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Points : 31
    Points
    31
    Par défaut
    Merci j'aime bien tes explications

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

Discussions similaires

  1. UIB : Liste des utilisateurs connectés.
    Par TryExceptEnd dans le forum Connexion aux bases de données
    Réponses: 8
    Dernier message: 06/02/2009, 14h20
  2. Liste des utilisateurs connectés
    Par fastjim dans le forum VBScript
    Réponses: 4
    Dernier message: 15/05/2008, 12h26
  3. Liste des utilisateurs connectés
    Par GodGives dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/02/2008, 16h52
  4. Liste des utilisateurs connectés à une base (serveur TSE)
    Par e040098k dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/07/2007, 13h24
  5. [VB.NET]API qui récupère la liste des utilisateurs connectés
    Par cedric.synix dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/07/2006, 01h17

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