Vous êtes sur la page 1sur 35

Système d’Information Distribué

Plate forme JEE

1
Y. GAFOUR
Université de Tiaret
2 Serveur Java EE

 Nous pouvons trouvé deux tiers:


 Web Tier
 Entreprise Tier
3 Web Tier

 Les composants Web sont pris en charge par les services d'une plate-
forme d'exécution appelée conteneur Web, ce conteneur s'exécute sur
le serveur Java EE.

 Un conteneur Web fournit des services tels que la répartition des


demandes, la sécurité, la concurrence et la gestion du cycle de vie.

 Un conteneur Web permet également aux composants Web d'accéder à


des API telles que le nommage, les transactions et le courrier
électronique.
4 Web Tier

 Conteneur Web gère l'exécution des pages Web, des servlets et de


certains composants EJB pour les applications Java EE.

 Java Servlet Technology


 Java Server Pages
 JavaServer Pages Standard Tag Library
 Java Server Faces Technology
 Facelets
 Utilisation Ajax avec la technologie JavaServer Faces
5 Java Servlet Technology

 Au début, les pages Web étaient statiques. Les pages Web statiques sont très
simples.
 Ces pages sont écrites en langages tels que HTML, CSS, etc.
 Pour les pages Web statiques, lorsqu'un serveur reçoit une demande de
ressources (une page Web, une image, une vidéo, etc.) du navigateur Web,
et le serveur la renverrait. En effet, le serveur envoie la réponse (les ressources)
au client.
 Dans les pages Web statiques, les pages resteront les mêmes, elles ne
changent pas d'un chargement à l'autre jusqu'à ce que quelqu'un les
modifie manuellement.
 L’utilisation des pages Web statique est simple, mais très limité.
6 Java Servlet Technology

 Avec la croissance de l'activité commerciale sur le Web, les entreprises devaient


fournir du contenu dynamique à leurs clients.
 Un site internet dynamique permet de fournir des informations aux utilisateurs en
fonction de leur navigation sur le site internet.
 Le contenu d'une page web dynamique peut donc varier en fonction des
