Académique Documents
Professionnel Documents
Culture Documents
1
Y. GAFOUR
Université de Tiaret
2 Serveur Java EE
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.
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
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
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.
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
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
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.
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.
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
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
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.
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
HTML & Cascading Style Sheets (CSS), pour la présentation et pour fournir des classes
de style des composants.
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.