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 :

Comment récupérer la valeur de l'utilisateur connecter dans mon application


Sujet :

Développement Web en Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut Comment récupérer la valeur de l'utilisateur connecter dans mon application
    Bonjour/bonsoir,

    Voilà je m'explique je suis en train de développé une application de gestion de parking et j'aimerais que lorsqu'un locataire effectue un payement un contrat se créé qui le met en relation avec le proprietaire de la place du parking, pour l'instant il n y a pas de problème, mais ce que je voudrais faire c'est lorsque un proprietatire ou locataire se connecte sur l'application juste les contrats qui lui appartiens qui s'affiche et non pas tout les contrats, en bref je veux que juste les contrats qui appartiennent à l'utilisateur connecté dans mon application qui s'affiche dans l'interface mais je ne sais pas trop comment faire.

    voici mon interface :

    Nom : dev 3.PNG
Affichages : 1887
Taille : 19,6 Ko

    et voici ma page jsp :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
     
     
    <%@page import="controller.Cnx"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@page import="java.sql.*"%>
     
    <!DOCTYPE html>
     
     
    <%
    Connection c=Cnx.getcnx();
    Statement st=c.createStatement();
    ResultSet re=st.executeQuery("select null, c.cin_locataire, c.cin_proprietaire, c.date_debut, c.date_fin, c.type_contrat from contrat c , users u  ");
     
     
    %>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <meta name="description" content="Sufee Admin - HTML5 Admin Template">
            <meta name="viewport" content="width=device-width, initial-scale=1">
     
            <link rel="apple-touch-icon" href="apple-icon.png">
            <link rel="shortcut icon" href="favicon.ico">
     
            <link rel="stylesheet" href="vendors/bootstrap/dist/css/bootstrap.min.css">
            <link rel="stylesheet" href="vendors/font-awesome/css/font-awesome.min.css">
            <link rel="stylesheet" href="vendors/themify-icons/css/themify-icons.css">
            <link rel="stylesheet" href="vendors/flag-icon-css/css/flag-icon.min.css">
            <link rel="stylesheet" href="vendors/selectFX/css/cs-skin-elastic.css">
            <link rel="stylesheet" href="vendors/jqvmap/dist/jqvmap.min.css">
     
     
            <link rel="stylesheet" href="assets/css/style.css">
     
            <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800' rel='stylesheet' type='text/css'>
            <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
            <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
            <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
            <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
            <script src="https://kit.fontawesome.com/e3fd0d5f24.js" crossorigin="anonymous"></script>
     
            <title>Contrat</title>
        </head>
        <body>
            <aside id="left-panel" class="left-panel">
            <nav class="navbar navbar-expand-sm navbar-default" style="flex-flow:column wrap;">
     
                <div class="navbar-header">
     
                    <a class="navbar-brand" href="#">Gestion parkings</a>
                    <a class="navbar-brand hidden" href="./"><img src="images/logo2.png" alt="Logo"></a>
                </div>
     
                <div id="main-menu" class="main-menu collapse navbar-collapse">
                    <ul class="nav navbar-nav">
     
     
                        <li class="nav-item ">
                            <a href="Gestion_des_locaux" class="nav-link"  aria-haspopup="true" aria-expanded="false"> <i class="fas fa-arrow-alt-circle-right" style="margin-right: 20px;" selected></i>Gestion locaux</a>
     
                        </li>
                        <li class="nav-item ">
                            <a href="Place_locaux" class="nav-link"  aria-haspopup="true" aria-expanded="false"> <i class="fas fa-arrow-alt-circle-right" style="margin-right: 20px;"></i>Places</a>
     
                        </li>
                        <li class="nav-item ">
                            <a href="#" class="nav-link"  aria-haspopup="true" aria-expanded="false"> <i class="fas fa-arrow-alt-circle-right" style="margin-right: 20px;"></i>Contrats</a>
     
                        </li>
     
     
     
                    </ul>
                </div>
            </nav>
        </aside>
     
        <nav class="navbar" style="height:70px;" id='nav-proprietaire'>
            <ul class="nav navbar-nav">
                <li class="nav-item ">
                            <a href="Page_de_cnx" class="nav-link"  aria-haspopup="true" aria-expanded="false" style="padding-left: 1430px; text-transform: uppercase"> <i class="fas fa-exclamation-circle" style="margin-right: 20px;"></i>Déconnection</a>
     
                        </li>
            </ul>
        </nav>
     
            <table class="table table-hover" style="margin-top: 20px;" id="table1">
      <thead>
        <tr class="table-active">
          <th scope="col">Cin_locataire</th>
          <th scope="col">Cin_proprietaire</th>
          <th scope="col">Date debut</th>
          <th scope="col">Date fin</th>
          <th scope="col">Type de contrat</th>
     
     
     
        </tr>
      </thead>
      <tbody>
     
     
         <%while(re.next()){%> 
         <tr>
     
                <th scope="row"><%=re.getObject(2)%></th>
                <td><%=re.getObject(3)%></td>
                <td><%=re.getObject(4)%></td>
                <td>><%=re.getObject(5)%></td>
                <td><%=re.getObject(6)%></td>
     
         </tr>
     
     
          <%}%>
     
     
      </tbody>
     
    </table>
     
     
     
     
     
            <script src="vendors/jquery/dist/jquery.min.js"></script>
        <script src="vendors/popper.js/dist/umd/popper.min.js"></script>
        <script src="vendors/bootstrap/dist/js/bootstrap.min.js"></script>
        <script src="assets/js/main.js"></script>
     
     
        <script src="vendors/chart.js/dist/Chart.bundle.min.js"></script>
        <script src="assets/js/dashboard.js"></script>
        <script src="assets/js/widgets.js"></script>
        <script src="vendors/jqvmap/dist/jquery.vmap.min.js"></script>
        <script src="vendors/jqvmap/examples/js/jquery.vmap.sampledata.js"></script>
        <script src="vendors/jqvmap/dist/maps/jquery.vmap.world.js"></script>    
        </body>
    </html>
    et voici la servlet qui vérifie le ndp et mdp :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            String login1=request.getParameter("login1");
           String password1=request.getParameter("password1");
           String destination="/WEB-INF/Acceuil_proprietaire.jsp";
           Connection c=Cnx.getcnx();
           try {
               PreparedStatement st=c.prepareStatement("select * from users where login=? and password=? and role='proprietaire'");
               st.setString(1, login1);
               st.setString(2, password1);
               ResultSet res=st.executeQuery();
               if(res.next()){
                    System.out.println("connecter avec succes");
                   destination="/WEB-INF/Acceuil_proprietaire.jsp";
               }
                else {
                    request.setAttribute("msg1","Login ou mot de passe incorrecte !");
                    destination="/WEB-INF/Page_de_cnx.jsp";
                }  
     
     
        }   catch (SQLException ex) {
                Logger.getLogger(Authentification.class.getName()).log(Level.SEVERE, null, ex);
            }
     
           getServletContext().getRequestDispatcher(destination).forward(request, response);
        }
    }
    Si quelqu'un veux bien m'aider j’enserrais vraiment très reconnaissant et merci d'avance !

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    A la connexion, mets une information en attribut de session qui te permettra à tout moment (jsp, servlet...) de la récupérer et de connaître l'utilisateur en session.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    Comment faire et ou ecrire ce code stp ? désolé si c'est une question bête mais je suis toujours qu'un debutant, je sais qu'il y a une methode qui te permet de récupérer la session en cour c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getSession();
    mais je ne sais pas quoi mettre dedant et je ne sais pas ou l'écrire ni comment l'appeller

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Pareil pour un attribut de request (cf doc):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession().setAttribute(nomattribut, valeurattribut);
    et pour le récupérer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession().getAttribute(nomattribut);
    dans une jsp tu as une variable session aussi (tu peux faire directement session.getAttribute(nomattribut)).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    Ok merci beaucoup pour les informations, mais pour l'attribut session c'est là ou je dois stoker l'id du user connecter no ? du coup comment récupérer cette valeur je met un ResultSet et un while pour que je parcours la table users pour récupérer les id et apres je met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession().setAttribute(nomattribut, <%=re.getObject(1)%>);
    c'est ça non ???

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par toztoztoze Voir le message
    Ok merci beaucoup pour les informations, mais pour l'attribut session c'est là ou je dois stoker l'id du user connecter no ?
    Oui par exemple, ou une structure avec d'autres informations du user (l'id, le nom, l'email, etc...), pour t'éviter d'aller les rechercher quand tu en as besoin.

    Citation Envoyé par toztoztoze Voir le message
    du coup comment récupérer cette valeur je met un ResultSet et un while pour que je parcours la table users pour récupérer les id et apres je met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession().setAttribute(nomattribut, <%=re.getObject(1)%>);
    c'est ça non ???
    Et bien tu dois avoir un endroit où tu gères une connexion : un endroit où tu valides un identifiant et un mot de passe qui ont été saisis dans un formulaire de login. Une servlet, ou un filtre pour une connexion par jeton (dans ce cas, il vaudrait mieux passer l'attribut en request).
    Si tu identifies un utilisateur c'est que tu as son id normalement, et toutes les informations nécessaires.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    Oui j'ai bien cet endrois ou je gères la connexion, j'effectue ce test dans une servlet ( je l'ai mis en haut ), pour les informations id... oui j'ai tout celà voici mes tables si ça peut aider à mieux comprendre :

    table users :

    Nom : table users.PNG
