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 :

Attribut récupéré depuis session vide


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 238
    Points : 90
    Points
    90
    Par défaut Attribut récupéré depuis session vide
    Bonjou à tous,

    je travaille actuellement sur une petite application web.
    Mon problème est le suivant, lorsque l'utilisateur se connecte, l'appli récupère le login windows de l'utilisateur et le stocke dans la session dans une variable comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttribute("prenom_nom", prenom_nom);
    Mon problème est que, aléatoirement, lorsque je récupère cette donnée (à partir d'une autre page) cette donnée est vide.

    Dans ma servlet, je la récupère de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String userName = (String) request.getSession().getAttribute("prenom_nom");
    Il arrive que la chaine 'userName' soit vide.

    Pouvez-vous me dire à quoi cela serait dû ?

    Petite question au passage, j'ai modifié mon web.xml pour que la session de l'utilisateur dure longtemps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	<session-config>
    		<session-timeout>240</session-timeout>
    	</session-config>
    Est-ce qu'il vaut mieux mettre moins ou est-ce que ça n'affecte en pas grand chose mon serveur ?

    Merci pour vos réponses !
    (@_@)

  2. #2
    Membre actif Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Points : 205
    Points
    205
    Par défaut
    C'est quoi ton source qui met la variable en session?
    Et celui tant qu'a faire qui permet de lire la session.. Comment elle s'appelle l'une et l'autre parce que là on voit bien le problème mais sans les sources ca risque d'etre dur a résoudre...
    L'habitude est l'illusion d'un acquis imaginaire...

    Mes Compos Ziks Electros:http://fishbone2k.free.fr/technorulez/news.php?id=89

  3. #3
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    C'est pas tres normal ce que tu dis la...
    Est-ce que tu ouvre une nouvelle fenetre du navigateur quand cela se produit ?
    Ou c'est apres avoir fait des redirections ou des forwards ?

    Pour la duree de session, je pense que c'est plus une question de securite qu'autre chose.
    Eventuellement si il y'a beaucoup de sessions qui peuvent etre creees, c'est bien que ce soit limite.

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Le problème des sessions de longue durée, c'est qu'à la longue, tu peux encombrer la mémoire de ton serveur.
    Tu pourrais réduire la durée du time-out de session et par l'intermédiaire d'un filtre de servlet, par exemple, rediriger l'utilisateur vers la page de login si sa session a expiré.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 238
    Points : 90
    Points
    90
    Par défaut
    En fait, j'utilise Struts je passe donc par mon Action,
    voici pour stocker la variable en session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) {
    ...
    HttpSession session = request.getSession();
    session.setAttribute("prenom_nom", remoteUserString);
    Et lorsque je récupère la variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception {
    ...
    String userName = (String) (request.getSession()).getAttribute("prenom_nom");
    Pour répondre à willoi, ça m'arrive lorsque l'utisateur navigue dans le site (il change de page, sans ouvrir de nouvelle fenêtre).

    Pour info, je répète que le problème n'est pas systématique.

    Merci pour vos recherches !
    (@_@)

  6. #6
    Membre actif Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Points : 205
    Points
    205
    Par défaut
    quand tu entres ta variable en session c'est dans une structure conditionnelle ou c'est systématique...? (if_else)
    Et a aucun endroit tu ne fais de session.removeAttribute("detavariable")?
    L'habitude est l'illusion d'un acquis imaginaire...

    Mes Compos Ziks Electros:http://fishbone2k.free.fr/technorulez/news.php?id=89

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Ca ne le fait plus, maintenant que tu as changé le timeout de session, non ?

Discussions similaires

  1. [JS + J2EE] Recuperer un attribut du scope session
    Par K-Kaï dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/06/2011, 18h04
  2. Free et sessions vides au rechargement
    Par Marty000 dans le forum Langage
    Réponses: 1
    Dernier message: 02/03/2007, 11h11
  3. pb redirection constante, variable session vide
    Par ben_skywalker dans le forum Langage
    Réponses: 6
    Dernier message: 14/02/2007, 16h43
  4. Réponses: 34
    Dernier message: 14/12/2006, 16h13
  5. Variables de session vides !
    Par juliotte dans le forum Langage
    Réponses: 12
    Dernier message: 11/08/2006, 10h12

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