INFORMATIQUE Par Dr. Samia GAMOURA-CHEHBI Développement d’application avec Java – J2EE via WSAD Les mécanismes avancés Les classes du JDK Développement d’applications Web Architecture J2EE Eléments de l’architecture J2EE Test et debug Déploiement Mise en œuvre avec le pattern MVC maj 2016
112
Embed
Développement d’application avec Architecture J2EE Java … · J2EE = Java 2 Platform Enterprise Edition ... Container d’ applet applet Architecture J2EE Les containers JSP servlet
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
INFORMATIQUE� Par Dr. Samia GAMOURA-CHEHBI
Développement
d’application avec
Java – J2EEvia WSAD
Les mécanismes avancésLes classes du JDKDéveloppement d’applications Web
Architecture J2EEEléments de l’architecture J2EETest et debugDéploiement
� le développement� le déploiement� l'administration
d'applications d'entreprise► Une plate-forme standard hébergeant les applications► Un modèle de développement d'application► Un ensemble de tests de compatibilité permettant de
vérifier qu'un produit implémentant J2EE est conforme à la plate-forme standard
► Une implémentation de référence
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 3
Architecture J2EE
Modèle de développement
Client
Serveur d'application 3ème tiers
Objets et logiquemétier
contrôleurd'interaction(Servlet,JSP)
page d'affichage
JSP
requête
réponse
forward javabean
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 4
L’architecture J2EE
Composantes du framework (2)
Java 2 SDK Standard Edition
CORBA RMI SGBD Naming/Directory
Ap
ple
tsJ
ava
be
an
s
Co
nn
ec
tors
outils
Container
EJBs
JSPs
Servlets
Transactions
Messaging Mail
modèle de développement
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 5
Container d’ applet
applet
Architecture J2EE
Les containers
servletJSP
Container web
JN
DI
JTA
JM
SJ
DB
CR
MI/IIO
PJ
ava
Ma
il
Container EJB
JN
DI
JTA
JM
SJ
DB
CR
MI/IIO
PJ
ava
Ma
il
EJB
SGBD
Container d’appli. cliente
JN
DI
JTA
JM
SJ
DB
CR
MI/IIO
PJ
ava
Ma
il
Appli cliente J2SE J2SE
J2SE
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 6
L’architecture J2EE
Les services
►HTTP 1.1 ►JDBC
►HTTPS ►JMS
►JTA ►JavaMail
►RMI/IIOP ►JNDI
►Java IDL ►JavaBeans Activation
►JSP ►JDK
►Servlet
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 7
L’architecture J2EE
Services supportés par WSAD
►L’ensemble des services J2EE
►Des assistants sont proposés pour faciliter la prise en main de certaines APIs
►Un environnement de test des applications J2EE
►Outil de déploiement
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 8
L’architecture J2EE
Mise en œuvre avec WSAD
►Créer un projet►Développer les composants :
� Web (HTML, JSP, Javascript)� Applicatifs (JSP, servlet)� Métier (EJB)
►Packager►Déployer
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 9
L’architecture J2EE
WSAD - Les projets
►3 types :� Projet «Web » : Fichier->Nouveau->Projet…->WebProjet Web dynamique
� Projet « Application d’entreprise »Fichier->Nouveau->Projet…->J2EEProjet d’application d’entreprise
� Projet « EJB »Fichier->Nouveau->Projet…->EJBProject EJB
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 10
L’architecture J2EE
WSAD - Création d’un projet Web►Création de toute l’arborescence projet
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 11
L’architecture J2EE
WSAD : Création d’un projet Web (1)
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 12
L’architecture J2EE
WSAD : Création d’un projet Web (2)
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 13
L’architecture J2EE
WSAD : Création d’un projet Web (3)
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 14
L’architecture J2EE
WSAD : Création d’un projet Web (4)
INFORMATIQUE� Par Dr. Samia GAMOURA-CHEHBI
Les mécanismes avancésLes classes du JDKDéveloppement d’applications Web
Architecture J2EEEléments de l’architecture J2EETest et debugDéploiement
Mise en œuvre avec le pattern MVCEléments d’architecture
Développement
d’application avec
Java – J2EE
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 16
Architecture J2EE
Servlets
► Servlet : Server-side applet
► Programme Java exécuté sur un serveur multi-threadé (comme un serveur Web)� Peut-être chargé localement ou dynamiquement à
travers le réseau
� Retourne (en général) une page HTML de résultat� génération dynamique de pages HTML
� Permet d’étendre les fonctionnalités des serveurs Web HTTP (un peu comme les scripts CGI)
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 17
Architecture J2EE
Servlets : Caractéristiques
► Mécanisme de sécurité intégré� appel dans le contexte du serveur� limitation d'accès aux servlets� peut s'intégrer dans une architecture Single Sign
On (SSO)
► Optimisation des performances� s'exécute dans le contexte du serveur
d'application� s'exécute et reste en mémoire� pré-chargement et chargement à la demande� multithread
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 18
Architecture J2EE
Servlets : API
► Packages� Javax.servlet : Classes
génériques � GenericServlet, � ServletException,E
� Javax.servlet.http : classes spécifiques pour le protocole HTTP
paramètres saisis par l’utilisateur (pages dynamiques)
►Principes� aucune interface graphique� les pages HTML saisissent les paramètres
et présentent les résultats
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 24
Architecture J2EE
HttpServlet (2)
► Classe javax.servlet.http.HttpServlet � hérite de la classe Servlet
� facilite le traitement particulier des serveurs Web
► Remplacement avantageux de la méthode service () de la classe mère par l'une ou l'autre des méthodes suivantes :� doGet () pour traiter des requêtes HTTP de type GET
� doPost () pour traiter des requêtes HTTP de type POST
� N.B. : par défaut, ces méthodes renvoient uncode d’erreur, HTTP_BAD_REQUEST
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 25
Architecture J2EE
HttpServlet : formulaire
►L’approche :� Construction du formulaire HTML
d’interrogation
� La servlet effectue la requête et retourne le résultat
►La méthode doGet() ou doPost() est choisie selon le mode d’envoi du formulaire HTML qui exécute la servlet
� Transmet le traitement de la requête à une autre ressource du serveur (JSP, Servlet, html)
� include(ServletRequest req, ServletResponse res)� Inclut le contenu du traitement de la requête (JSP, Servlet,
html) à la réponse courante
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 41
Architecture J2EE
Servlets : Mise en œuvre WSAD (1)
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 42
Architecture J2EE
Servlets : Mise en œuvre WSAD (2)
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 43
Architecture J2EE
Servlets : Mise en œuvre WSAD (3)
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 44
Architecture J2EE
Servlets : Mise en œuvre WSAD (4)
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 45
Architecture J2EE
Servlets : Mise en œuvre WSAD (5)
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 46
Architecture J2EE
JSP : Principe► Une page JSP est un document texte
� Qui décrit comment traiter une requête pour générer une réponse
� La description contient un modèle de donnée et des actions dynamiques
► Le contenu délivré au client est composé� de contenu statique ou non-personnalisé� de contenu personnalisé (adapté au client et ses requêtes)
► Du point de vue développement� Les fichiers JSP contiennent la présentation� Les traitements métiers sont réalisés par des servlets; des
javabeans ou des EJBs
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 47
Architecture J2EE
JSP : Invocation
client
serveur web
&
moteur JSP
Fichier JSP
Composant
requête
requête
requête
répons
e
répons
e
répons
e
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 48
Architecture J2EE
JSP est une servlet► Une page JSP est une servlet
� Le cycle de vie est identique► La servlet générée étend la classe HttpJspPage disposant des méthodes :� jspInit(),� _jspService(),� jspDestroy()
► Procédure d’initialisation� ServletConfig est défini par le serveur JSP� Appel de jspInit()
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 49
Architecture J2EE
JSP : Modèle d’exécution► Compilation du fichier
JSP en Servlet � Le fichier source .jsp
est analysé
� Le code source .java de la Servlet JSP est généré
► Exécution de la servlet� La servlet est
compilée en .class, chargée, puis exécutée
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 50
Architecture J2EE
JSP : structure de la page
► Page JSP = tags HTML + code Java► Eléments
� <% code %> ou <jsp:scriptlet> : traitement Java� <%= expr%> ou <jsp:expression> : expressions (résultat inséré dans
le code HTML généré)� <%! decl %> ou <jsp:declaration> : déclaration Java� <%@ directives %> ou <jsp:directive> : directives Java� les actions : <jsp:include>, <jsp:useBean>, …� exemple :
►Principe de définition de composants ►Les propriétés sont accessibles en
respectant une API particulière►Trois types :
� Classe Java avec règles élémentaires sur les accesseurs
� JavaBean� EJB
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 66
Architecture J2EE
Les Beans : accès servlet
►En général accessible à partir de l’objet session (HttpSession)� getAttribute
� setAttribute
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 67
Architecture J2EE
Les Beans : accès JSP
►Utilisation des balises standard :
<jsp:useBean>: accès à un bean
<jsp:setProperty> : modification
d’une propriété
<jsp:getProperty> : accès à une
propriété d’un Bean
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 68
Architecture J2EEAction : exemple3
►Exemple :<-- utilisation du bean compteclient --><jsp:useBean id=“compteclient” scope=“request” class=“compteclient.class”>
<-- Le formulaire saisi par le client contient les paramètresid et password positionnés tel quel dans le bean --><jsp:setProperty name=“compteclient” property=“*”/>
</jsp:useBean>
<-- affichage du solde du compte client -->Le solde sur le compte est <jsp:getProperty name=“compteclient”property=“solde” /><br>
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 69
Architecture J2EE
Directive « taglib »
►Définition d’une instruction de traitement dans la page JSP : balise XML
►Permet de masquer le code Java associé
►Bibliothèque de composants de présentation
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 70
Architecture J2EEExtension de balise : catégories
► Trois catégories d’extension de balise� Simple : ne manipule pas le contenu de la balise
� Exemple : Afficher une date � Iteration : peut réévaluer (sans le manipuler) le contenu de la
balise� Exemple : faire une boucle
� Body : réévalue et manipule le contenu de la balise� Exemple : pour les traitements complexes
<<interface>>
tag
<<interface>>
IterationTag
<<interface>>
BodyTag
TagSupport
BodyTagSupportimplémente
implémente
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 71
Architecture J2EE
Extension de balise : fonctionnement
► Les taglibs individuels sont implémentés par des classes java
► Un fichier XML de type TLD (Tag Library Descriptor) définit le mapping entre les noms de taglibs et les librairies
► Les classes Java et les TLD peuvent être déployés individuellement ou par fichier JAR
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 72
Architecture J2EEExtension de balise : mécanisme
► Les déclarations de différents fichiers� La page jsp déclare l’URI du taglib à utiliser� Le fichier web.xml associe
un fichier TLD à l’URI� Le fichier TLD détermine
la classe à utiliser� Le contenu de la page
peut être généré
Web.xml
Page jsp
Taglib.tld
Tagclass
Traduction du jsp
servlet
� Par Dr. Samia GAMOURA-CHEHBI INFORMATIQUE
Page 73
Architecture J2EE
Extension de balise : utilisation► Les tags sont mis à disposition dans la page avec la