Conception Uml App Web
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