Académique Documents
Professionnel Documents
Culture Documents
Architecture Client-serveur
pour le Niveau applicatif
Pr Rachid ALAOUI
1-Présentation des applications web
Avant de démarrer dans les configurations et déploiements d’une application Web,
commençons par faire un point sur ce qu’est une application Web et quelle est la place de
ce type d’application dans les spécifications J2EE/JEE.
Une application Web est une application qui utilise HTTP (Hyper Text Transport Protocol)
comme couche de transport:
Architecture Web pour J2EE/JEE
C’est une collection de ressources :
servlets, pages HTML, classes et Framworks (JSF, Spring MVC…), autres pouvant être
packagées et pouvant s’exécuter sur des conteneurs provenant de fournisseurs multiples.
5
3- Le protocole HTTP et Communication Client Serveur
Le client envoie la requête :
Méthode GET
6
3- Le protocole HTTP et Communication Client Serveur
Le client envoie la requête : Méthode POST
7
3- Le protocole HTTP et Communication Client Serveur
Le Serveur retourne la réponse :
Ligne de Status
Date du serveur
Nom du Serveur
Dernière modification
Type de contenu
Sa taille
8
3- Le protocole HTTP et Communication Client Serveur
Application de communication Client-Serveur
- Dans l’édition J2SE vous avez vu comment développer une application
autonome ou une applet avec les fonctionnalités standard de Java.
9
3- Le protocole HTTP et Communication Client Serveur
Application de communication Client-Serveur
Solution 1:
Le client peut communiquer des informations à une servlet, grâce à la notion de
paramètre, ce qui nous amènera à parler des formulaires HTML.
Solution 2:
Le client peut communiquer au
serveur avec des pages JSP
(JavaServer Pages):
Pages HTML dans lesquelles on peut
introduire des séquences
d’instructions Java.
10
3- Le protocole HTTP et Communication Client Serveu
Application de communication Client-Serveur
Solution 1: Servlet
11
3- Le protocole HTTP et Communication Client Serveu
Application de communication Client-Serveur
Solution 1: Servlet
Une servlet va se présenter comme une classe dérivée
de la classe HttpServlet fournie dans le package
javax.servlet.
13
3- Le protocole HTTP et Communication Client Serveur
Solution 1: Servlet
La transmission d’informations peut être visible ou invisible dans l’URL
– La méthode "GET" : l’appel de la servlet depuis le formulaire fabrique
automatiquement l’URL voulue avec les paramètres qui seront visibles dans le
navigateur.
15
3- Le protocole HTTP et Communication Client Serveur
Solution 1: Servlet
Utilisation d’un formulaire HTML
En définitive, voici ce que pourrait donner la page HTML créant un formulaire de
lancement
de la servlet BonjourVous:
<html>
<head>
<title> Servlet Bonjour Avec Formulaire </title>
</head>
<body>
<form action = http://localhost:8080/examples/servlet/BonjourVous
method="GET">
Vous vous appelez <input type="text" size=24 name="prenom" value =""> <br>
<br>
<input type="submit" value="OK">
</form>
</body>
</html>
16
3- Le protocole HTTP et Communication Client Serveur
Solution 2: Pages JSP
un JSP est une page HTML dans laquelle sont introduits des
morceaux de code Java nommés ‘’éléments de script’’
Exemple: une page JSP: fichier HTML contenant un scriptlet (code java)
Exemple: PageBonjour.jsp
Les JSP sont enregistrés avec
l’extension .jsp. <html>
<head>
Pour pouvoir exéctuer un JSP,
<title> JSP Bonjour </title>
une machine serveur doit </head>
disposer d’un interpréteur de <body>
JSP (ou "moteur de JSP").
<% out.println ("BONJOUR") ;
%>
</body>
</html>
18
3- Le protocole HTTP et Communication Client Serveur
Solution 2: Pages JSP
Transmission de paramètres à un JSP
Voici un JSP nommé bonjourVous donnant le même résultat que notre servlet BonjourVous
JSP bonjourVous.jsp
<html> <head> <title> JSP Bonjour </title>
</head>
<body>
<%
String nom = request.getParameter
("prenom") ;
if (nom == null)
{
out.println ("BONJOUR") ;
}
else
{
out.println ("BONJOUR " + nom) ;
}
%>
19
</body> </html>
3- Le protocole HTTP et Communication Client Serveur
Solution 2: Pages JSP
Utiliser un formulaire HTML
Autre façon d’appel JSP :
Formulaire de lancement du JSP
bonjourVous
<html>
<head>
<title> Appel de JSP bonjourVous </title>
</head>
<body>
<form action = http://localhost:8080/examples/bonjourVous.jsp method=GET>
Vous vous appelez <input type="text" size=24 name="prenom" value ="">
<input type="submit" value="OK">
</form>
</body>
</html>
20
3- Le protocole HTTP et Communication Client Serveur
Solution 2: Pages JSP
Les différents éléments de script d’un JSP
Possibilités algorithmiques des scriptlets:
Un scriptlet peut contenir n’importe quel code Java
On obtient ‘5 fois’ BONJOUR dans la page transmise au client
Exemple:
<% for (int i=0 ; i<5 ; i++)
{ out.println ("BONJOUR") ;
}
%>
Dans l’élément de script <%= expression %>, on peut placer n’importe quelle
expression valide en Java
Exemple:
BONJOUR <%= out.getParameter (prenom) %>
- Commentaires en JSP:
<%-- ceci est un commentaire --%>
- Déclaration de variables en JSP:
Exemple: <%! int compte=0 ; %> 22
3- Le protocole HTTP et Communication Client Serveur
Solution 2: Pages JSP
Utilisation de JavaBeans dans des JSP
Définition:
Un composant JavaBean est une simple classe Java qui respecte
certaines conventions sur le nommage, la construction et le
comportement des méthodes.
Code d’un JavaBean :
<jsp : useBean id=" nomInstanceJavaBean " class="nomClasseDuBean "
scope="request / session / application / page">
...
</jsp : useBean>
Utilisation :
Accès à l’aide de l’identifiant nomInstanceJavaBean
Balise sans corps <jsp:useBean ... /> 23
24
Exemple de JSP/JavaBean
25
Exemple de JSP/JavaBean
26
JSP et JavaBeans
Utilisation
27
Bibliothèques de tags
But
- Prise en charge de fonctionnalités sans écrire de code Java
- Liaison à des classes Java, mappage des tags à l’exécution
Solution: La JavaServer Pages Standard Tag Library (JSTL) ajoute une
bibliothèque de balises à la spécification JSP pour l’exécution
conditionnelle, Boucles, internationalisation…
Exemples (Java Standard Tag Library { JSTL) :
28
Le patron de conception Modèle-Vue-Controleur avec JEE
- Séparer le code chargé de créer le contenu
de celui chargé de le présenter.
29
Frameworks Web
- Mettre en œuvre une "bonne" architecture MVC reste un tâche
complexe surtout si plusieurs applications doivent profiter de cette
architecture
Nombreux frameworks pour faciliter le développement d'applications Web
Dans le monde Java EE :
- Struts (Apache)
- Java Server Faces (SUN)
- Spring MVC
30
Framework (cadre d'application)
Ensemble de bibliothèques et de conventions permettant le développement
rapide d'applications.
Il fournit suffisamment de briques logicielles et impose suffisamment de rigueur
pour pouvoir produire une application aboutie et facile à maintenir.
Avec un framework : exécution est dirigée par le code du framework qui fait appel au code
écrit par le développeur le développeur doit compléter les classes et ressources préexistantes
dans le framework
31
2- Les descripteurs de déploiement
Il y a deux descripteurs de déploiement:
- Le descripteur de déploiement standard le fichier web.xml
- Le descripteur de déploiement spécifique, le fichier jboss-web.xml.
- <resource-ref>, <ejb-ref> déclarent des références vers des ressources, ou des EJB,
qui sont déployées sur le serveur. Ces déclarations seront associées aux ressources
réelles dans le fichier de déploiement jboss-web.xml.
- …..