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 :

session et instances mutiples d'un navigateur


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Par défaut session et instances mutiples d'un navigateur
    Salut,

    j'ai commencé le jsp il ya pas trop longtemps, et j'ai un soucis au niveau des sessions :

    J'affiche des fiches que l'utilisateur est succeptible de modifier. voilà pourquoi j'interdis à plusieurs utilisateurs d'ouvrir la meme fiche grace à l'instruction sql "select... for update nowait" qui me renvoie une erreur si un second utilisateur veut ouvrir la même fiche. La fiche n'est libérée qu'après un "commit", généralement faisant suite à un "update".
    Ce verrou marche pour plusieurs utilisateurs differents, ou pour un même utilisateur qui utilise des navigateurs différents.

    Mon soucis, c'est que si un même utilisateur ouvre deux instances de son navigateur, il utilise la même session et donc affiche deux fois la même fiche (car les valeurs de la fiche sont enregistrées dans une variable de session qui est interogée à l'ouverture de la page).

    Est-t-il possible de detecter qu'un utilisateur utilise deux instances différentes d'un même navigateur (genre avec un id créé par le navigateur), ou de forcer la création d'une nouvelle session (sans effacer l'ancienne) lors de l'ouverture de la page d'accueil? ou toute autre solution?

    Les navigateurs sur lesquels j'ai fait mes tests sont firefox et netscape.

  2. #2
    Membre chevronné
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Par défaut
    Piste à explorer : créer un filtre de requête, dans lequel on maintiendrait une liste des utilisateurs possédant une session. Tu peux récupérer la session à partir de la requête, et tester la valeur retournée par isNew(), qui indique que la session vient d'être créée par le serveur. L'id de utilisateur peut être récupéré par request.getRemoteUser().

    (cf
    http://java.sun.com/javaee/5/docs/ap...et/Filter.html)

    Par contre il faut veiller à supprimer l'utilisateur de la liste en cas de destruction de session.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Par défaut
    merci, je vais regarder.

    par contre (sans m'etre encore vraiment penché sur les filters), je ne vois pas encore comment je pourrais distinguer le cas d'un utilisateur qui ouvre une deuxième instance de navigateur, du cas où un utilisateur ferme son navigateur (ce qui ne detruit pas sa session) puis le reouvre ensuite.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Par défaut
    Peut être que je me complique trop la vie.

    si j'ouvre 2 instantaces de IE, j'ai 2 sessions différentes (cool)
    si j'ouvre 2 instances de firefox ou 2 de netscape, elles partagent la même session (pas cool).

    c'est peut être juste une option quelque part...
    Google est mon ami, je m'en vais de ce pas lui gratter l'amitié

Discussions similaires

  1. Ma session se détruit à la fermeture du navigateur
    Par AyManoVic dans le forum Langage
    Réponses: 2
    Dernier message: 13/06/2010, 18h23
  2. Réponses: 4
    Dernier message: 21/03/2009, 11h04
  3. Réponses: 7
    Dernier message: 15/05/2007, 14h29
  4. Réponses: 5
    Dernier message: 24/10/2006, 11h56
  5. Réponses: 2
    Dernier message: 09/10/2005, 15h35

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