Conception Uml App Web

download Conception Uml App Web

of 32

Transcript of Conception Uml App Web

CONCEPTION UML DAPPLICATION WEB

D.BOUZIDI

D.BOUZIDI

D.BOUZIDI

Conception UML dapplication Web

1

ObjectifsAdopter un cadre standard de dveloppement dapplication Web en java en respectant le modle MVC (Mdle-vue-Contrleur) Organiser les composants dune application Web Simplifier le dveloppement orient prsentation utilisation de JSTL Dcouvrir le framework dveloppement STRUTS

Conception UML dapplication Web

2

1

LE MODLE MVC

D.BOUZIDI

D.BOUZIDI

Conception UML dapplication Web

3

constatsDans un modle simplifi, la logique mtier, la logique d'affichage et la manipulation des requtes sont mlangs dans un mme composant.Architecture plaant du code Java dans des JSP ou du code HTML dans les servlets. Valable pour des petites applications

Maintenance trs dlicate pour une application Web Pages Web trs sophistiques Traitement complexe des donnes

Conception UML dapplication Web

4

2

Les objectifs du modle MVCDfinir une architecture trois niveaux Sparation entre les couchesPrsentation (interface): Vue Traitement (Logique applicative) : contrleur Accs aux donnes (sources de donnes): Modle.

Permet de pouvoir changer une couche sans avoir dimpact sur les autres couches : Ce modle nest conseiller que pour les moyennes et grandes applications.D.BOUZIDI

Conception UML dapplication Web

5

Le modle MVCDfinition claire dune sparation de tche :Un composant est charg de recevoir les requtes, Des composants ddis pour le traitement des donnes Des pages prparant la prsentation des rsultats.

Les interfaces entre les trois composants doivent tre bien conues pour crer moins de dpendancePlus facile d'en modifier un sans toucher aux deux autres.

Exemple :Avoir plusieurs affichages selon le type de mdias (ex. PC, PDA,etc.) sans aucune rpercussion sur les autres composants de lapplication

D.BOUZIDI

Conception UML dapplication Web

6

3

Le schma global du modle MVC

2

Envoi de requte la servlet

Contrleur (Servlet)

Modification des donnes dans le modle

Envoi de laffichage au client3 1

Transmission des requtes pour affichage

Modle (EJB/JB) Modle (EJB/JB) Modle (EJB/JB)

clientD.BOUZIDI

Vue (JSP) Vue (JSP) Vue (JSP)

4

Lecture des donnes dans le modle

Conception UML dapplication Web

7

Modle MVC : Le contrleurEntre de lapplication Reprsente la logique permettant la synchronisation entre les vues et le modle. Fonctionnement : Recevoir les requtes des clients, les traiter et les transmettent aux composants chargs de traiter les donnes. Rediriger ensuite vers les composants responsables de la vue. Les servlets sont des composants dont la structure est la plus adapte pour jouer ce rle (la servlet est conue pour recevoir les requtes des clients et leur retourner une rponse)D.BOUZIDI

Conception UML dapplication Web

8

4

Modle MVC : Les vuesElle reprsente linterface utilisateur, ce avec quoi il interagit ApplicationPostant des requtes au contrleur pour obtenir des donnes et les afficher dtermine par le contrleur et employe pour afficher les donnes Les pages JSP sont parfaitement adaptes la vue

puisque ces dernires accueillent de faon naturelle le balisage HTML.

D.BOUZIDI

Conception UML dapplication Web

9

Modle MVC : Le modleIl englobe la fois la logique mtier et les donnes sur lesquelles il opre Il dfinitLinteraction avec la base de donne et le traitement des donnes. La source des donnes de lapplication :base de donnes, fichiers plats, un annuaire, un service Web distant.

Les EJB sont les composants parfaits pour ce rle. Si l'application n'est pas trop consquente, dans une moindre mesure, Les JavaBeans sont largement suffisants pour ce rle.D.BOUZIDI

Conception UML dapplication Web

10

5

Modle MVCExemple :redirect

Login.jspsubmit

Authentif.jsp (Action+DB)

redirect

Formulaire.jspsubmit redirect

Sauvegarde.jsp (Action+DB) Quitter.jsp (Action)

D.BOUZIDI

