JEE 5 F.Pfister
2 institut eerie JEE – Une plateforme serveur Développement et exécution d'applications réparties Spécifications -> API Ejb, jsp, jaxp, servlet, etc... Implémentations de référence Implémentations tierces Architecture modulaire Des composants permettent la séparation des préoccupations Interfaces avec le SI existant jdbc, jndi, jms, jca
3 institut eerie JEE: architecture 3 tiers La partie cliente Ihm: desktop, web, applet La partie métier Modèle du domaine et règles de gestion La partie données Persistance
4 institut eerie JEE – les API (1) Composants servlet, jsp, ejb Services jdbc, jta, jndi, jca, jaas Communication rmi, jms, java mail
5 institut eerie JEE – les API (2)
6 institut eerie JEE – les API (3)
7 institut eerie JEE – environnement d'exécution Les composants s'exécutent dans des conteneurs Les conteneurs et les composants dialoguent via des API Les conteneurs reçoivent les requêtes et les distribuent aux composants
8 institut eerie Les conteneurs Conteneur web: exécute servlets, jsp Conteneur ejb: exécute les ejb Conteneur client: exécute les clients d'ejb Les implémentations de serveurs peuvent fournir un ou plusieurs conteneurs. Les composants doivent être déployés Les applications sont regroupées en archives Un fichier de déploiement accompagne ces archives
9 institut eerie JEE - le packaging Bibliothèque, application client Archive jar Web Regroupe les servlets et les JSP ainsi que les ressources necessaires à leur execution (classes, bibliothèques de balises, images,...) Archive war + web.xml EJB Regroupe les EJB et leur composants (classes) Archive jar + ejb-jar.xml Application d'entreprise Archive ear (regroupe plusieurs modules jar et war) + application.xml
10 institut eerie JEE – les conteneurs Le conteneur web C'est une implémentation des spécifications servlet et jsp L'implémentation de référence est Tomcat Le conteneur ejb C'est une implémentation des spécifications ejb L'implémentation de référence est Glassfish Il fournit de nombreux services aux ejb: Sécurité, transactions, cache, persistance, etc..
11 institut eerie Architecture JEE
12 institut eerie JEE – Les servlets Les serveurs web retournent, en mode statique, des documents html existants. Cependant, les applications web manipulent du contenu dynamique Une servlet est une classe java qui, en s'exécutant, crée ce contenu html dynamique, par exemple en se connectant à une base de données.
13 institut eerie JEE – Les servlets Propriétés des servlets Portabilité: implémentent une API Restent chargées en mémoire entre deux requêtes Instance unique (singleton) pour tous les clients Recoit la requête et retourne la réponse, ce sont des objets java S'exécutent au sein d'un serveur web (Tomcat, Jboss, etc...)
14 institut eerie JEE – les servlets Les méthodes d'une servlet
15 institut eerie JEE – les servlets Les méthodes d'une servlet
16 institut eerie JEE – les servlets Modèle mvc Analyse de la requête provenant de la vue Mise à jour du modèle Routage de la réponse vers la vue
17 institut eerie JEE – les jsp Du code java dans du code html Les pages sont compilées par le serveur et transformées en servlets Le client reçoit du code html pur (pas d'applet ni de composant activeX)
18 institut eerie JEE – les jsp La présence de code java mêlé à du code html est un inconvénient Le code java est remplacé par des tags tags de directives : ils permettent de contrôler la structure de la servlet générée tags de scripting: ils permettent d'insérer du code Java dans la servlet tags d'actions: ils facilitent l'utilisation de composants
19 institut eerie JEE – les tags Les tags de directive Les tags de scripting Les tags d'action
20 institut eerie JEE – la jstl JSTL = Java server pages Standard Tag Library Répond aux besoins récurrents dans le codage des jsp Tag de structure (itération, conditionnement...) Internationalisation Exécution de requête SQL Utilisation de document XML
21 institut eerie JEE – la jstl Un langage nomme EL (expression language) permet d'accéder aux objets java
22 institut eerie Les frameworks MVC Le modèle mvc
23 institut eerie Les frameworks MVC Struts (mvc2)
24 institut eerie Les frameworks MVC Java Server Faces
25 institut eerie Java Server Faces Mvc classique
26 institut eerie Java Server Faces Mvc basé sur des composants