0% ont trouvé ce document utile (0 vote)
56 vues49 pages

Introduction à l'architecture JEE

Le document présente l'architecture des applications web JEE, en détaillant les composants tels que les servlets, JSP, et les modèles de conception comme MVC et DAO. Il explique également le rôle du frontend et du backend, ainsi que l'utilisation des bibliothèques comme JSTL et Expression Language pour simplifier le développement. Enfin, il aborde les concepts de couplage fort et faible pour une meilleure gestion des dépendances dans les applications.

Transféré par

wided ben ounis
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
56 vues49 pages

Introduction à l'architecture JEE

Le document présente l'architecture des applications web JEE, en détaillant les composants tels que les servlets, JSP, et les modèles de conception comme MVC et DAO. Il explique également le rôle du frontend et du backend, ainsi que l'utilisation des bibliothèques comme JSTL et Expression Language pour simplifier le développement. Enfin, il aborde les concepts de couplage fort et faible pour une meilleure gestion des dépendances dans les applications.

Transféré par

wided ben ounis
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Chapitre 1

Architecture JEE
Servlet JSP EL JSTL
MVC, DAO

1
Introduction

Utilisateur

Requête HTTP HTML

Serveur HTTP

Serveur d’Application
Conteneur
Apache Tomcat

2
Architecture Web
Serveur Web
Client HTTP Requête HTTP
PHP SGBD
Réponse HTTP
HTML + CSS +
JEE
Java Script HTML, JSON
Dot NET

Node JS

Un Client web (Browser) communique avec le serveur web (Apache) en utilisant le protocole HTTP
Une application web se compose de deux parties :
• La partie Backend : S’occupe des traitements effectués coté serveur :
• Technologies utilisées : PHP, JEE, . NET, Node JS…
• La partie Frontend : S’occupe des traitements effectués coté Client :
• Langages utilisés : HTML, CSS, Java Script
• La communication entre la partie Frontend et la partie Backend se fait en utilisant le protocole HTTP. 3
Architecture
Client Web
HTML HTTP, HTML Serveur d’application

Client Web
RMI
Angular REST JSON Web SOAP REST
IIOP
JMS
JQuery
SGBD
Busines Layer (Métier)
Relationnel
Client REST JSON Ou
Mobile Data Access Layer (DAO)
NoSQL

Client RMI, IIOP IOC Containner (Spring ou EJB)


Java, C++, C# JMS, AMQP
Service de l’infrastructure technique
JPA, Hibernate, JMS, JNDI, JMX, JaxWS,
Client SOAP XML JaxRS, RMI, CORBA, MQP…
SOAP

4
Architecture Web JEE

Client HTTP Serveur Tomcat

Couche Web Metier


1 2
request
HTTP
GET ou POST R

Controleur
Model

Servlet
3
Traitements
5
4
7 Vue
6 JSP
HTML response
HTML

5
Architecture Web JEE
1. Le client envoie une requête HTTP de type GET ou POST vers le contrôleur représenté
par un composant Web JEE : SERVLET. Pour lire les données de la requete HTTP le
controleur utilise l’objet request de type HttpServletRequest.
2. Le contrôleur fait appel à la couche métier pour effectuer les traitements et récupère
les résultats R.
3. Le contrôleur stocke le résultat R dans le modèle M. le modèle est généralement un
objet qui permet de stocker toutes les données qui seront affichées dans la vue.
4. Le contrôleur(Servlet) fait appel à la vue JSP(Java Server Pages) en lui transmettant les
objets request et response. Cette opération s’appelle Forwarding.
5. La vue JSP récupère le résultat à partir du modèle. La vue retrouve le modèle dans
l’objet request.
6. La vue JSP génère dynamiquement une page HTML qui contient les résultats du modèle
en utilisant l’objet response.
6
Design Pattern MVC
Serveur Web

