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] gestion d'une session par fenetre de navigateur


Sujet :

Développement Web en Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 14
    Points : 9
    Points
    9
    Par défaut [session] gestion d'une session par fenetre de navigateur
    Bonjour,

    J'aimerai savoir s'il existe une solution (code ou paramétrage) afin d'obtenir une session j2ee différente pour chaque fenetre de mon navigateur.

    En effet, lorsque j'ouvre un navigateur et que j'entre dans mon application, une session est créée par mon action de login.

    Si j'ouvre un second navigateur sur le même poste, il utilise la même session ce qui provoque l'écrassement des beans générés pour le 1er navigateur.

    Or, pour mon application, les utilisateurs doivent pouvoir ouvrir deux sessions distinctes afin qu'ils puissent utiliser la même page sur des entités différentes (beans) et basculer d'un navigateur à l'autre sans écraser les données.

  2. #2
    Membre expérimenté
    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
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Je pense que cela doit pas etre possible... ou alors peut etre en encodant l'id de session directement dans l'url, et en evitant d'utiliser des cookies!

    A tester!
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    D'abord merci de me répondre.

    J'ai bien penser à gérer moi même l'id de session soit dans la requête, soit en paramètre caché de mes formulaires mais je ne vois pas comment :
    1- Créer une seconde session à partir d'une requête http provenant du même poste (avec un id différent).
    2- Accéder à l'une ou à l'autre des sessions (grâce à l'id).

    La seule solution que je vois serait de faire des "sous-sessions" type Map ou ArrayList avec un identifiant spécifique lié à chaque fenêtre de mon navigateur mais cela m'oblige à chaque requête à copier les forms dans la sous-session adéquate, ce qui est un peu lourd..

  4. #4
    Membre expérimenté
    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
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    En fait, je parlais d'encoder l'id de session dans l'url avec les mecanismes J2EE..

    en faisont response.encodeUrl("url")
    ou quelques choses de similaire...

    Normalement tu ne stocke pas l'id de session dans un cookie...
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Ah oui, c'est vrai que j'ai vu qu'au niveau du serveur d'application (j'utilise Websphere) on a accès au paramétrage de la technique de gestion des sessions.

    Il y a trois modes :
    - Cookie (par défaut)
    - réécriture d'url
    - SSL

    Je ne sais pas trop ce qu'est SSL mais je vais essayer avec le mode réécriture d'URL et je te tiens au courant.

  6. #6
    Membre expérimenté
    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
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    Le mode SSL est le mode de connection securisée (Secure Socket Layers).
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    Mieux vaut développer l'application de bout en bout sachant que deux fenêtres sur le même poste partagent normalement la même session.
    C'est sans doute inutile à ce stade du développement, alors disons que c'est pour la postérité.

  8. #8
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par BugFactory
    Mieux vaut développer l'application de bout en bout sachant que deux fenêtres sur le même poste partagent normalement la même session.
    C'est sans doute inutile à ce stade du développement, alors disons que c'est pour la postérité.
    Enfin si face à un besoin utilisateur dont tu connais la solution technique, tu leur réponds : vous n'avez qu'à faire sans, c'est inutile. Je ne pense pas que tes utilisateurs seront très contents de ton application.


    Outre ces considérations, j'ai testé le fait d'encoder l'id de session dans l'url. Cela fonctionne correctement et répond à mes attentes.
    Merci fabszn

    Pas de problème pour les liens hypertexte mi pour les sousmission de formulaire.


    En revanche, je rencontre un petit problème :

    La page d'entrée de mon application est une mire d'authentification qui est soumise à une action qui effectue le contrôle de validité du compte utilisateur sur un système distant (AS400). Jusque là pas de problème.

    Si le compte utilisateur est valide, j'appelle alors une page constituée de trois FRAME (un bandeau supérieur, un menu, et une page principale de navigation).

    Mon problème est d'intégrer l'encodage du session id dans les paramètres SRC de mes balises FRAME.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <FRAMESET ROWS="90,*" frameborder="no" border="0"
    	<FRAME NAME="enteteFrame" SRC="/bandeau.do" SCROLLING="no" noresize marginwidth="0" marginheight="0">
    	<FRAMESET COLS="25%,*" frameborder="no" border="0">
    		<FRAME NAME="menuFrame" SRC="/menu.do" SCROLLING="auto" noresize marginwidth="0" marginheight="0">
    		<FRAME NAME="corpsFrame" SRC="blanc.jsp" SCROLLING="auto" noresize marginwidth="0" marginheight="0">
    	</FRAMESET>
    </FRAMESET>
    Existe-t-il soit une balise équivalente (struts / jstl ???) qui prenne en charge d'encodage de l'id session ou faut-il passer par les tiles (ou autre) ?

  9. #9
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Je me répond à moi-même parceque je n'avais pas bien regardé la documentation Struts.

    En effet, il suffisait d'utiliser les tags html:frame de struts.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <FRAMESET ROWS="90,*" frameborder="no" border="0" onLoad="window.moveTo(0,0);window.resizeTo(screen.availWidth,screen.availHeight);">
    	<html:frame frameName="enteteFrame" href="bandeau.jsp" scrolling="no" noresize="true" marginwidth="0" marginheight="0"/>
    	<FRAMESET COLS="25%,*" frameborder="no" border="0">
    		<html:frame frameName="menuFrame" href="menu.jsp" scrolling="auto" noresize="true" marginwidth="0" marginheight="0"/>
    		<html:frame frameName="corpsFrame" href="blanc.jsp" scrolling="auto" noresize="true" marginwidth="0" marginheight="0"/>
    	</FRAMESET>
    </FRAMESET>
    Voila. Je suis désolé c'était tout simple.

    En tout cas, merci de m'avoir mis sur a voie.

    Pour informations (pour ceux que ça interresse) :
    La méthode de gestion de la session J2EE au sein du serveur d'application WebSphere (j'utilise WAS v5.0), se configure au niveau des propriétés supplémentaires de l'application sous la rubrique "Gestion de session".
    Dans "Propriétés Générales", modifier la propriété "Mécanisme de suivi de session" de "Activer les cookies" vers "Activer la réécriture des URL".

    Merci à tous.

  10. #10
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Juste une indication complémentaire,

    Tu partageras une même session seulement si tu ouvres une nouvelle fenetre en utilisant "Fichier / Nouveau / Fenêtre" ou plus communément le Ctrl+N.

    Maintenant, si tu ouvres un nouveau navigateur, tu auras deux sessions bien différente sur un même poste.
    Etre c'est etre relatif.

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

Discussions similaires

  1. [WB18] Gestion d'une session utilisateur
    Par Trebor dans le forum WebDev
    Réponses: 0
    Dernier message: 18/02/2014, 16h03
  2. Gestion d'une session avec RequestProcessor
    Par SheenaRingo dans le forum Struts 1
    Réponses: 2
    Dernier message: 08/10/2008, 11h12
  3. Initier une session telnet dans une session telnet
    Par benbs dans le forum Modules
    Réponses: 3
    Dernier message: 18/11/2006, 13h05
  4. recuperer la valeur d'une session PHP dans une variable javascript
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/09/2006, 18h33
  5. [Session]Récupération d'une session dans une servlet
    Par frizby dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 18/11/2005, 17h02

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