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 :

[JSP][session] perte de session et sendRedirect


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Points : 72
    Points
    72
    Par défaut [JSP][session] perte de session et sendRedirect
    Bonjour,
    dans une page A.jsp je créé une session et lui affecte une durée de 60s (pour mon exemple). Et je lui ajoute un attribut qui est un objet user.

    La page suivante B.jsp affiche une propiété de l'objet user. Si la session est expirée (donc j'ai perdu les valeurs associées), elle renvoie vers la page de login.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    PAGE B.JSP
     
    <%@ page language="java" import="monPaquet.*" session="true" %>
    <% 
    if(session.getAttribute("user")==null){
     response.sendRedirect("login.htm");
    }
     
    user monUser=(user)session.getAttribute("monUser");
    out.print(monUser.getTonNom());
    Tant que la session n'a pas expirée, tout va bien, la page B s'affiche correctement.
    Si la session a expirée, j'obtient une erreur "nullPointerException"
    Apparament cette erreur est générée par la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.print(monuser.getTonNom());
    il semble que monUser est null ce qui est logique dans la mesure ou si la session est expirée, monUser ne peut être initialisé.
    Hors, si la session est expirée, il y aurait du y avoir une redirection vers login.htm et le code suivant la redirection (response.sendRedirect) ne devrait pas être interprété (en tout cas c présenté tel quel dnas le bouquin JSP wrox/eyrolles).

    Ou je me suis planté ?

    Merci pour votre aide.

  2. #2
    Membre averti
    Avatar de knotty
    Inscrit en
    Mars 2002
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 126
    Points : 391
    Points
    391
    Par défaut
    essaie avec un else apres ton if.

    Bon courage
    Christophe Ludet
    Testez vos connaissances Java - http://knotty.developpez.com
    Donner des ailes a votre application (J2EE patterns) - http://knotty.developpez.com/j2ee

  3. #3
    Membre régulier

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Points : 72
    Points
    72
    Par défaut ya pas mieux comme solution ?
    ya pas mieux comme solution ?
    parce que ça veut dire qu'il faudrait que je mette tous mon code JSP dans mon else.
    C'est pas génial comme solution.
    Ce que je voudrias, ç'est avoir une session et s'il est expirée, que l'internaute soit redirigé vers login.htm

  4. #4
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    Tu peux toujours faire sortir de la page jsp de maniére brutale, mais attention, je previens, c'est pas surper propre, par contre c'est radical :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    PAGE B.JSP 
     
    <%@ page language="java" import="monPaquet.*" session="true" %> 
    <% 
    if(session.getAttribute("user")==null){ 
     response.sendRedirect("login.htm"); 
     return;
    } 
     
    user monUser=(user)session.getAttribute("monUser"); 
    out.print(monUser.getTonNom());

  5. #5
    Membre régulier

    Inscrit en
    Décembre 2002
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 68
    Points : 72
    Points
    72
    Par défaut
    effectivement ça marche sans problème. merci.
    Apparament, ça ne génère pas d'erreur sur la console serveur alors c'est peut être crade comme solution mais moins que de devoir mettre tout son code JSP dans un else

    pourtant dnas mon bouquin, ils disent que le sendRedirect suffit pour arrêter l'éxécution du JSP. Alors bon, je serias curieux de savoir comme font les programmeurs JSP (moi j'en suis encore au chemin de croix vers la Connaissance )

  6. #6
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Les programmeurs auraient mis le code dans un Else!!

  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
    J'aurais plutôt mis le test de session dans une servlet ou carrément un filtre de servlet.
    C'est quand même plus propre.

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

Discussions similaires

  1. Mélanger Facelets et JSP (perte de session)
    Par kotakota dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 03/09/2012, 14h22
  2. [JSP/AJAX] Perte de session et de response dans ma JSP
    Par maxbzh56 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/08/2006, 17h34
  3. [Struts]Redirection globale en cas de perte de session
    Par Mercenary Developer dans le forum Struts 1
    Réponses: 10
    Dernier message: 03/02/2006, 14h40
  4. [navigateur]Problême de pertes de sessions sous IE (.js)
    Par Invité4 dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 21/11/2005, 17h53
  5. [VB.NET] Perte de session entre 2 projets
    Par TekP@f dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/05/2005, 09h12

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