0% ont trouvé ce document utile (0 vote)
400 vues75 pages

Résumé JEE

Le document présente un cours sur l'architecture client-serveur avec un accent sur Java EE, ses spécifications et ses composants principaux. Il aborde également le modèle MVC, les servlets, les pages JSP, ainsi que les outils et serveurs nécessaires pour le développement d'applications web. Enfin, des instructions pour la mise en place d'une servlet et d'une JSP sont fournies.

Transféré par

diguemlachristian
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)
400 vues75 pages

Résumé JEE

Le document présente un cours sur l'architecture client-serveur avec un accent sur Java EE, ses spécifications et ses composants principaux. Il aborde également le modèle MVC, les servlets, les pages JSP, ainsi que les outils et serveurs nécessaires pour le développement d'applications web. Enfin, des instructions pour la mise en place d'une servlet et d'une JSP sont fournies.

Transféré par

diguemlachristian
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

Université St Charles Lwanga

Cours d’Architecture Client-


serveur

Présenté par : M. ABDRAMANE ISSA OUMAR

00:02 Architecture Client/Serveur, GL3 UCL - SARH 1


Introduction à Java EE
Objectifs :
Comprendre Java EE et son écosystème
Connaître les principales spécifications
Savoir pourquoi utiliser Java EE

2
Qu'est-ce que Java EE ?
Définition : Plateforme pour le développement d'applications d'entreprise.

Basé sur : Java SE (Standard Edition) + API supplémentaires.

Principales caractéristiques :

 Multi-couches (web, métier, données)

 Composants réutilisables (Servlets, EJB, JPA)

 Normes ouvertes (Jakarta EE)

3
Histotrique
J2EE 1.2 (December 1999)
J2EE 1.3 (September 2001)
J2EE 1.4 (November 2003)
Java EE 5 (May 2006)
Java EE 6 (December 2009)
Java EE 7 (May)
Java EE 8 (August 2017)
Jakarta EE 8 (September 2019)
4
Architecture Java EE

5
Exemple d'une Servlet (Hello
World)
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
[Link]("text/html");
PrintWriter out = [Link]();
[Link]("<h1>Hello Java EE!</h1>");
}
}
6
Composants Principaux
 Web : Servlets, JSP, JSF
 Métier : EJB (Session Beans, Message-
Driven Beans)
 Données : JPA (Hibernate), JDBC
 Communication : JAX-RS (REST), JMS
(Messagerie)
7
Communication Client-serveur
Java EE

8
Communication Client-serveur
Java EE
 récupérer les requêtes HTTP issues des clients ;
 les mettre dans des boîtes, des objets, que votre code sera
capable de
 manipuler ;
 faire passer ces objets dans la moulinette qu'est votre
application, via le
 conteneur ;
 renvoyer des réponses HTTP aux clients, en se basant sur les
objets
 retournés par votre code.
9
Le modèle MVC
 récupérer les requêtes HTTP issues des clients ;
 les mettre dans des boîtes, des objets, que votre code sera
capable de
 manipuler ;
 faire passer ces objets dans la moulinette qu'est votre
application, via le
 conteneur ;
 renvoyer des réponses HTTP aux clients, en se basant sur les
objets
 retournés par votre code.
10
Le modèle MVC

11
Le modèle MVC
 tout ce qui concerne le traitement, le stockage et la mise à
jour des données de l'application doit être contenu dans la
couche nommée "Modèle" (le M de MVC) ;
 tout ce qui concerne l'interaction avec l'utilisateur et la
présentation des données (mise en forme, affichage) doit
être contenu dans la couche nommée "Vue" (le V de MVC) ;
 tout ce qui concerne le contrôle des actions de l'utilisateur
et des données doit être contenu dans la couche nommée
"Contrôle" (le C de MVC).
12
Le modèle MVC en J EE

13
Le modèle MVC en J EE
 Dans une application Java EE sans frameworks :
 la couche Modèle (Ce bloc contient donc des
objets Java d'une part, qui peuvent contenir des
attributs (données) et des méthodes
(traitements) qui leur sont propres, et un
système capable de stocker des données
d'autre part.) est constituée d'objets Java ;

14
Le modèle MVC en J EE
 la couche Vue (Elle est exécutée côté serveur et
permet l'écriture de gabarits (pages en langage
"client" comme HTML, CSS, Javascript, XML, etc.). Elle
permet au concepteur de la page d'appeler de
manière transparente des portions de code Java, via
des balises et expressions ressemblant fortement aux
balises de présentation HTML) est constituée de
pages JSP ;
 la couche Contrôle est constituée de servlets.