informations utilisées comme par exemple (nom de l'utilisateur, formulaire rempli
par l'utilisateur, heure, date, etc.).
 La première solution pour créer du contenu dynamique était la Common
Gateway Interface (CGI).
7 Java Servlet Technology

 CGI est une interface simple permettant d'exécuter des programmes,


logiciels ou passerelles externes sous un serveur Web de manière
indépendante de la plate-forme
 . Le CGI permet au serveur Web d’appeler un programme tout en le
transmettant des données spécifiques du l'utilisateur.
 Le programme traite ensuite ces données et le serveur renvoie la réponse du
programme au navigateur Web.
 Le simple modèle du CGI est illustré dans la figure suivante.
8 Java Servlet Technology

 Au début, la Common Gateway Interface (CGI) était le seul outil pour


développer du contenu Web dynamique.
 Cependant, CGI n'est pas une solution efficace. Pour chaque requête reçue, le
serveur Web doit créer un nouveau processus de système d'exploitation, charger
un interpréteur qui va analyser et exécuter le script, puis tout détruire à nouveau.
 Ceci est très éprouvant pour le serveur et ne s'adapte pas bien lorsque le volume
de trafic augmente.
9 Java Servlet Technology

 Sun Java a introduit les servlets comme moyen d'avoir des clients légers et un
contenu Web dynamiques. Il existe plusieurs avantages à utiliser des servlets
plutôt que des CGI :
 la servlet reste en mémoire une fois instanciée ce qui permet de garder des
ressources systèmes et gagner le temps de l'initialisation. Un CGI est chargé en
mémoire à chaque requête, ce qui réduit les performances.
 les servlets possèdent les avantages de toutes les classes écrites en Java : accès
aux API, aux JavaBeans, le garbage collector, ...
10 Java Servlet Technology

 Après les scripts CGI, les servlets Java sont devenues la base de toutes les
technologies Web de la plate-forme Java EE.
 Les servlets sont considérées une alternative aux scripts CGI, car elles offrent une
bibliothèque de niveau supérieur pour gérer HTTP.
 Cette bibliothèque permette un accès complet aux APIs de Java EE (JDBC, JPA,
EJB, JMS, JAX-WS, JTA, JTS, RMI, JNDI, JAXP etc.).
 La technologie de servlet Java permet de définir des classes de servlet
spécifiques à HTTP.
 Les servlets s’exécutent dans un conteneur Web pour établir le lien entre la servlet
et le serveur Web.
 Elles permettent donc de recevoir des requêtes HTTP, de les traiter et de fournir
une réponse dynamique des données au client au sein d'un serveur HTTP.
 Ces données sont le plus généralement présentées au format HTML, XML ou tout
autre format destiné aux navigateurs web.
11 Java Servlet Technology

 Une servlet peut être chargé automatiquement lors du démarrage du serveur


web ou lors de la première requête du client.
 Une fois chargés, les servlets restent actifs dans l'attente d'autres requêtes du
client.
 Les servlets Java ont fourni un excellent point de départ pour le
développement de composants et d'applications Web basés sur un modèle
spécifique et portables dans des conteneurs Web.
 Les servlets sont conçues pour fonctionner suivant le modèle
requête/réponse. Tous les protocoles utilisant ce modèle peuvent être utilisés :
http, ftp, etc .
12 Java Servlet Technology

 L'API servlet regroupe un ensemble de classes dans deux packages :


 javax.servlet : contient les classes pour développer des serlvets génériques
(‫)عامة‬indépendantes d'un protocole
 javax.servlet.http : contient les classes pour développer des servlets qui reposent
sur le protocole http utilisé par les serveurs Web.
 Afin de développer une servlet fonctionnant avec le protocole HTTP, il suffit de créer
une classe étendant HttpServlet.
 Cette dernière permette de fournir une implémentation de l’interface Servlet
spécifique à HTTP.
 Elle surcharge la méthode service() en lisant la méthode HTTP utilisée par le client, puis
en redirigeant la requête vers une méthode appropriée.
13 Java Servlet Technology

 Les deux principales méthodes du protocole HTTP étant GET et POST, il suffit
de surcharger la méthode adéquate afin de traiter la requête :
 public void doGet(HttpServletRequest req, HttpServletResponse res) throws
ServletException, java.io.IOException.
 La requête GET : c'est une requête qui permet au client de demander une ressource
 public void doPost(HttpServletRequest req, HttpServletResponse res) throws
ServletException, java.io.IOException.
 La requête POST : c'est une requête qui permet au client d'envoyer des informations
issues par exemple d'un formulaire.
14 Java Servlet Technology

import javax.servlet.* ;
import java.io.* ;
import javax.servlet.http.HttpServlet;
public class testt extends HttpServlet{
protected int compteur = 0;
public void service (ServletRequest request, ServletResponse response) {
try {
// out : flux de sortie mode texte qui contiendra le HTML
PrintWriter out = response.getWriter() ;
// on écrit ligne par ligne le code HTML à afficher chez le client
out.println ("<p>Bonjour tous le monde</p>") ;
out.println("<p>Nombre d'appels : "+(++compteur)+"</p>");
}
catch (IOException e) { e.printStackTrace() ; }
}
}
15 Java Server Pages

 Les pages Java Server Page (JSP) ont souvent le même objectif que les
programmes implémentés à l'aide de CGI.

 Mais JSP offre plusieurs avantages par rapport au CGI.

 Les JSP sont publiées en 1999 par Sun Java pour construire un contenu Web
dynamique en mélangeant du code Java et HTML.

 La JSP est un document textuel qui contient deux types de texte : des
données statiques (qui peuvent être exprimées dans n'importe quel format
textuel tel que HTML et XML) et des éléments JSP qui déterminent comment la
page construit du contenu dynamique.
16 Java Server Pages
 La technologie JSP nous permet de placer des extraits de code de servlet
directement dans un document texte.

 JSP, est une technologie basée sur Java qui permet aux développeurs de
générer dynamiquement du code HTML, XML ou tout autre type de page
Web.
 La JSP est un autre moyen d’écrire une servlet.
 Lorsqu’un utilisateur appelle une page JSP, le serveur web crée un code
source Java à partir du script JSP (c’est-à-dire qu’il constitue une servlet à
partir du script JSP), le compile, puis l’exécute.
17 Java Server Pages

Les pages JSP peuvent être utilisées en combinaison avec des


servlets qui gèrent la logique métier.

JSP fait partie intégrante de Java EE, cela signifie que JSP
peut jouer un rôle dans le développement d'applications
simples et complexes.
18 Java Server Pages
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<form method="POST" action="http://localhost:8080/etudiant1-war/Servlet">
<fieldset>
<legend>Inscription</legend>
<p>Vous pouvez vous inscrire via ce formulaire.</p>
<label for="Id">Id </label>
<input type="text" id="Id" name="Id" value="" size="20" maxlength="60" />
<br />
<br />
<label for="Nom">Nom </label>
<input type="text" id="Nom" name="Nom" value="" size="20" maxlength="20" />
<br />
<br />
<label for="Prenom">Prenom </label>
<input type="text" id="Prenom" name="Prenom" value="" size="20" maxlength="20" />
<br />
<br />
<label for="note">note </label>
<input type="text" id="note" name="note" value="" size="20" maxlength="20" />
<br />
<br />
<input type="submit" value="Ajouté" class="sansLabel" />
<br />
</body>
</html>
19 JavaServer Pages Standard Tag Library

 La bibliothèque de balises JSP Standard Tag Library (JSTL) représente un


ensemble de balises pour simplifier le développement JSP.

 L’ensemble de balises encapsule les fonctionnalités de base communes à


de nombreuses applications JSP.

 Au lieu de mélanger les balises de nombreux fournisseurs JSP dans une


application, Nous pouvons utiliser un seul jeu de balises standard.

 Cette standardisation permette de déployer des applications sur


n'importe quel conteneur JSP prenant en charge JSTL et rend plus
probable l'optimisation de l'implémentation des balises.
20 Java Server Faces Technology

 Aujourd'hui, nous vivons dans un monde dépendant d'Internet.

 Notre backend (c'est toute la partie que l'utilisateur ne voit pas, mais qui
lui permet de réaliser des actions sur un site ou une application)
transactionnel gérant des milliers de demandes et communiquant avec
des systèmes hétérogènes via des services Web,

 nous avons besoin d'une couche de présentation pour interagir avec les
utilisateurs finaux, de préférence une couche qui s'exécute dans un
navigateur.

 Les interfaces Web qui présente la couche de présentation deviennent de


plus en plus nécessaires à exploiter.
21 Java Server Faces Technology

 Pour répondre à cette nécessité, plusieurs fournisseurs de logiciels de


premier plan, dont Sun, Oracle, IBM et BEA, se sont réunis dans le cadre du
processus communautaire Java en mai 2001.

 Ils ont voté en faveur d'une spécification complète et détaillée pour la


création d'applications Web Java EE pour clients légers dont le principal
objectif était de fournir un moyen standard et beaucoup plus simple de
créer des interfaces utilisateur pour les applications Web Java.
22 Java Server Faces Technology

 Cela a abouti à la naissance de JavaServer Faces (JSF, ou simplement


Faces) pour faciliter la création d'interfaces graphiques.

 JSF est une technologie de base qui s'appuie sur de nombreuses


technologies logicielles.

 Comme tout produit logiciel de base, il est le résultat du travail acharné et


du dévouement de nombreuses personnes et organisations pendant de
nombreuses années.
23 Java Server Faces Technology

 JSF combine une approche de conception MVC (Model-View-Controller


Pattern) avec une puissante infrastructure de développement d'interface
utilisateur basée sur des composants qui simplifie considérablement le
développement Web Java EE tout en utilisant les technologies de
balisage et de servlet existantes.

 JSF définit un framework pour la création d'interfaces utilisateur pour les


applications Web, y compris les composants d'interface utilisateur, la
gestion des états, la gestion des événements, la validation des entrées, la
navigation dans les pages et la prise en charge de l'internationalisation et
de l'accessibilité.
24 Java Server Faces Technology

 L'un des plus grands avantages de la technologie JSF est qu'elle offre une
séparation nette entre la présentation et le comportement :
 La présentation : la manière dont les contenus apparaissent à l’utilisateur, se
définit grâce aux Cascading Style Sheets (CSS) ou feuilles de style en cascade
grâce auxquelles on peut agir sur les couleurs, la taille, le positionnement et
bien d’autres choses.

 Le comportement : concerne toute «animation» de la page déclenchée par


une action telle que le survol de la souris, le clic, le chargement de la page.
Ce comportement est en théorie codé en Javascript ou en PHP.
25 Java Server Faces Technology

 Les applications Web construites à l'aide de la technologie JSP réalisent


en partie cette séparation.

 Cependant, une application JSP ne peut pas mapper les requêtes HTTP à
la gestion d'événements spécifiques aux composants ni gérer les éléments
de l'interface utilisateur en tant qu'objets avec état sur le serveur, comme
le peut une application JavaServer Faces.
26 Java Server Faces Technology

 La technologie JavaServer Faces vous permet de créer des applications


Web qui implémentent la séparation plus fine du comportement et de la
présentation.

 L’autre objectif important est de rendre le développement Web plus


rapide et plus facile en prenant en charge les composants de l'interface
d’utilisateur (tels que les zones de texte, les zones de liste, les volets à
onglets et les grilles de données) dans une approche de développement
rapide d'applications (RAD), sans nous limitons à une technologie de script
ou à un langage de balisage particulier.

 Bien que la technologie JavaServer Faces comprenne une bibliothèque


de balises JSP personnalisées pour représenter les composants sur une
page JSP, les API de la technologie JavaServer Faces sont directement
superposées à l'API Servlet.
27 Java Server Faces Technology

 Dans un autre part, vous venez de voir des technologies et des langages
côté client, tels que XHTML ou CSS, qui représentent le contenu et l'aspect
visuel d'une page Web statique.
 Pour ajouter une certaine interaction et modifier dynamiquement des parties
de la page Web, vous pouvez utiliser les fonctions JavaScript qui s'exécutent
sur le navigateur.
 Mais, la plupart du temps, vous devez appeler une couche métier d'EJB pour
afficher les données de la base de données. Ce contenu dynamique peut
être obtenu à l'aide de JSF côté serveur.
28 Java Server Faces Technology

 Les applications JSF sont des applications Web standard qui interceptent les
requêtes HTTP via le servlet Faces et produisent du HTML.
 La technologie JavaServer Faces fournit un modèle de programmation bien
défini et diverses bibliothèques de balises.
 Les bibliothèques de balises contiennent des gestionnaires de balises qui
implémentent les balises des composants.
 Ces fonctionnalités facilitent considérablement la création et la
maintenance d'applications Web avec des interfaces utilisateur (UI).
29 Java Server Faces Technology

 Avec un minimum d'effort, vous pouvez effectuer les tâches suivantes:


 Créer une page Web.
 Déposer des composants sur une page Web en ajoutant des balises de composant.
 Lier les composants d'une page aux données côté serveur.
 Lier les événements générés par les composants au code d'application côté serveur.
 Enregistrer et restaurer l'état de l'application au-delà de la durée de vie des requêtes du
serveur.
 Réutiliser des composants.
30 Facelets
 Le terme Facelets fait référence au langage de déclaration de vue pour la
technologie JavaServer Faces.

 La technologie JSP, précédemment utilisée comme technologie de présentation pour


JavaServer Faces, ne prend pas en charge toutes les nouvelles fonctionnalités
disponibles dans JavaServer Faces sur la plate-forme Java EE 6.

 Les nouvelles fonctionnalités introduites dans la version 2 de la spécification JSF, telles


que les composants composites et Ajax, ne sont exposées qu'aux auteurs de pages
utilisant des Facelets.

 La technologie JSP est considérée comme une technologie de présentation obsolète


pour JavaServer Faces.
31 Facelets
 Facelets fait partie de la spécification JavaServer Faces et constitue également la
technologie de présentation préférée pour la création d'applications basées sur la
technologie JavaServer Faces.

 Facelets est un langage de déclaration de page puissant mais léger qui est utilisé
pour créer des vues JavaServer Faces à l'aide de modèles de style HTML et pour créer
des arborescences de composants.

 Facelet est le remplacement de JSP, qui est maintenant conservé uniquement pour la
compatibilité.

 Les principaux avantages des facettes incluent un modèle puissant, une réutilisation
et une facilité de développement, un meilleur rapport d'erreurs (y compris les numéros
de ligne) et une convivialité pour les concepteurs.
Utilisation Ajax avec la technologie
32
JavaServer Faces
 Le modèle Web traditionnel est basé sur une suite de requêtes et de réponses
