Plan de la présentation
Ce quoi JSP
Avantages de l’API JSP
Cycle de vie d’une JSP
Code d’une pae JSP
Ce quoi JSP ?
L’API JSP (Java Server Pages) une
technologie qui permet la génération de
pages web dynamiques.
La technologie JSP permet de séparer la
présentation sous forme de code HTML
et les traitements écrits en Java sous la
forme de JavaBeans ou de servlets.
Les JSP définissent une syntaxe
particulière permettant d'appeler un bean
et d'insérer le résultat de son traitement
dans la page HTML dynamiquement.
Ce quoi JSP(Java Server Pages)
Les JSP permettent d'introduire du code Java
dans des tags prédéfinis à l'intérieur d'une
page HTML.
La technologie JSP mélange la puissance de
Java côté serveur et la facilité de mise en
page du HTML côté client.
Une JSP est habituellement constituée :
◦ de données et de balises HTML
◦ de balises JSP
◦ de scriptlets (code Java intégré à la JSP)
Les fichiers JSP possèdent par convention
l'extension .jsp.
Une JSP (Java Server Pages)
C'est un document qui ressemble
beaucoup à une page HTML, mais qui
en réalité en diffère par plusieurs
aspects :
◦ L'extension d'une telle page devient .jsp et
non plus .html ;
◦ une telle page peut contenir des balises
HTML, mais également des balises JSP qui
appellent de manière transparente du code
Java ;
◦ Une page JSP est exécutée côté serveur, et
génère alors une page renvoyée au client.
Pourquoi l’API JSP ?
La technologie servlet étant difficile d'accès
et ne convient pas à la génération du code de
présentation.
Le modèle MVC recommande une
séparation nette entre le code de contrôle et
la présentation.
Le modèle MVC recommande une
séparation nette entre le code métier (code
java) et la présentation :
Ceci va permettre aux designers de travailler
facilement sur la vue, sans avoir à y faire
intervenir directement du code Java.
Fontionnalités de JSP
La création de sites Web dynamiques ;
Le travail avec des bases de données ;
L’amélioration de la sécurité .
L’utilisation des JavaBeans (simplicité du
code, manipulation d’objets simples...) ;
L’utilisation de balises personnalisées (taglib)
Avec JSP, il est plus aisé de découper
le développement d’une application Web :
◦ Le graphiste s’occupe de la partie présentation
HTML;
◦ Le développeur s’occupe de la partie logique
avec les traitements et l’accès aux données.
Avantages des JSP
L'intérêt est de rendre possible la
création de pages web dynamiques.
La génération de la vue sur le serveur,
rend 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.
L'utilisation de Java par les JSP permet
une indépendance de la plate-forme
d'exécution mais aussi du serveur web
utilisé.
Avantages des pages JSP
La séparation des traitements et de la présentation
rend possible que :
◦ La page web soit écrite par un designer
◦ Les code Java soient ajoutés ensuite par le
développeur.
Des composants réutilisables (Java beans)
réalisent les traitements à savoir la génération du
contenu web via Servlet.
Une des technologies de la plate-forme Java EE
les plus puissantes, simples à utiliser et à mettre
en place.
JSP combine à la fois les technologies HTML,
XML, servlet et JavaBeans (objet Java) en une
seule solution permettant aux développeurs de
créer des vues dynamiques.
Avantages d’une page JSP
C’est une technologie offrant les capacités
dynamiques des servlets tout en permettant une
approche naturelle pour la création de contenu
statiques. Ceci est rendu possible par :
◦ Un langage dédié en occurence le JSP;
◦ Elles contiennent des balises qui combinent à la fois
simplicité et puissance, via une syntaxe simple,
semblable au HTML et donc aisément
compréhensible par un humain ;
◦ 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 ;
◦ Des mécanismes permettant l'extension du langage
utilisé au sein des pages JSP :
API JSP et Servlets
Du point de vue de la structure, une JSP
est très proche d’une page PHP ou bien
ASP.
C’est un fichier qui porte l’extension .jsp
ou .jspf (pour les fragments de code).
Les JSP sont basées sur les servlets.
La servlet générée est compilée,
sauvegardée puis exécutée.
Les appels suivants de la JSP sont
beaucoup plus rapides.
Cycle de vie d’une page JSP
Une JSP est composée de texte brut contenant du
code HTML et du code Java.
Lors du premier appel, la page JSP est traduite en
une Servlet Java par l’intermédiaire du parseur JSP
contenu dans le serveur Java EE.
Phases de cycle d’une JSP
Initialisation : la page JSP est initialisée
selon le principe d’une Servlet.
Chargement et instanciation :
le serveur localise la classe Java
correspondant à la page JSP et la charge
dans la machine virtuelle.
Traitement des requêtes clients : la page
répond aux requêtes des clients. Aucun code
Java n’est envoyé aux clients.
Fin du cycle : toutes les requêtes sont
traitées et terminées, les instances de la
classe sont détruites.
Code d’une page JSP
Une page JSP porte l’extension .jsp et doit
être accessible avec un navigateur web dans
l’arborescence du serveur Java EE.
Les pages sont placées dans le répertoire
de l’application (webapp) à partir de la
racine ou dans un répertoire spécifique (/jsp,
/vues, /vues/articles/...).
Les pages JSP sont conçues pour avoir un
comportement dynamique et sont chargées
de répondre aux requêtes envoyées par
les clients.
C’est le code Java inséré dans le code HTML
qui permet ce comportement dynamique.
Eléments de code d’une JSP
La spécification JSP définit des balises
qui peuvent être employées pour
délimiter le code. Ces balises permettent
de définir trois catégories d’éléments :
Les directives : informations sur la
page.
Les scripts : placement du code dans
la page.
Les actions : inclusion de code basé
sur des balises dans la page courante.
Elements de code: directives
Ce sont des éléments qui permettent de préciser
des informations relatives à la page.
Elles sont parfois appelées directives de
moteur JSP.
Elles fournissent des instructions et des
paramètres qui déterminent la façon dont une
page JSP est traitée.
Il existe les trois directives suivantes : page,
include et taglib.
Les directives JSP commencent par <%@, et se
termine par %>.
Chaque directive a des attributs auxquels
peuvent être affectées des valeurs spécifiques.
Code JSP: Directive page
L’élément directive page permet de
définir les attributs de la page JSP,
comme les importations de classes
ou paquetages, la page invoquée en cas
d’erreur, le type de contenu...etc.
La directive page peut être définie
plusieurs fois dans un même document.
<%@ page langage="java"
pageEncoding="UTF-8"%>.
Directive include et taglib
La directive include est utilisé pour
inclure d’autres fichiers dans la page jsp.
Exemple :
<%@ include file="erreur.html" %>.
Le dernier type de directive JSP est
l’utilisation de librairies externes
personnalisées, par le biais de la
directive taglib.
Chaque page JSP compilée est
transformée en une Servlet placée dans
le répertoire /work/org/apache/jsp.
Les scripts d’une page JSP
Les scripts sont des éléments qui
permettent de placer le code Java dans
les pages JSP. Il existe trois types de
scripts :
Les déclarations : pour déclarer
et/ou initialiser une variable.
Les scriptlets : pour contenir les
instructions Java.
Les expressions : pour renvoyer des
informations aux utilisateurs.
Les scripts : les déclarations
Elle est employée pour introduire et/ou
initialiser une variable ou une méthode Java.
Elle permet de définir un bloc pour les
variables globales ainsi que pour des
méthodes.
Pour créer une déclaration, il faut placer le
code entre le délimiteur d’ouverture <%! et le
delimiteur de fermeture %>.
Elles peuvent être placées à n’importe quel
endroit dans une page JSP, mais il est
préférable de les placer en début de fichier.
Les déclarations (variables)
Toute les variables ainsi déclarées deviennent
des attributs et sont donc accessibles dans
toute la page.
Les scriptlets d’une page JSP
Les scriptlets contiennent des
instructions Java.
C’est un bloc de code incorporé dans
une page jsp.
Le code écrit dans une scriptlet est en
Java.
Le code d’une scriptlet est
placé entre le délimiteur d’ouverture
<% et le delimiteur de fermeture %>.
Les scriptlets d’une page JSP
Dans une scriptlet, l’objet
out peut être utilisé avec la méthode
print (ou println) pour générer du contenu
texte à destination du client.
Ces instructions apparaissent dans le
code Java produit lors de la traduction
des pages JSP (sous forme de servlet),
mais pas dans les réponses envoyées
au client.
Les scriptlets ne sont pas prévu pour
définir des méthodes ou des variables
globales.
Scriptlets vs déclarations
Les scriptlets ne peuvent être
employées pour définir des méthodes.
Les variables déclarées dans une
déclaration sont des attributs.
Les variables déclarées dans une
scriptlet sont des variables locales et
ne sont donc visibles qu’à l’intérieur
de la scriptlet dans laquelle elles sont
définies.
Les expressions avec JSP
Les expressions sont utilisées pour
renvoyer au client les valeurs
d’expressions Java.
Elles permettent de générer un affichage
sur une page JSP.
La scriptlet <% out.println(exp);%>
peut être remplacée par l’expression
<%= exp %>.
Elle ne peut pas s’achever par un
point virgule.
Les commentaires avec JSP
L’ajout de commentaires permet de
clarifier le code HTML et JSP.
Commentaires HTML dans les pages
JSP. Ces commentaires apparaissent
dans la page renvoyée au navigateur
client : <!-- HTML comment -->.
Commentaire JSP à l’aide des
balises <%-- JSP comment --%>.
Commentaire Java (qui peut être utilisé
dans les scriplets): monoligne // et
multiligne /*....*/.
Les actions dans une JSP
Elles sont écrites sous la forme
d’éléments XML et permettent de
condenser en une seule ligne un
traitement qui serait plus long à écrire
à l’aide d’un script Java.
Il existe deux types d’actions :
◦ Les actions standards.
◦ Les actions personnalisées.
Les actions standards avec JSP
Elles sont définies par la spécification
JSP (d’où le nom standard).
Ce sont les actions de base,
accessibles à toutes les pages JSP,
car définies dans l’API Java EE.
Les éléments XML correspondant,
commencent tous par le préfixe jsp.
Ils existent plusieurs actions standards
comme <jsp:useBean>.
<jsp:useBean>: avec page JSP
Ces types d’actions permettent de créer ou
d’importer un JavaBean dans la page et de le
manipuler.
L’action <jsp:useBean../> possède plusieurs
attributs mais trois sont essentiels
(id,class et scope).
Sa syntaxe est :
<jsp: useBean id = "unique_name_for_Bean"
class = "package_name.class_name" scope= "
session" />
◦ L’attribut id permet de donner un nom à la variable
qui va contenir la référence sur le bean. C’est le nom
utilisé pour accéder au JavaBean dans le reste de la
page, il doit être unique.
<jsp: useBean id = "unique_name" class =
"package_name.class_name" scope= "
session" />
L’élément class est le nom pleinement
qualifié de la classe du JavaBean.
L’élément scope indique la portée de
l’utilisation du JavaBean, ses valeurs
possibles sont :
◦ page : pour les attributs de portée page (defaut).
◦ request : pour les attributs de portée requête.
◦ session : pour les attributs de portée session.
◦ application : pour les attributs de portée
application.
<jsp:useBean>: avec page JSP
<jsp:getProperty> avec JSP
Avec l’utilisation d’un bean au sein d'une page, il est possible
par le biais de cette action d'obtenir la valeur d'une de ses
propriétés avec getProperty.
Deux attributs sont utiles ici :
◦ name : contient le nom réel du bean, en l'occurrence l'id que l'on
a saisi auparavant dans la balise de récupération du bean ;
◦ property : contient le nom de la propriété dont on souhaite
afficher le contenu.
Il est possible de modifier une propriété du bean utilisé.
Il existe pour cela quatre façons de faire via l'action
standard dédiée à cette tâche setProperty:
<jsp:setProperty> avec JSP