J2EE
A.-E. Ben Salem
LRDE and LIP6
09 Octobre 2011
1 / 15
Plan
1 J2EE
2 Architecture Client/Serveur HTTP
3 Différence entre Web Statique et Web Dynamique
4 Web Dynamique avec un Serveur d’applications J2EE
5 Les pages JSP
6 Déploiement d’une application dans les Conteneurs J2EE
2 / 15
J2EE
I J2EE est l’acronyme de Java 2 Entreprise EditionI renommée Java EE, depuis sa version 5.I basée sur J2SE : les API de base de JavaI c’est une plate-forme pour le d’eveloppement et l’exécution
d’applications distribuées :I Développement : à l’aide d’un ensemble de bibliothèques logicielle
(API : Servlet 3.0, JSP 2.2, EJB 3.1, JDBC,. . . ).I Exécution : déploiement dans un serveur d’application (Tomcat,
JBoss WebSphere, Weblogic,. . . ).I orientée client/serveur
3 / 15
Architecture Client/Serveur HTTP
I Client : navigateur webI Serveur : serveur HTTPI Protocole de
communication : HTTPI Requête : URL pour
désigner une ressourceI Port : 80 (8080 Tomcat)I Réponse : page HTML
http://bet-nafet.ma/expert/ 4 / 15
Web Statique
I Serveur HTTP statique (Apache, IIS, . . . )I Contenu statique : la ressource demandée est un fichier (page
html statique, fichier txt, pdf, images, . . . )I un site est associé à un dossier dans le système de fichiers
http://grigoras.perso.enseeiht.fr/ens/asi/j2ee/ 5 / 15
Web Dynamique
I Contenu dynamique :I Page HTML généré dynamiquement,I éventuellement à partir d’informations provenant d’une BD.
I Java (J2EE), PHP, Perl, ASP, C# (.NET)
http://grigoras.perso.enseeiht.fr/ens/asi/j2ee/ 6 / 15
Web Dynamique avec un Serveur d’applications J2EE
I Serveur HTTP + Serveur d’applications (processus de génération)I Serveur d’applications J2EE contient :
I éventuellement un serveur HTTP interne (Tomcat embarque unserveur HTTP Apache)
I Conteneur Web : exécution des Servlets et/ou JSPs permettant degénérer dynamiquement des pages HTML
I Conteneur EJB...http://grigoras.perso.enseeiht.fr/ens/asi/j2ee/ 7 / 15
JSP
I Une page JSP est un fichier au format XHTMLI Une JSP mélange deux types de code :
I Partie statique : code HTMLI Partie dynamique : code Java exécuté par le serveur dont le
résultat est injecté dans la page html transmise au clientI L’écriture d’une JSP est basée sur les balises suivantes :
I tags HTML (<p>, <br>, <h1>. . . )I tags JSP : transformés en code Java par le Serveur (par exemple le
tag “<c :forEach>” pour écrire une boucle)I scriptlets : code Java écrit dans un tag spécial “<%>”
8 / 15
Scriplets
I Du code Java : <% code Java %>I Des évaluations d’expression : <%= expression %>, Par exepmle :
<%= nom_de_variable %> affiche le contenu de la variableI Des variables prédéfinies
9 / 15
Envoi de paramètres dans une Requête HTTP
Deux méthodes pour ajouter des paramètres dans une RequêteHTTP :
I Requêtes de type GET : paramètres inclus dans l’URLhttp://serveur/contexte/ressource?param1=valeur1¶m2=valeur2
I Requêtes de type POST : paramètres inclus dans les entêtesHTTP, nécessite l’utilisation d’un formulaire :
<FORM METHOD=POST ACTION="ressource"><p>Entrer les valeurs des paramètres :</p><p>p1 : <INPUT TYPE=TEXT NAME="param1"></p><p>p2 : <INPUT TYPE=TEXT NAME="param2"></p><INPUT TYPE=SUBMIT VALUE="envoyer"></FORM>
I Reception des paramètres côté Serveur J2EE :Code Java à ajouter à une JSP : request.getParameter("param1");
10 / 15
Architecture de J2EE
http://info-j2ee.blogspot.fr/2007/12/blog-post.html 11 / 15
Architecture multitiers J2EE
L’architecture d’une application se d’ecoupe en :I Couche Client (dialogue avec l’utilisateur) :
I Léger : navigateur Web (html-HTTP), . . .I Lourd : Application java (Swing), Applet,. . .I client Web Service (xml-HTTP)
I Couche Présentation (Conteneur WEB) :I ServletI JSP (Struts, JSF, . . . )
I Couche Métier (Conteneur EJB) :I POJO (Hibernate, Spring)I EJBI Web Service
I Couche Données :I Base de Données (Oracle, DB2, . . . )I XMLI ERP (Cobol, . . . )
12 / 15
Les Conteneurs d’un Serveur d’applications J2EE
I Conteneur Web, composé de :I un moteur de Servlets pour exécuter les ServletsI un moteur de JSP pour exécuter les JSPsI un serveur HTTP (ou un “plug in” d’un serveur HTTP externe :
Apache, IIS, ...)I conteneur d’EJB : pour exécuter les EJBI Un serveur d’application peut fournir :
I uniquement un conteneur Web : TomcatI uniquement un conteneur d’EJB : JBoss, Jonas, . . .I les deux Web et EJB : Websphere, Weblogic, . . .
13 / 15
Déploiement d’une application dans les Conteneurs
Pour déployer une application dans un conteneur, il faut lui fournirdans une archive deux éléments :
I les fichiers de l’application : Servlets, JSPs, classes compilées(.class), ressources statiques (pages HTML statiques, images,CSS, pdf, txt, . . . ), . . .
I un fichier XML descripteur de d’eploiement : précise au conteneurla configuration(les options) pour exécuter l’application
Chaque conteneur possède son propre format d’archive :Conteneur Contenu de l’archive Extension de
l’archiveDescripteur ded’eploiement
Web Servlets, JSP, ressources . . . .war web.xmlEJB EJB et leurs classes .jar ejb-jar.xmlles 2 : Web + EJB .war et .jar .ear application.xml
14 / 15
Archives à déployer dans les Conteneurs
http://www.jmdoudoux.fr/java/ 15 / 15