Actions applicatives rparties sur Trois pages Les autres pages orientes prsentation Deux points dentre pour modifier un enregistrement :Conception UML dapplication Web 11

Modle MVCExemple :Authentif.jsp Login.jspreponse

requtes

reponse

Sauvegarde.jsp

Formulaire.jsp

Quitter.jsp Actions & DB D.BOUZIDI

Message.jsp Vues

reponse

Mettre un seule point dentreConception UML dapplication Web 12

6

Modle MVCMettre un seule point dentreLogin.jsprequtes reponse

reponse

Actions.jsp

Formulaire.jsp

Message.jsp Actions & DB D.BOUZIDI Vues

reponse

Conception UML dapplication Web

13

Modle MVCMettre un seule point dentrerequte

interprteur de requtes(Contrleur) Modle (Couche Mtier)

client

rponse

Gnration de vue

Slection de vue

D.BOUZIDI

Conception UML dapplication Web

14

7

Le vue

Vue/Modle/Contrleur

bases sur des technologies de production de contenu (jsp/XML, PDF, etc.) ne modifient pas les donnes peut tre interprte comme un processus de fabrication partir de donnes fournies en entre (pas de logique applicative)

Le modle la charge de reprsenter les donnes du domaine et de fournir les mthodes permettant l'accs et la modification indpendant de la logique applicative. Si une couche mtier existe, elle reprsente le modle. le modle est l'ensemble des services du systme d'information.

Le contrleurbas sur des technologies de traitement de requtes (servlet) responsable de la logique applicative transforme les requtes utilisateur en requtes mtier (vrification des donnes entrantes) 15 choisit la vue et Conception UML dapplication Web lui fournit les donnes D.BOUZIDI

Vue/Modle/ContrleurAction 1 Avant La vue Vue 1 Aprs rponse La vue

requtes

intercepteur

Action 2

Vue 2

Action 3 Contrle de la machine cliente, Authentification, Ouverture de session,

Vue 3

L'intercepteur traite toutes les requtes de type :

L'action traite une demande spcifique et choisie la vue L'tape Avant la vue traite la demande de vue :vrification, aiguillage en fonction du contexte D.BOUZIDI

Les Vues produisent les rsultats L'tape Aprs la vue assure la fermeture des ressources alloues (session, temps d'excution).Conception UML dapplication Web 16

8

Scnario de crationLes tapes suivre:

Dresser la liste des vues (maquette HTML),nom de la vue, type de donnes gnr (XHTML/XML/PDF), paramtres (nom, type, obligatoire/facultatif), requtes engendres par la vue,

Implantation et test des vues. Dresser la liste des requtesnom de la requte (URL), paramtres (nom, type, obligatoire/facultatif), contexte d'utilisation, vues utilises.D.BOUZIDI

Implantation et test des requtes.

Conception UML dapplication Web

17

Architecture gnraleclient Logique ApplicativeCouche contrleCONTROLEUR

DonnesCouche daccs aux donnes Source de donnes

Interface

Couche mtier Couche Prsentation

VUES

. . .JSP

MODELE

D.BOUZIDI

Conception UML dapplication Web

18

9

Modle MVC : ScnarioLogique applicative :La couche de contrle : est compos d'une ou plusieurs servlets qui assurent l'interface avec le client :le client fait une demande la couche contrle la fait excuter par la couche mtier selon le rsultat de cette excution, la couche contrle envoie telle ou telle vue en rponse au client.

La couche de contrle ne doit pas y trouver des classes qui devraient relever de la couche mtier. La couche mtier : regroupe les classes ncessaires la logique mtier.Elle est indpendante de l'interface avec l'utilisateur. Elle doit tre utilisable aussi bien avec une interface console, une interface web, une interface de client riche. Elle doit pouvoir tre teste en-dehors de l'interface web et notamment avec une interface console.

La couche daccs aux bases de donnes : regroupe les classes capables de fournir les donnes ncessaires la couche mtier. D.BOUZIDIreprsente souvent des donnes persistantes (BD, fichiers,...). Elle doit tre indpendant de la couche mtier et doit pouvoir tre test indpendamment de celle-ci (utilisable par exemple avec une application console indpendante)

La couche de prsentation : forme des pages JSP qui constituent les vues de l'applicationConception UML dapplication Web 19