15
Le modèle MVC en J EE
 la couche Contrôle (Il fournit pour cela des
méthodes permettant de scruter les requêtes HTTP.
Cet objet n'agit jamais directement sur les
données, il faut le voir comme un simple
aiguilleur : il intercepte une requête issue d'un
client, appelle éventuellement des traitements
effectués par le modèle, et ordonne en retour à la
vue d'afficher le résultat au client.) est constituée
de servlets.
16
Outils et environnement de
développement
 La création d'une application web avec Java EE
s'effectue généralement à l'aide d'un
Environnement de Développement Intégré, très
souvent raccourci à l'anglaise en IDE.
 C'est un logiciel destiné à faciliter grandement le
développement dans son ensemble.

17
Serveurs Java EE
 Payants :

 Oracle WebLogic

 IBM WebSphere

 Open Source :

 WildFly (ex-JBoss)

 Apache TomEE

 GlassFish
18
IDE & Tools
 Eclipse (avec Jakarta EE plugins)
 IntelliJ IDEA (Ultimate)
 NetBeans (Apache NetBeans)
 WebStorm

19
Choix du Serveur
d'Applications Java EE
 Pour exécuter une application Java EE, un serveur d'applications est
nécessaire. Parmi les solutions disponibles, Apache Tomcat est un choix
adapté pour débuter, car :
 Léger et performant : Optimisé pour les applications web
(Servlets/JSP).
 Open Source : Gratuit et libre d’utilisation.
 Multiplateforme : Compatible Windows, Linux, macOS.
 Suffisant pour les bases : Supporte les standards web de Java EE
(Servlet, JSP, JSTL).
20
Le serveur tomcat
 Pourquoi Tomcat ?

 Idéal pour l’apprentissage : Configuration simple,


démarrage rapide.
 Intégration facile avec les IDE (Eclipse, IntelliJ) et
Maven.
 Large adoption dans l’industrie pour les applications
web légères.

21
Installer serveur tomcat
 Consignes pour l‘installation
 Télécharger depuis le site de tomcat ([Link]
[Link]) la dernière version pour windows ;
 Installer de préférence dans un répertoire situé directement à la racine du
disque dur (évitez "Program Files" ) Le titre ne doit contenir ni espaces ni
caractères spéciaux ; Ensuite décompresser et ouvrez votre éditeur Eclipse
EE, puis clicquer sur nouveau, choisissez autre (other) chercher Server,
dans Server ouvrez apache choisissez votre version et clicquer sur Terminé
(Finish) pour finaliser l’installation.

22
serveur tomcat
 Détails utiles : Stockage par défaut des applications dans le dossier webapps
qui contient le dossier de configuration conf suivants :
 [Link] : contient les éléments de configuration du serveur ;
 [Link] : contient les directives communes à toute les applications
web déployées sur le serveur;
 [Link] : contient entre autres l'identifiant et le mot de passe
d'accéder à l'interface d'administration de votre serveur Tomcat ;
 [Link] : contient les paramètres de configuration communs à toutes
les applications web déployées sur le serveur.

23
Structure d’un fichier web
sous Eclipse EE

24
Instant test, premier programme en
java ee

25
La servlet
 C'est la base de la programmation Java EE, toute la
conception d'application Web repose la servlet
 C’est un programme Java qui tourne sur un serveur Java
EE
 Elle estpackage
invoquée lorsqu'un navigateur appelle l'URL qui lui
[Link];
import [Link];
est liéepublic class Test extends HttpServlet {

26
La servlet
 Mode de communication :
 Le client utilise les méthodes HTTP pour communiquer avec le serveur :
 Méthode GET
 Méthode POST
 Méthode HEAD
 …
 Les packages javax.* nécessaires pour compiler un servlet :
 [Link] (Internet générique)
 [Link] (Server WWW)

27
La servlet
 L’interaction avec un client
 Quand une servlet accepte une requête d’un client, il reçoit deux
objets :

1. Un objet qui implémente ServletRequest et qui encapsule la


communication du client vers le serveur (ServletInputStream ou
HttpServletRequest)

2. Un objet qui qui implémente ServletResponse et qui encapsule la


communication du servlet vers le client (ServletOutStream ou
HttpServletResponse)
28
Mise en place d’une Servlet
 La servlet est une classe Java, il va falloir configurer dans
un fichier [Link] qu’elle soit associée à une URL
 Ainsi la requête HTTP du client sera automatiquement
aiguillée par notre conteneur de servlet vers la bonne
servlet, celle qui est en charge de répondre à cette
requête

29
Mise en place d’une Servlet
 Le fichier de configuration doit impérativement se nommer
[Link] et se situer sous le répertoire /WEB-INF de notre
application
 La mise en place d'une servlet se déroule en deux étapes :

 nous devons d'abord déclarer la servlet

 puis lui faire correspondre une URL.

30
Mise en place d’une Servlet
 La définition de la servlet
<servlet>
<servlet-name>Test_Servlet</servlet-name>
<servlet-class>[Link].Test_Servlet</servlet-class>
</servlet>
 Le mapping de la servlet
<servlet-mapping>
<servlet-name>Test_Servlet</servlet-name>
<url-pattern>/lien</url-pattern>
</servlet-mapping>

31
Mise en place d’une Servlet
<?xml version="1.0" encoding="UTF-8"?>

<web-app

xmlns="[Link]

xmlns:xsi="[Link]

xsi:schemaLocation="[Link]

[Link] " version="3.0">

<servlet>

<servlet-name>Test</servlet-name>

<servlet-class>[Link]</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Test</servlet-name>

<url-pattern>/index</url-pattern>

</servlet-mapping>

</web-app>

32
Mise en place d’une Servlet
Import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class Test extends HttpServlet {
public void doGet (HttpServletRequestrequest,HttpServletResponseresponse)
throws ServletException, IOException {

}
33
Java Server Pages (JSP)
 La technologie servlet ne convient pas à la génération du
code de présentation
 Écrire une page web en langage Java est pénible

 Il est nécessaire de disposer d'une technologie qui joue le


rôle de simplification de l'API servlet :
 Les pages JSP sont une abstraction "haut niveau" de la
technologie servlet

34
Java Server Pages (JSP)
 Le modèle MVC recommande une séparation nette entre le code de
contrôle et la présentation
 La servlet n'est pas adaptée à la prise en charge de l'affichage

 Le modèle MVC recommande une séparation nette entre le code


métier et la présentation :
 Dans le modèle on doit trouver le code Java responsable de la
génération des éléments dynamiques
 Dans la vue on doit simplement trouver l'interface utilisateur

35
Java Server Pages (JSP)
 Dans le modèle MVC, tout ce qui touche à l'affichage final (texte,
mise en forme, etc.) doit être placé dans une couche à part : la vue
 En Java EE, la technologie utilisée pour réaliser une vue est la page
JSP (Java Server Pages)
 L'intérêt est de rendre possible la création de pages dynamiques :

 Il y a une étape de génération sur le serveur, il devient possible


de faire varier l'affichage et d’interagir avec l'utilisateur, en
fonction notamment de la requête et des données reçues
36
Java Server Pages (JSP)
 Une page JSP ressemble à une page HTML, à quelques différences près :

 L'extension d'une telle page devient .jsp et [Link]

 Une telle page peut contenir des balises HTML, mais également des
balises JSP qui appellent de manière transparente du code Java ;
 Contrairement à une page HTML statique directement renvoyée au
client, une page JSP est exécutée côté serveur, et génère alors une
page renvoyée au client (traduit en servlet: voir répertoire de travail
du serveur : sous Tomcat, il s'agit du répertoire /work)

37
Java Server Pages (JSP)
 Les pages JSP se présentent sous la forme d'un simple
fichier au format texte, contenant des balises respectant
une syntaxe à part entière
 Le langage JSP combine à la fois les technologies HTML,
XML, servlet et JavaBeans
 C'est un objet Java qui permet aux développeurs de créer
des vues dynamiques

38
Java Server Pages (JSP)
 La technologie JSP offre les capacités dynamiques aux servlets tout
en permettant une approche naturelle pour la création de contenus
statiques. Ceci est rendu possible par :
 Un langage dédié : les pages JSP sont des documents au format
texte, à l'opposé des classes Java que sont les servlets
 La simplicité d'accès aux objets Java : des balises du langage
rendent l'utilisation directe d'objets au sein d'une page très aisée

39
Mise en place d’une JSP
 Création de la vue

 On crée une page JSP par défaut sous Eclipse (on peut remplacer son
contenu par notre modèle d'exemple (Page_jsp.jsp)
<%@ page pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Page de Test</title>
</head>
<body>
<p>Ceci est une page générée depuis une JSP.</p>
</body>
</html>

40
Java Server Pages (JSP)
 Mise en relation de JSP et servlet
...
public void doGet( HttpServletRequest request, HttpServletResponse
response ) throws ServletException, IOException {
[Link]().getRequestDispatcher( "/WEB-INF/Page_jsp.jsp").forward( request,
response );
}
 getServletContext() : retourne un objet ServletContext contient un ensemble de méthodes qui
permettent à une servlet de communiquer avec le conteneur de servlet ;
 getRequestDispatcher() : retourne un objet RequestDispatcher, : c'est grâce à lui que notre servlet
est capable de faire suivre nos objets requête et réponse à une vue. On précise le chemin complet
vers la JSP, en commençant obligatoirement par un / ;
 nous utilisons ce dispatcher pour réexpédier la paire requête/réponse HTTP vers notre page JSP via
sa méthode forward().
41
Java Server Pages (JSP)
 La page JSP devient accessible au travers de la servlet

 La servlet ne fait que transférer le couple requête reçue et


réponse vers la JSP finale.

42
Transmission des données
issue du serveur (les attributs)
 Transmettre des variables de la servlet à la JSP
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
String message = "Transmission de variables : OK !";
[Link]( "test", message );
[Link]().getRequestDispatcher( "/WEB-INF/Page_jsp.jsp").forward( request, response );
}

 Le principe est d'appeler la méthode setAttribute() de l'objet requête pour y enregistrer


un attribut. Cette méthode prend en paramètre le nom que l'on souhaite donner à
l'attribut suivi de l'objet lui-même.
 L'attribut créé est une chaîne de caractères (un objet String) nommé test lors de son
enregistrement dans la requête
 Côté vue, c'est par ce nom d'attribut que vous pourrez accéder à votre objet

43
Transmission des données
issue du serveur (les attributs)
 Comment récupérer et afficher l'objet côté vue :
<%@ page pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test</title>
</head>
<body>
<p>Ceci est une page générée depuis une JSP.</p>
<p>
<% String attribut = (String) [Link]("test");
[Link]( attribut );
%>
</p>
</body>
</html>

44
Transmission des données
issues du client (les
paramètres)
 Paramètres transmis au serveur directement via l'URL peuvent être de
type <!--
: URL sans paramètres -->
/[Link]

<!-- URL avec un paramètre nommé 'cat' et ayant pour valeur


'java‘ -->
/[Link]?cat=java

<!-- URL avec deux paramètres nommés 'lang' et 'admin', et


ayant
pour valeur respectivement 'fr' et 'true' -->
/[Link]?lang=fr&admin=true

45
Transmission des données
issues du client (les
paramètres)
 Récupération des paramètres par le serveur
public void doGet( HttpServletRequest request, HttpServletResponse
response ) throws ServletException, IOException{
String paramAuteur = [Link]( "auteur" );
String message = "Transmission de variables : OK ! " + paramAuteur;
[Link]( "test", message );
[Link]().getRequestDispatcher(
"/WEB-INF/Page_jsp.jsp").forward( request, response );
}

[Link]
 Pour tester
String parametre = [Link]( "auteur" );
[Link]( parametre );
 En y ajoutant a notre page jsp
46
Le JavaBean
 Un JavaBean (bean) désigne un composant réutilisable

 Il est construit selon certains standards, définis dans les


spécifications de la plate-forme du langage Java
 Son utilisation ne requiert aucune bibliothèque

 Un bean est un simple objet Java qui suit certaines


contraintes, et représente généralement des données du
monde réel

47
Le JavaBean
 Un bean est conçu pour être paramétrable

 Les propriétés (de type primitif ou objet) permettent de paramétrer le


bean, en y stockant des données
 Un bean est conçu pour pouvoir être persistant

 La sérialisation est un processus qui permet de sauvegarder l'état


d'un bean, et donne ainsi la possibilité de le restaurer par la suite
 Un bean est un composant conçu pour être réutilisable

 Ne contenant que des données ou du code métier, un tel composant


n'a en effet pas de lien direct avec la couche de présentation
48
Le JavaBean
 Un bean est conçu pour être paramétrable de manière
dynamique
 L'introspection est un processus qui permet de
connaître le contenu d'un composant (attributs,
méthodes et événements) de manière dynamique, sans
disposer de son code source

49
La structure de JavaBean
 Un bean :

 doit être une classe publique ;


 doit avoir au moins un constructeur par défaut, public et sans paramètres. Java
l'ajoutera de lui-même si aucun constructeur n'est explicité ;
 peut implémenter l'interface Serializable, il devient ainsi persistant et son état
peut être sauvegardé ;
 ne doit pas avoir de champs publics ;
 peut définir des propriétés (des champs non publics), qui doivent être
accessibles via des méthodes publiques getter et setter, suivant des règles de
nommage.

50
Exemple 1 de JavaBean
/* Cet objet est une classe publique */
public class MonBean{
/*ne possède aucun constructeur, Java lui assigne un par défaut public et sans
paramètre. */
private String proprieteNumero1;
private int proprieteNumero2;
/* Les propriétés de l'objet sont accessibles via des getters et setters publics */
public String getProprieteNumero1() {
return this.proprieteNumero1;
}
public int getProprieteNumero2() {
return this.proprieteNumero2;
}
public void setProprieteNumero1( String proprieteNumero1 ) {
this.proprieteNumero1 = proprieteNumero1;
}
public void setProprieteNumero2( int proprieteNumero2 ) {
this.proprieteNumero2 = proprieteNumero2;
}
} 51
Exemple 2 de JavaBean
package [Link];
public class Etudiant {
private String nom;
private Stringprenom;

public String getNom() {


return [Link];
}
public String getPrenom() {
return [Link];
}
public void setNom( String nom ) {
[Link] = nom;
}
public void setPrenom( String prenom ) {
[Link] = prenom;
}
}
52
Où placé le code JavaBean
 Pour la création de bean :
 Il doit être placé dans le répertoire des sources "src" de notre projet web, de
préférence dans un package à préciser
 Il va falloir modifier le Build Path de notre projet :
 Clic droit sur le dossier du projet, sélectionnez "Build Path" puis "Configure Build
Path... "
 Sélectionnez alors l'onglet source, puis regardez en bas le champ Default output
folder,
 Préciser le chemin vers WEB-INF/classes afin que nos classes, lors de leur
compilation, soient automatiquement déposées dans le dossier pris en compte
par notre serveur d'applications
53
Mise en œuvre de notre bean
...
import [Link];
...
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws
ServletException, IOException{
/* Création et initialisation du message. */
String paramAuteur = [Link]( "auteur" );
String message = "Transmission de variables : OK ! " + paramAuteur;
/* Création du bean */
Etudiant premierBean = new Etudiant();
/* Initialisation de ses propriétés */
[Link]( "Ali" );
[Link]( "Adoum" );
/* Stockage du message et du bean dans l'objet request */
[Link]( "test", message );
[Link]( "etudiant", premierBean );
/* Transmission de la paire d'objets request/response à notre JSP*/
[Link]().getRequestDispatcher( "/WEB-INF/[Link]").forward( request,
response );
}

54
Mise en œuvre de notre bean
<%@ page pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8" /> <title>Test</title> </head>
<body>
<p>Ceci est une page générée depuis une JSP.</p>
<p> <% String attribut = (String) [Link]("test"); [Link]( attribut );
String parametre = [Link]( "auteur" );
[Link]( parametre );
%> </p>
<p> Récupération du bean :
<%
[Link] notreBean = ([Link])
[Link]("etudiant");
[Link]( [Link]() );
[Link]( [Link]() );
%></p>
</body>
</html>

55
Syntaxe des balises JSP
Balises de commentaire :

 Exemple :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Exemple</title>
</head>
<body>
<%-- Ceci est un commentaire JSP, non visible dans la page HTML
finale --%>
<!-- Ceci est un simple commentaire HTML. -->
<p>Ceci est un simple texte.</p>
</body>
 </html>
56
Syntaxe des balises JSP
<%! et %>.
Balises de déclaration
<%! String chaine = " ma chaine."; %>
Balises de scriptlet

 Sert à inclure du code Java au sein de vos pages


<form action="/tirage" method="post">
<%
for(int i = 1; i < 3; i++){
[Link]("Numéro " + i + ": <select name=\"number"+i+"\">");
for(int j = 1; j <= 10; j++){
[Link]("<option value=\""+j+"\">"+ j + "</option>");}
[Link]("</select><br />"); }
%>
<br />
<input type="submit" value="Valider" />
</form>
57
Les directives JSP
Les directives JSP permettent :

 d'importer un package ;

 d'inclure d'autres pages JSP ;

 d'inclure des bibliothèques de balises

 de définir des propriétés et informations relatives à une page JSP

Les directives contrôlent comment le conteneur de servlets va gérer le JSP

 Il en existe trois : taglib, page et include

Elles sont toujours comprises entre les balises <%@ et %>

58
Les directives JSP
Directive taglib

 Le code ci-dessous inclut une bibliothèque personnalisée nommée maTagLib :

<%@ taglib uri="[Link]" prefix="tagExemple" %>

Directive page

 La directive page définit des informations relatives à la page JSP

 Voici par exemple comment importer des classes Java :

<%@ page import="[Link], [Link]" %>

59
Les directives JSP
Directive include <%@ include file="[Link]" %>

Action standard include

 Permet d'inclure du contenu de manière "dynamique". Le contenu sera ici


chargé à l'exécution, et non à la compilation comme c'est le cas avec la
<%-- L'inclusion dynamique
directive précédente : d'une page fonctionne par URL relative : --%>
<jsp:include page="[Link]" />
<%-- Son équivalent en code Java est : --%>
<% [Link]( "[Link]" ).include( request,
response ); %>
<%-- Et il est impossible d'inclure une page externe comme ci-dessous : -->
<jsp:include page="[Link] />

60
La portée des objets
 La portée des objets (visibilité), définit tout simplement leur durée de
vie

 Les objets sont accessibles via l'objet HttpServletRequest et ne sont


visibles que durant le traitement d'une même requête

 Ils sont créés par le conteneur lors de la réception d'une requête HTTP,
et disparaissent dès lors que le traitement de la requête est terminé.

61
La portée des objets
 Il existe au total quatre portées différentes dans une application :

 page (JSP seulement) : les objets dans cette portée sont uniquement
accessibles dans la page JSP en question ;
 requête : les objets dans cette portée sont uniquement accessibles
durant l'existence de la requête en cours ;
 Session : les objets sont accessibles durant l'existence de la session
en cours;
 application : les objets dans cette portée sont accessibles durant toute
l'existence de l'application.
62
La JSTL : Définition
 C’est une bibliothèque regroupant des balises implémentant des
fonctionnalités à des fins générales , communes aux applications
web
 Par exemple la mise en place de boucles, de tests conditionnels , le
formatage des données ou encore la manipulation de données XML

 Son objectif est de permettre au développeur d'éviter l'utilisation de


code Java dans les pages JSP, et ainsi de respecter le découpage en
couches recommandé par le modèle MVC

63
La JSTL : Avantages
1. La lisibilité du code produit
 Comparons les deux codes (une boucle dans une JSP en java puis en JSTL)
Boucle avec une scripte java

La même boucle avec des tags JSTL

64
La JSTL : Avantages
 La boucle réalisée est nettement plus lisible ; elle ne fait plus
intervenir d'attributs et de méthodes Java comme size(), get() ou
encore des déclarations de variable, ni de types d'objets (List,
ArrayList, Date, etc.), mais uniquement des balises à la syntaxe
proche du XML qui ne gênent absolument pas la lecture du code et de
la structure de la page

 la bibliothèque de balises (de tags) utilisée, indiquée par le préfixe c:,


est la bibliothèque Core

65
La JSTL : Avantages
2. Moins de code à écrire

 L'utilisation des balises issues des bibliothèques standard réduit la


quantité de code à écrire

 La syntaxe de nombreuses actions est simplifiée et raccourcie en


utilisant la JSTL

 L'usage des scriptlets (code Java entouré de <% %>) est fortement
déconseillé, depuis l'apparition des TagLibs (la JSTL) et des EL

66
La JSTL : Avantages
3. Pas de codes de Java directement dans JSP
 La vue (JSP) ne doit se consacrer qu'à l'affichage

 Ne pas avoir à déclarer de méthodes dans une JSP,

 Ne pas modifier directement des données depuis une JSP, ne pas y


insérer de traitement métier, …

 Avec les tags JSTL, la séparation est bien plus nette

 Écrire du code Java directement dans une JSP rend la maintenance d'une
application extrêmement compliquée, et réduit fortement son évolutivité.

67
La JSTL : Les Versions
 La JSTL a fait l'objet de plusieurs versions :

 JSTL 1.0 pour la plate-forme J2EE 3, et un conteneur JSP 1.2 (ex:


Tomcat 4) ;
 JSTL 1.1 pour la plate-forme J2EE 4, et un conteneur JSP 2.0 (ex:
Tomcat 5.5) ;
 JSTL 1.2, qui est partie intégrante de la plate-forme Java EE 6, avec
un conteneur JSP 2.1 ou 3.0 (ex: Tomcat 6 et 7).

68
La JSTL : Configuration
 la JSTL contient nativement plusieurs bibliothèques, et Core est l'une
d'entre elles

 C'est l'archive jar ([Link]) de la JSTL tout entière qu’il faut devoir
ajouter au projet

69
La JSTL : Configuration
 Le tag est issu d'une bibliothèque (la JSTL), il est nécessaire de préciser à
Eclipse où ce tag est réellement défini

 Dans le paramètre uri se trouve le lien vers la définition de la bibliothèque

 dans le paramètre prefix se trouve l'alias utilisé dans la page JSP pour faire
appel aux balises de la bibliothèque

 Cela signifie que si souhaite appeler le tag if de la bibliothèque Core, on dois


écrire <c:if>. Si on entre "core" dans le champ prefix de la directive au lieu de
"c", j'aurais alors dû écrire <core:if>.

70
La JSTL : Configuration
 Exemple :

 Un exemple simple : il s 'agit ici d'un tag JSTL issu de la bibliothèque


Core, permettant d'afficher du texte dans une page

71
La JSTL : tags
 Tag Description

 <c:out > Identique à <%= ... >, mais pour les expressions.

 <c:set > Affecte le résultat d'une expression à un 'scope'

 <c:remove > Efface une variable (depuis un scope, si défini).

 <c:catch> Gère les exceptions 'Throwable' qui surviennent dans le contenu du tag.

 <c:if> Tag permettant de traiter une condition (if).

 <c:choose> Tag permettant de gérer un ensemble de conditions exclusives (identique


à switch/break).

 <c:when> Sous-tag de 'choose' pour traiter une condition.

72
La JSTL : tags
 <c:otherwise > Sous-tag de 'choose' pour traiter tout autre cas que ceux indiqués dans 'when'.

 <c:import> Affecte le contenu d'une page pointée par une URL à une variable.

 <c:forEach > Permet de faire une boucle sur tout ce qui est 'Iterable' ou tableau.

 <c:forTokens> Boucle sur une chaine possédant un séparateur défini (exemple


'chaine1,chaine2,chaine3').

 <c:redirect > Redirige l'utilisateur vers une nouvelle URL.

 <c:url> Crée une URL absolue en fonction du contexte de la servlet, avec des paramètres ou non.

 <c:param> Sous-tag de 'URL' permettant d'ajouter (ou remplacer) un paramètre à la Query


String.

73
PL ANNING MARKETING DESIGN STRATEGY L AUNCH

Synergize Disseminate Coordinate e- Foster holistically Deploy strategic


scalable e- standardized business superior networks with
commerce metrics applications methodologies compelling e-
business needs

74
75

Vous aimerez peut-être aussi