Affichages : 1879
Taille : 13,6 Ko

    table contrat :

    Nom : table contrat.PNG
Affichages : 1834
Taille : 8,2 Ko

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par toztoztoze Voir le message
    Oui j'ai bien cet endrois ou je gères la connexion, j'effectue ce test dans une servlet ( je l'ai mis en haut ), pour les informations id... oui j'ai tout celà voici mes tables si ça peut aider à mieux comprendre
    Donc tu peux mettre ces informations dans la session. La session est conservée entre les appels du navigateur ou les appels Ajax tant qu'ils ne sont pas cross domain (et on peut même le faire avec du fetch ou du axios (paramètre useCredential)).

    Pour tester l'existence de l'utilisateur et valider le mot de passe, tu charges des informations d'un utilisateur depuis ta table "users". Et bien tu peux stocker ces informations dans un attribut de session. Soit par un bean, soit simplement via une map.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    merci pour ta réponse joel j'ai compris ce que tu veux dire mais je ne sais pas vraiment comment le mettre en code puisque c'est la premiere fois que j'esseye de réaliser cette tache, j'ai pas compris comment utiliser ce bean et map que tu viens de citez c'est comme du chinois pour moi

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bah sans ton code de validation, c'est difficile de faire du code que tu vas pouvoir mettre directement dans le tiens.

    Mais à supposer que pour valider ton utilisateur tu fais quelque chose 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
    19
    20
    21
    String username = /*paramètre nom d'utilisateur provenant du login*/
    String password = /* paramètre password */
    request.getSession().removeAttribute("applicationuser");
    boolean userconnected=false;
    // bon là normalement on devrait passer par un DAO, mais vu le reste du code que tu as déjà montré, j'imagine que tu fais un executeQuery pour récupérer un ResultSet...
    try(ResultSet result = getResultSet(username, password) /* on fait une requête du type select * from users where login= username and password = passwordhash */) {
       while(result.next()) {
           userconnected=true;
           Map<String, String> user = new HashMap<String,String>();
           user.put("id", String.valueOf( result.getInt( 1 ) ) );
           user.put("email", result.getString( 4 ) );
           user.put("name", result.getString( 6 ) + " " + result.getString( 7 ) );
           request.getSession().setAttribute("applicationuser", user);
       }
    }
    if ( userconnected ) {
          request.getRequestDispatcher( jspquandonestconnecté ).forward(request, response);
    }
    else {
          request.getRequestDispatcher( jspquandonestpasconnecté ).forward(request, response);
    }
    Tu peux aussi te faire une classe (un bean) :
    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
    19
    20
    21
    22
    public class User {
        private final int id;
        private final String name;
        private final String email;
        private User(int id, String name, String email) {
              this.id=id;
              this.name=name;
              this.email=email;
        } 
        public int getID() {
              return id;
        }
        public String getName() {
              return name;
        }
        public String getEmail() {
              return email;
        }
        public static User from(ResultSet result) {
           return new User( result.getInt( 1 ), result.getString( 6 ) + " " + result.getString( 7 ), result.getString( 4 ) );
        }
    }
    Du coup l'initialisation de l'attribut :
    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
    String username = /*paramètre nom d'utilisateur provenant du login*/
    String password = /* paramètre password */
    request.getSession().removeAttribute("applicationuser");
    boolean userconnected=false;
    try(ResultSet result = getResultSet(username, password) /* on fait une requête du type select * from users where login= username and password = passwordhash */) {
       while(result.next()) {
           userconnected=true;
           User user = User.from(result);
           request.getSession().setAttribute("applicationuser", user);
       }
    }
    if ( userconnected ) {
          request.getRequestDispatcher( jspquandonestconnecté ).forward(request, response);
    }
    else {
          request.getRequestDispatcher( jspquandonestpasconnecté ).forward(request, response);
    }

    Ensuite dans la JSP,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Map<String,String> user = (Map<String,String>)session.getAttribute("applicationuser");
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    User user = (User)session.getAttribute("applicationuser");
    Tu peux également l'utiliser, par la méthode findAttribute via le contexte de page (s'il dans la session, il est dans le contexte de la requête, et s'il est dans le contexte de la requête il est dans le contexte de la page. Ce qui veut dire qu'il est évaluable par EL aussi. Tu peux donc directement écrire pour afficher le nom de l'utilisateur :
    Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part
    ${applicationuser.name}

    ce qui correspond à :
    Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <%User user = (User)pageContext.findAttribute("applicationuser");
    if ( user!=null ) {
       %><%=user.getName()%><%
    }%>
    ou encore :

    Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <%User user = (User)pageContext.findAttribute("applicationuser");
    if ( user!=null ) {
       out.print(user.getName());
    }%>
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 115
    Points : 93
    Points
    93
    Par défaut
    Re-bonjour joel merci pour ta réponse et pour toute les informations que tu ma fourni je te remercie infiniment !

    Pour le code que tu m'as fourni j'ai bien compris à quelque detail près, on ce qui concerne le code de validation j'ai pas fais comme toi, j'ai juste mis une servlet qui test si le ndp et mdp son correcte, si oui il connecte l'utilisateur sinon il lui dit ndp ou mdp incorrecte, vinci ma servlet :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            String login1=request.getParameter("login1");
           String password1=request.getParameter("password1");
           String destination="/WEB-INF/Acceuil_proprietaire.jsp";
           Connection c=Cnx.getcnx();
           try {
               PreparedStatement st=c.prepareStatement("select * from users where login=? and password=? and role='proprietaire'");
               st.setString(1, login1);
               st.setString(2, password1);
               ResultSet res=st.executeQuery();
               if(res.next()){
                    System.out.println("connecter avec succes");
                   destination="/WEB-INF/Acceuil_proprietaire.jsp";
               }
                else {
                    request.setAttribute("msg1","Login ou mot de passe incorrecte !");
                    destination="/WEB-INF/Page_de_cnx.jsp";
                }  
     
     
        }   catch (SQLException ex) {
                Logger.getLogger(Authentification.class.getName()).log(Level.SEVERE, null, ex);
            }
     
           getServletContext().getRequestDispatcher(destination).forward(request, response);
        }
    }
    j'ai aussi mis une servlet qui créé l'utilisateur s'il n'est toujours pas créé la voici si ça peut aider :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
     
    @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            String cin=request.getParameter("cin");
            String adresse=request.getParameter("adresse");
            String email=request.getParameter("email");
            String telephone=request.getParameter("telephone");
            String nom=request.getParameter("nom");
            String prenom=request.getParameter("prenom");
            String login=request.getParameter("login");
            String password=request.getParameter("password");
            String role=request.getParameter("role");
            String sexe=request.getParameter("sexe");
            String datenaissance=request.getParameter("datenaissance");
            Connection c=Cnx.getcnx();
            try {
                PreparedStatement st=c.prepareStatement("insert into users values (null,?,?,?,?,?,?,?,?,?,?,?)");
                st.setString(1, cin);
                st.setString(2, adresse);
                st.setString(3, email);
                st.setString(4, telephone);
                st.setString(5, nom);
                st.setString(6, prenom);
                st.setString(7, login);
                st.setString(8, password);
                st.setString(9, role);
                st.setString(10, sexe);
                st.setDate(11, Date.valueOf(datenaissance));
                int res=st.executeUpdate();
     
                if(res>0){
                    request.setAttribute("msg","Votre compte a été créé avec succés !");
                }
                else {
                    request.setAttribute("msg","Création du compte échouée!");
                }  
     
            }
     
            catch (Exception ex){
                request.setAttribute("msg","Error");
                ex.printStackTrace();
            }
             getServletContext().getRequestDispatcher("/WEB-INF/Page_de_cnx.jsp").forward(request, response);
        }
    ce que j'ai pas compris dans ton code c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getSession().removeAttribute("applicationuser");
    pourquoi removeAttribute ? normalement nous on veux récuperer la session non ? et "applicationuser" j'ai pas compris ce que ça signifie.

    Désolé si je pose trop de question mais j'esseye de comprendre le mieux possible

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/01/2009, 13h41
  2. Réponses: 2
    Dernier message: 26/02/2008, 11h37
  3. [DOM] Comment récupérer la valeur d'une ligne cliquée dans un <DIV>?
    Par insane_80 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/07/2007, 16h11
  4. Réponses: 3
    Dernier message: 07/06/2007, 19h47
  5. comment récupérer la valeur d'un objet text dans crystal XI
    Par Dseb dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 27/07/2006, 10h07

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