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 :

Gestion des Sessions


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut Gestion des Sessions
    Bonjour,
    je débute en jsp/servlets.

    je suis en train de développer une appli web.
    en première page, j'ai un formulaire d'authentification.

    lorsque je valide un login/mot de passe, j'ai un fichier (loginBean.java) qui va vérifier si les login et mot de passe sont corrects.

    si c'est le cas, je voudrais créer une httpSession et m'en servir pour afficher sur la jsp suivante "bienvenue nom prénom"

    je n'arrive pas à comprendre comment sont créées ces sessions.

    je pensais qu'on pouvait faire HttpSession sessionUser = new HttpSession, mais ça ne fonctionne pas.

    ma question est simple : comment créer une HttpSession ?

    (j'ai vu des histoire de HttpServletRequest... mais j'ai pas compris le rapport... enfin j'ai rien compris du tout)

    PLEASE !!!! HELP !


  2. #2
    Membre chevronné Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Par défaut
    Pour récupérer la session tu as la méthode getSession() sur l'objet HttpServletRequest.

  3. #3
    Membre émérite
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Par défaut Gestion des sessions
    Pour récupérer une session, il faut procéder comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpSession session = request.getSession();
    puis pour sauvegarder par exemple le login dans une session :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttribute("masession", login);
    pour récuperer la valeur du login dans session on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String login = (String) session.getAttribute("masession");

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    oui mais ce que je ne comprends pas, c'est d'où vient cette variable "request" ?

    comment est-elle initialisée ?

  5. #5
    Membre émérite
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Par défaut Gestion des sessions
    bah ça vient du paramétre HttpServletrequest dans la déclaration de la servlet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void doGet(HttpServletrequest request, HttpServletResponse reposne)
    {
    ...................
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void doPost(HttpServletrequest request, HttpServletResponse reposne)
    {
    ...................
    }

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    bah oui mais pour ça il faut avoir des méthodes post dans ses pages.

    moi j'utilise des pages jsf, qui de présentent comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
            <title>Authentification</title>
        </head>
        <body>
            <f:view>
                <h:form>
                    Identifiant : <h:inputText value="#{mgr.userID}"/>
                    <br/>Mot de passe : <h:inputText value="#{mgr.password}"/>
                    <br/><h:commandButton value="Login" action="#{mgr.loginAction}"/>
                </h:form>
            </f:view>
        </body>
    </html>
    donc on n'a pas le fameux form action = "blabla" method = POST

    ....donc si pas de post, pas de méthode doPost, pas de request, pas de response....

    donc comment faire ?

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FacesContext context = FacesContext.getCurrentInstance();
    HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre chevronné Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Par défaut
    Tu tappe sur ta servlet (généralement) soit en get soit en post, donc soit la méthode doGet() soit doPost() est appelée avec comme paramère request et response.

    Request c'est les infos que te donne le client qui appel la servlet.
    Response c'est les infos que tu donne au client.

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Par défaut
    Les objets HttpServletRequest et HttpServletResponse ainsi que les objets Session sont gérés par le serveur d'application donc disponibles automatiquement pour le développeur.

  10. #10
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    ok ça marche !!!!

    bon, mais par contre j'ai un autre souci :

    je voudrais que mes pages ne soient pas accessibles si l'utilisateur n'est pas connecté, et qu'il soit redirigé vers la page de connexion.

    j'ai essayé de chercher, mais je n'ai pas trouvé.

    je ne sais pas où je peux placer le code de la condition, j'avais pensé directement dans la jsp, mais je ne crois pas que cela soit possible.

    en gros, je voudrais que ça me fasse quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html>
    <body>
    <% if #{mgr.idUser}!=null then %> affiche la page
    <% else %> redirection vers page de login
    </body>
    </html>
    je ne sais pas du tout comment m'y prendre, d'autant plus que je n'arrive pas à récuper le "idUser" qui est créé lorsqu'on se connecte dans le loginBean.
    (si j'ai bien compris, si un managedBean est déclaré en session, on peut y accéder comme on veut non ?)

  11. #11
    Membre Expert
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Par défaut
    Bonsoir,

    Pour éviter que tes pages ne soit pas accessibles, tu peux utiliser le design pattern => firewall et tu verifies donc l'existence de ton contenu session.

    Ainsi tu peux rediriger de base sur un utilisateur non enregistre ou un utilisateur enregistre.

    Je l'ai fait et ca marche très bien.

    Bon code !!!

  12. #12
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Qd tu as ton utilisateur qui est correctement loggé, tu place un attribut dans la session du genre session.setAttribute ("utilisateur", valide). (ça tu sais faire maintenant)

    Et à chaque page, au début de la page, tu test si l'objet session tel que
    request.getSession.GetAttribute ("utilisateur" != null)

    Si null alors tu foward vers la page de ton authentification ...

  13. #13
    Membre chevronné Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Par défaut
    Tu peux te servir de la session. Par exemple quand un utilisateur essaye de se connecter tu peux rajouter dans sa session une variable, et sur ta jsp sécurisée tu peux vérifier que cette variable est présente. Tu peux directement accéder à la session utilisateur dans ta jsp.

  14. #14
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    ok, ça serait bien si ça fonctionnait.

    sauf que quand je mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession.GetAttribute ("utilisateur" != null)
    il me dit
    request.getSession cannot be resolved

    ya-t-il des choses à initialiser pour que ça fonctionne ?

  15. #15
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    arf, faute de frappe....

    en fait il fallait mettre ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession().getAttribute("utilisateur");
    dur dur le matin

  16. #16
    Membre chevronné Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Par défaut
    Tu as quoi comme IDE ?

    getSession c'est une méthode donc getSession()

    ..............

  17. #17
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    bon, ça ne fonctionne pas...
    je n'ai pas d'erreur, mais le code ne s'exécute pas.

    est-il possible d'afficher le contenu d'une variable dans la page pour voir si elle est correctement initialisée ?

    j'ai essayé ça dans la page jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    user : 
    <% 
     String user = (String) request.getSession().getAttribute("utilisateur");
    System.out.println(user); 
    %>
    mais rien ne s'affiche... mon code est faux ?
    j'ai aussi essayé ça, comme je l'avais vu dans des forums :
    mais là, c'est eclipse qui hurle...

    j'y suis presque, j'en suis sûre !

  18. #18
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    oui, désolé, j'avais oublié les () ...

    Maintenant le request.getSession().getAttribute() retourne un type Object
    d'ou le test avec null pour savoir si "utilisateur" existe.

    Maintenant qd tu fais le setAttribute(), tu rentres quoi comme valeur ???
    setAttribute( "utilisateur", int); ou String etc ...

  19. #19
    Membre éclairé
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Par défaut
    alors, dans la managed bean, je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    httpSession.setAttribute ("utilisateur", "valide");

  20. #20
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Sinon l'affichage par ex dans une JSP

    <p>user = <%= user%>.</p>

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Gestion des sessions avec applet
    Par Mister Nono dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 01/08/2006, 18h27
  2. [JSP] Gestion des sessions
    Par ze veritable farf dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 28/06/2006, 10h44
  3. [Struts][JSP]gestion des session en JSP
    Par zola dans le forum Struts 1
    Réponses: 6
    Dernier message: 27/04/2006, 16h23
  4. gestion des sessions
    Par jeff_! dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 22h09
  5. [tomcat] gestion des sessions
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/10/2004, 14h25

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