Utilisateur
C
Controleur
(servlet avec

V M
doGet, doPost

Base de données
Vue Objets (MySQL,,)
(JSPs) Java

7
Environnement de développement
• Installer Eclipse
• TomCat serveur d’application

8
Environnement de développement
• WebContent contient les fichiers
html CSS JSP
• WEB-INF fichier de
configuration,
• Lib : bibliothèques
• Src contient les Classes java

9
Servlet
• Un Servlet est un composant JEE qui permet d’effectuer des
traitements du coté du serveur suite à une requete HTTP et envoyer
une réponse HTTP.
• Un Servlet est une classe Java qui hérite de HttpServlet et qui
redéfinie des méthodes comme doGet, doPost, doPut, doDelete,
doHead..

10
Servlet
• Il faut déployer un Servlet
• Pour déployer un Servlet il y a deux moyens :
• [Link]
• Ou en utilisant l’annotation @WebServlet
• Une classe java qui hérite de HttpServlet
• Elle Hérite deux Méthodes
• doGet : User charge une page Web
• doPost : User envoie un Formulaire
• Et d’autres
• [Link]
11
Servlet
• Pour que le serveur Tomcat reconnaisse un servlet, celle-ci doit etre
déclarée dans le fichier [Link] qui se trouve dans le dossier WEB-
INF.
• Le fichier [Link] s’appelle le descripteur de déploiement de Servlet.
• Ce descripteur doit déclarer principalement les éléments suivants :
• Le nom attribué à cette servlet.
• La classe du servlet.
• Le nom URL à utiliser pour faire appel au Servlet via le protocole HTTP.

12
Servlet Java
String nom=[Link]("nom"); lire le paramètre nom
PrintWriter out=[Link](); pour afficher les informations dans la page
web

13
1ère Méthode Déployer le Servlet
<servlet-name> nom de la Servlet
[Link] <servlet-class> nom de la classe de la servlet
<url-pattern> l’adresse URL

14
2ème Méthode déployer un Servlet

[Link]

15
2ème Méthode déployer un Servlet

16
Page JSP

17
forward
Transmettre la requête et la réponse à la page JSP et elle indique ou se trouve la vue(page JSP)

18
Variable entre Servlet et JSP
• [Link]("variable" ,message);
• Envoyer le contenu de la variable message sous le nom variable à la
page JSP
• [Link]("variable" );
• Permet de récupérer la variable

19
Variable entre Servlet et JSP

20
Exemple 2

21
Exemple 3

22
Expression Language
• Il est déconseillé d’utiliser du java et HTML mélangé dans la page JSP,
• Depuis la version 2.0 des JSP, il est possible de placer à n'importe quel
endroit d'une page JSP des expressions qui sont évaluées et
remplacées par le résultat de leur évaluation : les Expressions
Languages (EL) .
• Elles permettent de manipuler les données au sein d'une page JSP
plus simplement qu'avec les scriptlets Java ( ) .
• Utilisées conjointement avec des librairies de tags (telles que les JSTL
que nous verront plus tard), elles permettent de se passer totalement
des scriptlets.
23
Expression Language (EL)
• La syntaxe d’une EL est de la forme suivante :
${ expression }
• La chaîne expression correspond à l'expression à interpréter. Une
expression peut être composée de plusieurs termes séparés par des
opérateurs.
• – Ex :
${ (10 + 2)*2 } => 24
${ a && b } => a ET b
• Ou, comme nous avions vu pour les beans et les Objets:
${[Link]}
24
Java Standard Tag Library (JSTL)
• De nombreux frameworks facilitent le développement d'application
Java EE. JSTL propose une librairie standard pour la plupart des
fonctionnalités de base d'une application Java EE.
• La JSTL permet de développer des pages JSP en utilisant des balises
XML, donc avec une syntaxe proche des langages utilisés par les web
designers, et leur permet donc de concevoir des pages dynamiques
complexes sans connaissances du langage Java.

25
Java Standard Tag Library (JSTL)
• Utilisation:
• Pour utiliser les JSTL, il suffit de copier dans le répertoire WEB-INF/lib de votre
application WEB les fichiers [Link] et [Link] qui se trouvent dans le
répertoire lib de la distribution JSTL.
• Les JSTL disposent d’un ensemble de librairies de fonctionnalités différentes
• Pour inclure une librairie jstl à une page JSP il faut ajouter une déclaration en
tête de page (directive taglib) de cette façon:
• <%@taglib uri="[Link] prefix="c" %>
• Cette ligne permet d’inclure la librairie "core" de la JSTL qui contient les
actions de base d'une application web.

26
Java Standard Tag Library (JSTL)

27
Java Standard Tag Library (JSTL)

28
Java Standard Tag Library (JSTL)

29
Expression Language

30
JSTL ( JavaServer Standard Tag
Library)

• La JSTL nous permet d’éviter d’écrire du code java dans nous page JSP.
• Ce sont des balises XML
• C’est une bibliothèque à ajouter dans notre code JEE.

31
Les bibliothèques JSTL
• Composé de 5 sous bibliothèques :
• Core : gérer les variables, les conditions, les boucles…
• Format : formater les données.
• XML : Manipule des sonnées XML.
• SQL : écrire du code Sql
• Function : traiter les chaines de caractères.

32
Exemple JSTL

33
Rappel MVC

C
Controleur
(servlet avec doGet, doPost

V M
Vue Modèle Base de données
(JSPs) (Objets métier) (MySQL,,)
34
DAO

M DAO

Modèle Data Access Object Système de stockage


(Objets métier)

35
DAO

Implémentation
DAO A

Système de stockage
M DAO
Modèle
(Objets métier) Implémentation
DAO B

Système de stockage
36
Cas utilisant Design Pattern MVC

C DAO M
Utilisateur [Link]
a [Link] [Link]
[Link]
a

[Link]

V M
[Link] [Link]

Système de stockage

37
Classe Etudiant

[Link]

38
Classe Interface

[Link]

39
Classe d’implémentation Métier
[Link]

40
Classe SingletonConnection
[Link]

41
Servlet

[Link]
va

42
Classe Modèle

[Link]
a

43
Page JSP

[Link]

44
Injection des dépendances
• Une application qui n’évolue pas meurt
• Une application doit être fermée à la modification et ouverte à
l’extension.
• Une application doit s’adapter aux changements.
• Des classes faiblement couplées.
• Programmer une interface et non une implémentation

45
Couplage fort
• Quand une classe A est liée à une classe B
on dit que la classe A est fortement
couplée avec la classeB.
A B • La classe A ne peut fonctionner qu’en
b:B présence de la classe B.
• Si une nouvelle version de la classe B ( B2)
Calcul():double getValue():double est créée on est obligé de modifier dans la
classe A.
• Modifier une classe implique :
• Il faut disposer du code source.
• Il faut recompile, déployer et distribuer la
nouvelle application aux clients.
• Ce qui engendre un problème au niveau de la
maintenance de l’application.
46
Exemple de couplage fort
Presentation
MetierImpl DaoImpl
Metier:MetierImpl
dao:DaoImpl

main(String[] a):void
Calcul():double getValue():double

47
Couplage Faible
• Pour utiliser le couplage faible, nous devons utiliser
les interfaces.
• Considérons une Classe A qui implémente l’interface
IA IA et une Classe B qui implémente l’Interface IB.
IB
• Si la Classe A est liée à l’interface IB par une
association on dit que la Classe A et la Classe B sont
liées par un couplage faible.
Calcul():double • Cela Signifie que la Classe B peut fonctionner avec
getValue():double
n’importe quelle Classe qui implémente l’interface IA.
• En effet la Classe B ne connait que l’Interface IA, de
ce fait n’importe quelle Classe implémentant cette
AImpl interface peut être associée à la Classe B sans qu’il
BImpl soit nécessaire de modifier quoi que ce soit dans la
b:IB Classe B.
• Avec le couplage faible, nous pourrons créer des
Calcul():double application fermée à la modification et ouverte
getValue():double àl’extension.
48
Exemple Couplage Faible

Presentation IMetier IDao


Metier:MetierImpl

main(String[] a):void
Calcul():double getValue():double

MetierImpl
DaoImpl
b:IB

Calcul():double
getValue():double

49

Vous aimerez peut-être aussi