CONTRLEUR : Transmission et inclusion des requtesContrleur dans une application MVC doit disposer d'un moyen pour transmettre les requtes aux composants chargs de l'affichage Ce moyen est fourni par un objet appel RequestDispatcher Cet objet permetde faire suivre une requte un autre composant Web (eq. dans les pages JSP) inclure la rponse d'un autre composant Web dans la rponse en cours de traitement (eq. dans les JSP)

Cet objet peut tre fourni par les objets :ServletRequest Mthode getRequestDispatcher(String chemin) ServletContext mthodes getNameDispatcher (String name) getRequestDispatcher(String chemin) D.BOUZIDI

Conception UML dapplication Web

20

10

Utilisation de requestDispatcherLobjet RequestDispatcher peut tre utilis pour :Faire suivre la requte une autre ressourcevoid forward(ServletRequest request, ServletResponse response) throws ServletException, java.io.IOEception Cette mthode confiant la cration de la rponse une ressource. La servlet appelante ne doit pas : Avoir dj crit des donnes dans la rponse Tenter dcrire des donnes dans la rponse aprs le retour de la mthode forward()

Pour inclure la rponse dune autre ressource dans celle de la ressource courantevoid include(ServletRequest request, ServletResponse response) throws ServletException, java.io.IOEception La servlet appelante peut crire des donnes dans la rponse avant ou aprs lappel de cette mthode D.BOUZIDI

Ajouter des paramtres la requte avant de faire appel aux mthodes forward() et include()void setAttribute(String nom, Object obj) void removeAttribute(String nom)Conception UML dapplication Web 21

Lobjet RequestDispatcherGrce lobjet RequestDispatcher :Le contrleur peut transmettre les requtes aux composants chargs de laffichage. Une servlet peut faire une requte un autre composant Web (i.e ) Inclure la rponse dun autre composant Web dans la rponse en cours de traitement (i.e ).

Il est possible dobtenir lobjet RequestDispatcher partir de :ServletRequest. ServletContext : reprsentant le contexte de lapplication dans lequel la servlet est excute.D.BOUZIDI

Conception UML dapplication Web

22

11

Lobjet RequestDispatcherLobjet requestDispatcher est disponible laide de la mthode getRequestDispatcher de lobjet ServletRequest :RequestDispatcher getRequestDispatcher(String chemin)

la ressource est dsigne par un chemin relatif ou absoluSi le chemin dune ressource (ex. une page jsp) commence par une barre oblique (/) alors le chemin est absolu par rapport au contexte de lapplication. Exemple : si le contexte de lapplication est /gRH alors /authentif.jsp dsigne la ressource se trouvant ladresse /gRH/authentif.jsp Si le chemin ne commence pas par (/) alors il sagit dun chemin relatif qui est interprt partir de la position du composant courant Exemple : /gRH/eServices/valider.jsp alors le chemin ajout.jsp dsigne la ressource /gRH/eServices/ajout.jsp

D.BOUZIDI

Conception UML dapplication Web

23

Lobjet RequestDispatcherLobjet requestDispatcher est disponible laide de lobjet ServletContext reprsentant le contexte de lapplicationToutes les servlets hritent de la classe GenericServlet La mthode getServletContext() de GenericServlet permet d'obtenir une rfrence l'objet ServletContext :ServletContext getServletContext()

D.BOUZIDI

Cette mthode peut tre appele partir de nimporte quelle servlet pour obtenir le contexte de lapplication Lobjet ServletContext dispose de deux mthodes RequestDispatcher getNameDispatcher(String nom) RequestDispatcher getRequestDispatcher(String chemin) La ressource est dsigne soit par un nom : doit tre identique au nom utilis dans le sous lment de llment du descripteur ou un chemin : doit commencer par / et est interprt relativement au contexte de lapplication

Conception UML dapplication Web

24

12

La mthode getRequestDispatcher de lobjet ServletContextExemple : Conges /WEB-INF/Vues/conges.jsp

Lappel de la mthode :RequestDispatcher getNameDispatcher("Conges")

Retourne un objet RequestDispatcher pour la ressource /gRH/WEB-INF/Vues/Conges.jsp

D.BOUZIDI

