Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== D3-TP03 : Mise en application - Projet "Gestion de clients" (3) : Ajout de traitement ====== <bootnote warning>Ce TP devra être terminé lundi 22/09</bootnote> ===== 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 Reprendre l'application **Test2Jakarta** de gestion des clients du TP2(copie du projet ou versioning avec Gitea). 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 <code>User admin = new User("Lovelace", "Ada");</code> * 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 appelé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. <badge>Jalon : Application fonctionnelle et schéma réalisé</badge> <bootnote learn> - 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 ? </bootnote> d3/tp03.txt Dernière modification : 2025/09/18 17:43de dthevenot