successives, c'est-à-dire une navigation séquentielle de page web à l’autre.

 Ajax est un acronyme en anglais Asynchronous JavaScript and XML (AJAX).

 AJAX est un ensemble de technologies Web qui permettent la création des


applications Web dynamiques hautement réactives.

 Il permet de ne modifier que la partie de la page web qui nécessite d'être mise à jour
en créant une requête HTTP locale et en modifiant tout ou partie de la page web en
fonction de la requête HTTP récupérée.
33 Utilisation Ajax avec la technologie
JavaServer Faces
34 Utilisation Ajax avec la technologie JavaServer Faces

 JavaScript – pour tout lier ensemble.

 HTML & Cascading Style Sheets (CSS), pour la présentation et pour fournir des classes
de style des composants.

 XMLHttpRequest , fournit une récupération de données asynchrone.

 Document Object Model, pour un affichage et une interaction dynamiques et fournit


une structure arborescente pour les composants placés dans la page Web.

 Extensible Markup Language, format pour envoyer des données du client au serveur,
bien que d'autres formats comme JSON puissent également être utilisés.
35 Utilisation Ajax avec la technologie
JavaServer Faces
 Parmi les applications d'AJAX les plus courantes nous citons :
 Rechargement d'une (ou plusieurs) zone de la page Web sans être obligé de recharger celle-ci en entier.

 En même temps que l'on tape des mots clés pour une recherche, on voit apparaître la liste des résultats
(sans avoir à recharger une page).

 Sauvegarde automatique d'un texte dans la base de données lors de la saisie, sans pour autant quitter les
champs dans lequel on est entrain d'écrire.

 Affichage d'un contenu supplémentaire quand on atteint le bas de la page avec la barre de défilement,
comme c'est le cas sur Youtube.

 Suggestion automatique lors de saisi d'un champ, comme c'est le cas quand vous saisissez des mots clés
sur le moteur de recherche Google.

 Exécution d'opérations telles que la suppression ou la modification suite à un glisser déposer sans quitter la
vue en cours.

 Télécharger (Upload) d'un fichier sur le serveur tout en visualisant l'état de progression du chargement.

Vous aimerez peut-être aussi