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

Struts 1 Java Discussion :

Récupérer tous les id des sessions en cours sur le serveur


Sujet :

Struts 1 Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut Récupérer tous les id des sessions en cours sur le serveur
    Bonjour!

    Pour une question d'optimisation de la mémoire, j'ai besoin de faire une liste que je mets à jour toutes les x secondes.
    Cette liste contient les objets visualisés par les différents utilisateurs (un objet visualisé par deux utilisateurs n'est présent qu'une fois dans la liste, et un objet qui ne serait visualisé par aucun utilisateur n'est pas présent dans la liste)

    J'ai donc mis en place deux hashtable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private Hashtable<String, ArrayList<String>> consultedObjectsBySessionid; //The String element is the id of the element, The second param is the list of the session ids using the element
        private Hashtable<String, ElementIdex> consultedObjects; // The String element is the id of the element, The second param is the element java object
    La premièer HashTable est remplie avec comme clé les id des objets (id de la BD à laquelle est lié mon projet), et comme valeur une ArryList contenant tous les id de session qui visualisent l'objet)

    Lorsque quelqu'un visualise un nouvel objet cette arraylist est mise à jour (ajout de son id des session). Lorsque quelqu'un se déconnecte de l'appli par le lien "logout", son id de session est enlevé des arraylist....

    Le souci c'est que lorsque quelqu'un arrive à son session.timeout, lorsque la session expire, on n'a plus acces au id de session. Du coup on peut plus l'enlever mais faut tout de même l'enlever puisqu'il n'est plus utilisé.

    Donc je voulais pouvoir récupérer tous les id de sessions valides, ou alors checker si tel ou tel id de session est déjà utilisé pour une session ou pas....

    Vous auriez une idée???
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

  2. #2
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    Bonjour,

    pourquoi ne pas utiliser un Listener qui t'informera que la session expire (qui pourra alors se désabonner de la hashmap)?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    j'ai fait ca mais ca ne marche pas. Ma classe implémente l'interface HttpSessionListener, mais les messages ne sont pas reçus : j'ai testé en mode débug et je ne passe ni dans la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void sessionCreated(HttpSessionEvent sessionEvt) {
    	}
    	public void sessionDestroyed(HttpSessionEvent sessionEvt) {}
    J'ai lu un truc en haut dans la doc sun de l'interface HttpSessionListener :
    To recieve notification events, the implementation class must be configured in the deployment descriptor for the web application.
    Mais bon, là je sais pas trop comment faire
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

  4. #4
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    il suffit de mettre dans le fichier web.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <listener>
    	<listener-class>com.package.MaClasse</listener-class>
    </listener>

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    Merci!!!

    Ca marche nickel.....
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

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

Discussions similaires

  1. Récupérer tous les ID des amis d'un ami
    Par GroRelou123 dans le forum Facebook
    Réponses: 2
    Dernier message: 08/06/2011, 17h05
  2. Réponses: 12
    Dernier message: 11/08/2009, 01h36
  3. Réponses: 0
    Dernier message: 25/11/2008, 13h58
  4. Réponses: 7
    Dernier message: 08/01/2005, 13h24
  5. [Plugin] Récupérer tous les fichiers *.java d'un workspace
    Par Satch dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 02/06/2004, 12h51

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