Ceci est une ancienne révision du document !
D3-TP03 : Mise en application - Projet "Gestion de clients" (3) : Ajout de traitement
Pré-requis :
- Connaître les principes du modèle MVC appliqués à Jakarta EE
- Connaître le fonctionnement des servlets et des vues
- Savoir gérer les attributs et les paramètres d'une requête
- Avoir terminé le projet Test2JakartaEE du TP02
Nous allons ajouter un traitement à notre projet Test2JakartaEE : en fonction du pseudo saisi, on doit reconnaître s'il s'agit de l'administrateur du site.
I. Travail préliminaire
- 1. Modifier la jsp accueilVue.jsp :
La balise form aura comme attributs : method=“POST” et action=“authentification”
- 2. Créer une nouvelle servlet AuthentifServlet.java, elle sera accessible sur le mot authentification
- 3. Tester. Que se passe-t-il ? Comment l'expliquez-vous ?
II. Création de la couche modèle
La couche modèle doit gérer les données métier ainsi que les traitements.
A. Gestion des données métier
La gestion des données est effectuée par le biais de classes particulières : les java Beans.
Les java Beans sont des classes publiques dont les attributs sont privés et qui disposent au moins d'accesseurs et de mutateurs.
Afin de tester les pseudo et mot de passe saisis, nous allons créer un java Bean User. Au niveau du répertoire SourcePackage, créer la classe Java User dans le package com.Test.beans
Cette classe comprendra
- 2 attributs : pseudo et motDePasse
- les accesseurs, les mutateurs, un constructeur avec les attributs en paramètres,
- la méthode equals qui comparera les nom et prénom
B. Les traitements
Ici le traitement se limitera à contrôler les 2 zones saisies par l'utilisateur au niveau du formulaire, en les comparant au pseudo et mot de passe de l'administrateur. Pour cela, nous allons créer une nouvelle classe Java dans le répertoire SourcePackage : AuthentifForm dans un dossier com.test.forms. Cette classe sera chargée de contrôler les données du formulaire
Elle comprendra :
- Un attribut : resultat de type String
- Un getter et un setter
- La méthode controlerAdmin
- Avec un paramètre : HttpServletRequest request
- qui retourne un booléen indiquant si les pseudo et mot de passe saisis correspondent à ceux de l'administrateur
Pour des raisons de simplification, cette méthode :
- créera l'objet admin de type User comprenant les pseudo et mot de passe de l'administrateur
User admin = new User("Lovelace", "Ada");
- créera l'objet userSaisi de type User également avec le nom et le prénom transmis par l'objet request
- Puis comparera admin avec userSaisi, mettra à jour l'attribut resultat (“Vous êtes administrateur” ou “Vous n'êtes pas administrateur” et retournera le booléen correspondant.
III. Modification de la servlet AuthentifServlet
Après validation de l'utilisateur, la méthode doPost de la servlet sera exécutée. Il faut donc modifier cette méthode afin qu'elle contrôle s'il s'agit de l'administrateur en sollicitant la couche modèle, c’est-à-dire la classe AuthentifForm. Un objet de type AuthentifForm sera créé, la méthode controlerAdmin sera applelée, puis l'objet créé sera transmis à la jsp par l'intermédiaire d'un attribut.
IV. Modification de la jsp accueilJSP
La vue affichera le message permettant de savoir si la personne identifiée est l'administrateur. Ajouter l'affichage de ce message après le message de bienvenue personnalisé.
V. Synthèse
Reprendre le schéma représentant le modèle MVC et positionner chaque classe du projet au niveau de ce schéma.
Jalon : Application fonctionnelle et schéma réalisé
A Savoir:
- De quoi est composée la partie modèle ?
- Qu'est-ce qu'un bean ?
- Quelles méthodes doivent être présentes au niveau d'un bean ?
- Comment appeler un bean depuis une classe de traitement ?
- Comment appeler la classe qui effectue le traitement depuis une servlet ?
- Comment la servlet passe-t-elle le résultat d'un traitement à la vue ?
- Quels types de données une servlet peut-elle passer à une vue ?