Conception UML dapplication Web

25

authentifier /WEB-INF/authentification.jsp Description des pages permettant laccs facile au controle niveau du contrleur laide /WEB-INF/controleIdentite.jsp du nom logique Accueil myPack.CTLAccueil Dfinition du contrleur Accueil de lapplication /eServices/* /eServices/authentifier Le joker (*) permet de mettre en uvre la couleurFond technique du chemin complmentaire. FFFF66 /nomContrleur/paramtreAPasser Cette infos est rcupre par getInfoPath

Web.xml

D.BOUZIDI

de lobjet requestConception UML dapplication Web

26

13

CONTRLEURpublic class CTLAccueil extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String liaison = request.getPathInfo(); liaison = liaison.substring(1); if (liaison.equals("choix")) { String allerVers = request.getParameter("login"); if (allerVers.equals("anonyme")) getServletContext().getNamedDispatcher("home").forward(request, response); else getServletContext().getNamedDispatcher("valider").forward(request, response); } else getServletContext().getNamedDispatcher(liaison).forward(request, response); } }

D.BOUZIDI

D.BOUZIDI

Conception UML dapplication Web

27

LES VUES UTILISATION DE JSTL

Conception UML dapplication Web

28

14

LES VUES : UTILISATION DE JSTLBibliothque Mise en place partir de la version 1.1 des JSP Spcification propose par SUN pour une librairie de tags standard :Spcifie les bases de la librairie Laisse l'implmentation libre

Objectif de Java Standard Tag LibraryDvelopper des pages Web en utilisant des balises XML Amliorer la lisibilit de la page JSP Simplifier le travail des designers de pages Web (couche prsentation) en vitant la complexit du code Java

Les versions :La JSTL 1.0 utilisation dun conteneur JSP 1.2 (J2EE 1.3). La JSTL 1.1 utilisation dun conteneur JSP 2.0 (J2EE 1.4). D.BOUZIDI

Conception UML dapplication Web

29

JSTL : Java Standard Tag LibrarySe base sur l'utilisation des Expressions Languages en remplacement des scriptlets Java la JSTL 1.0 : implmentation de base intgrant un interprteur d'EL La JSTL 1.0 : implmentation nintgrant pas linterprteur dEL la gestion des EL est laisse au moteur JSP La JSTL 1.1 : se base sur les JSP 2.0 qui intgre un moteur d'EL, et ajoute d'une nouvelle librairie de fonctions ELLib URI Prfixe Dclaration

core Format XML SQL

http://java.sun.com/jstl/core http://java.sun.com/jstl/fmt http://java.sun.com/jstl/xml http://java.sun.com/jstl/sql http://java.sun.com/jstl/fonctions

c fmt x sql fn

uri="http://java.sun.com/jstl/core"

uri="http://java.sun.com/jstl/sql" uri="http://java.sun.com/jstl/fn"30

D.BOUZIDI

Fonctions

Conception UML dapplication Web

15

Dclaration

JSTL : Core library

Quelques balises de Core library : gestion des variables de scopebalise Rle Attributs Exemple

Afficher une expression

value : L'expression valuer et afficher. default : Valeur afficher si l'expression value est null (dfaut : ""). escapeXml : Dtermine si les caractres , &, ', " doivent tre remplacs par leurs codes respectifs : , &, ', " (dfaut : true). value : L'expression valuer et afficher. var : Nom de l'attribut qui contiendra l'expression dans le scope. scope : Nom du scope qui contiendra l'attribut var (page, request, session ou application) target : L'objet dont la proprit dfinit par property sera modifie. Il doit correspondre soit un bean, soit un objet de type java.util.Map. property : Nom de la proprit qui sera modifie.

Inconnu ${uneExpression} Mettre ${expression} dans l'attribut "varName" de la session Changer la proprit "name" de l'attribut "varName" de la session

Dfinir une variable de scope ou une proprit

D.BOUZIDI

Conception UML dapplication Web

31

JSTL : Core libraryQuelques balises de Core library : gestion des variables de scopebalise Rle Attributs Exemple

Supprimer une variable de scope

var : Nom de la variable scope supprimer. scope : Nom du scope qui contiendra l'attribut var (page, request, session ou application)

Supprimer lattribut varName de la session