4 JSP & JavaBeans ... page import="java.io.*, java.util.*" %>. Thierry Lecroq (Univ
. Rouen). JSP ... la transmission de l'exception pour un éventuel traitement.
Les Java Servlet Pages (JSP) Thierry Lecroq (merci à Alexandre Pauchet (INSA Rouen)) Université de Rouen FRANCE
Thierry Lecroq
(Univ. Rouen)
JSP
1 / 31
Plan
1
Introduction
2
Fonctionnement
3
Inclusion/Délégation
4
JSP & JavaBeans
5
Standard Tag Library
Thierry Lecroq
(Univ. Rouen)
JSP
2 / 31
Introduction
(1/4)
Description d'une JSP
JSP = Java Servlet Pages Les JSP sont comparables à PHP Langage de script côté serveur Une page JSP contient : du contenu statique (texte simple, XHTML, XML, . . . ) du code JSP qui produit dynamiquement du contenu
Thierry Lecroq
(Univ. Rouen)
JSP
3 / 31
Introduction
(2/4)
Premier exemple
hello.jsp
" −//W3C/ /DTD XHTML
1.0
S t r i c t / /EN"
" h t t p : / / www . w3 . o r g /TR/
x h t m l 1 /DTD/ x h t m l 1 − s t r i c t . d t d "> < t i t l e >Ma
p r e m i&e g r a v e ; r e
page
JSP
! ! ! !
< l a b e l >P r&e a c u t e ; nom
:
t y p e =" s u b m i t "
< i n p u t
t y p e =" t e x t "
name=" p r e n o m "
s i z e =" 3 0 ">
Thierry Lecroq
(Univ. Rouen)
JSP
4 / 31
Introduction
(3/4)
Traduction, compilation, instanciation, . . .
Une JSP est transformée en servlet Fonctionnement : 1
2
3
4
5
requête sur une JSP une servlet compare les dates de la JSP et de sa servlet si la servlet de la JSP est plus ancienne que la page : I
traduction de la JSP en servlet (dérivation)
I
compilation de la servlet (cf. répertoire
tomcat/work)
si la servlet de la page n'a pas encore été chargée I
chargement de la servlet
I
instanciation
I
initialise la servlet avec la méthode
jspInit
invocation de la méthode jspService Appel de jspDestroy lors du déchargement de la servlet
Thierry Lecroq
(Univ. Rouen)
JSP
5 / 31
Introduction
(4/4)
Quelques éléments JSP
: directives valables pour la page : déclarations : scriptlet (= script : tests, itération, . . . ) : récupération d'une valeur d'expression : inclusion à l'exécution : délégation à un autre composant : utilisation d'un java bean
Thierry Lecroq
(Univ. Rouen)
JSP
6 / 31
Fonctionnement
(1/11)
Directives de page
Ces directives s'appliquent à la page Syntaxe
Exemples
Thierry Lecroq
(Univ. Rouen)
JSP
7 / 31
Fonctionnement
(2/11)
Paramètres d'exécution d'une page JSP
L'exécution d'une JSP est paramétrable via la directive page spécie la taille du buer où est renvoyée la réponse un petit buer allège en charge le serveur d'application et envoie la réponse plus rapidement. spécie la page (JSP ou non) vers laquelle le serveur d'application renvoie lorsqu'une exception non gérée est lancée par la JSP. La directive permet de spécier si la page de renvoie est une page d'erreur et lui autorise ainsi la transmission de l'exception pour un éventuel traitement. Thierry Lecroq
(Univ. Rouen)
JSP
8 / 31
Fonctionnement
(3/11)
Exemple
erreur.jsp c h a r s e t =UTF−8" %>
parametre.jsp
Thierry Lecroq
(Univ. Rouen)
JSP
19 / 31
Inclusion/Délégation
(3/4)
Délégation
Délégation à un autre composant web Syntaxe ou
...
Thierry Lecroq
(Univ. Rouen)
JSP
20 / 31
Inclusion/Délégation
(4/4)
Exemple
delegation.jsp
" −//W3C/ /DTD XHTML
1.0
S t r i c t / /EN"
" h t t p : / / www . w3 . o r g /TR/
x h t m l 1 /DTD/ x h t m l 1 − s t r i c t . d t d "> < t i t l e >JSP
avec
d e l e g a t i o n
name="nom"
v a l u e =" Bob "
/>
parametre.jsp
" −//W3C/ /DTD XHTML
1.0
S t r i c t / /EN"
" h t t p : / / www . w3 . o r g /TR/
x h t m l 1 /DTD/ x h t m l 1 − s t r i c t . d t d "> < t i t l e > A f f i c h a g e
d e l e g u e
Thierry Lecroq
(Univ. Rouen)
JSP
21 / 31
JSP & JavaBeans
(1/9)
Dénition
Denition (JavaBean) Classe java respectant certaines conventions (API) faisant d'elle un composant java réutilisable et facilement intégrable dans des applications.
Les JSP orent des balises pour interagir avec un JavaBean
Thierry Lecroq
(Univ. Rouen)
JSP
22 / 31
JSP & JavaBeans
(2/9)
Contraintes de conception
Pour être un JavaBean, une classe doit : être Serializable, posséder un constructeur sans argument, avoir des accesseurs sur ses attributs respectant des conventions de nommage ; par exemple : attribut String name ⇒ public void setName(String) ⇒ public String getName()
contenir les méthodes d'interception d'évènements nécessaires.