30/11/2020 1 Cours Architectures n-tiers et orientées Architectures n-tiers et

30/11/2020 1 Cours Architectures n-tiers et orientées Architectures n-tiers et orientées services NAHLA NAHLA HADDAR HADDAR MAÎTRE ASSISTANT, ISIM MAÎTRE ASSISTANT, ISIM-SFAX, UNIVERSITÉ DE SFAX SFAX, UNIVERSITÉ DE SFAX MEMBRE DU LABORATOIRE MIRACL MEMBRE DU LABORATOIRE MIRACL AUDITOIRES: LFIIM3, LATMW3 AUDITOIRES: LFIIM3, LATMW3 © © 2018 2018-2021 2021 Chapitre 3 – Architecture Java EE (Partie 3) COURS ARCHITECTURES N-TIERS ET ORIENTÉES SERVICES COURS ARCHITECTURES N-TIERS ET ORIENTÉES SERVICES DR. NAHLA HADDAR OUALI AUDITOIRES: LFIIM3, LATMW3 © © 2018-2021 30/11/2020 2 Plan de cette partie 2 Architecture JEE et modèle MVC Architecture JEE en pratique Complément: Gestion des sessions 3 Architecture JEE et modèle MVC CHAPITRE 3 – ARCHITECTURE J2EE (JSP/SERVLET) 30/11/2020 3 Paradigme MVC (1/2) 4 Architecture MVC : Model View Controller Objectif : Organiser une application interactive en séparant o Les données manipulées o La représentation visuelle , l’ergonomique de l’interface graphique Modèle Vue o Les traitements de l’application Consiste à séparer les objets graphiques des objets métier (les données manipulées), afin de pouvoir les faire évoluer indépendamment et les réutiliser. Contrôleur Paradigme MVC (2/2) 5 www.isims.rnu.tn Nouveautés clique HTTP HTTP 1 Sélection des 6 2 objets de type NOUVEUTE 3 4 HTML 5 Accès aux valeurs des Propriétés 30/11/2020 4 Architecture JAVA EE (1/2) 6 Client Serveur d’applications Serveur de base de données Client Serveur d’applications données Contrôleur servlet Traitements Requête 1 2 4 3 5 Base de données Entités beans 1 2 3 4 5 Ex: Vector<User> ListeUsers Modèle (Java Bean) Vue JSP 4 Réponse 5 données 3 4 5 Ex: Table User Classe bean: User <table><% for(int i=0; i<ListeUsers.size(); i++){ %> <tr><% User u=(User) ListeUsers.get(i);%> <td><%=u.getFName()%></td> … </tr> <% } <%> Architecture JAVA EE (2/2) Dans le modèle MVC, le cycle de vie d’une requête est le suivant: 7 Dans le modèle MVC, le cycle de vie d’une requête est le suivant: 1. l'utilisateur web émet une requête HTTP au serveur en cliquant sur un lien ou sur un bouton. Cette requête est prise en charge par le contrôleur (servlet). 2. Le contrôleur analyse la requête, exécute les traitements nécessaires et récupère le modèle, c'est-à-dire les entités beans. 3. Le contrôleur sélectionne alors la JSP qui sera en charge de la construction de la réponse et lui transmet les entités beans contenant construction de la réponse et lui transmet les entités beans contenant les données à afficher. 4. La JSP construit la réponse en faisant appel aux accesseurs des entités beans. 5. La réponse HTTP est transmise au navigateur qui l'affiche sous forme de page web. 30/11/2020 5 8 Architecture JEE en pratique CHAPITRE 3 – ARCHITECTURE J2EE (JSP/SERVLET) Exemple: Horaires des trains 9 exception SQLException Les vues 30/11/2020 6 Explication de l’exemple 1. Le client demande à l’application d’afficher la liste des trains et leurs horaires 10 1. Le client demande à l’application d’afficher la liste des trains et leurs horaires 2. La requête est invoquée sur la servlet TrainController.java 3. Le contrôleur fait appel à la couche métier pour effectuer des traitements sur la table Train de la BD, cette couche contient: 1. Un Java Bean Train 2. Une classe singletonConnection: contient une méthode qui retourne un objet Connection unique vers la base de données, quelque soit le nombre de machines clientes connectées au serveur 3. Une classe ModelImp: contient une méthode qui permet de retourner la liste de trains dans la table Train de la BD Une classe ModelImp: contient une méthode qui permet de retourner la liste de trains dans la table Train de la BD 4. Le contrôleur récupère la liste des trains résultante à partir de l’exécution du modèle 5. Le contrôleur fait un forward : 1. Si la liste n’est pas vide, il envoie la requête vers HorairesTrain.jsp, et il y associe un vecteur ListeTrain contenant la liste des trains 2. Sinon, il envoie la requête vers HoraireDefaultTrain.jsp, et il y associe un objet de type Train nommé DefaultTrain. 6. La vue récupère et affiche les résultats La BD Soit une base de données derby nommée BDTrain qui contient la 11 Soit une base de données derby nommée BDTrain qui contient la table : o Train (numTrain, villeDep, villeArriv, heureDep) : les colonnes de la table sont de type String. Exemple de données dans la table Train: 30/11/2020 7 Le Bean Train 12 Connexion à la BD 13 30/11/2020 8 Implémentation du modèle 14 Implémentation du contrôleur 15 30/11/2020 9 Page HorairesTrains.jsp 16 Page HoraireDefaultTrain.jsp 17 30/11/2020 10 18 Gestion des sessions CHAPITRE 3 – ARCHITECTURE J2EE (JSP/SERVLET) Gestion des sessions 19 Objectif : être capable de "suivre" l'activité du client sur plusieurs pages Cette fonctionnalité est supportée par l’objet HttpSession Une Servlet retrouve le HttpSession de la requête en cours, par un appel à request.getSession(), alors qu’une JSP le retrouve dans l’objet session. l’objet session. Dans la servlet: o HttpSession session = request.getSession() : retourne la session courante pour cet utilisateur ou une nouvelle session 30/11/2020 11 Gestion des sessions Ranger un objet dans une session: 20 Ranger un objet dans une session: session.setAttribute("ObjectName", myObject); o Exemple: Vector produits= new Vector(); session.setAttribute("produits", produits); Récupérer un objet associé à une session: ObjectType myObject = (ObjectType) session.getAttribute("ObjectName"); ObjectType myObject = (ObjectType) session.getAttribute("ObjectName"); o Exemple: Vector panier=(Vector) session.getAttribute("produits"); Supprimer un Objet associé à une session: session.removeAttribute(ObjectName); Vider une session: session.invalidate(); Gestion des sessions: exemple avec Servlet Servlet qui calcule le nombre de visite d’un internaute durant sa session. 21 Servlet qui calcule le nombre de visite d’un internaute durant sa session. 30/11/2020 12 Gestion des sessions: Même exemple en JSP 22 uploads/Ingenierie_Lourd/ cours-architecture-n-tiers-chap3-partie3.pdf

  • 37
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager