Vous êtes sur la page 1sur 47

JAVASERVER PAGES

INTRODUCTION
Comme

les servlets, servent crer du contenu Web de manire dynamique. JSP sont des documents de type texte, contenant du code HTML ainsi que des scriptlets (et/ou des expressions). pages tant bases sur du code HTML ou XML, elles peuvent tre cres et manipules par du personnel non technique.
2

Les

Ces

INTRODUCTION

INTRODUCTION
Les

pages JSP s'excutent sous la forme de servlets. Donc disposent du mme cycle de vie. Elles disposent du mme support pour la gestion des sessions. Elles peuvent galement charger des JavaBeans et appeler leurs mthodes accder des sources de donnes se trouvant sur des serveurs distants effectuer des calculs complexes.
4

INTRODUCTION

la dmarche de la plateforme J2EE, les servlets serviront plus traiter les requtes des clients alors que les pages JSP servirons plus la prsentation. ce Chap., nous allons exploiter toutes les possibilits des pages JSP.

Ds

LES LMENTS JSP


Nous

ne pouvons pas crire du code Java n'importe o dans une page HTML. Nous avons besoin d'un moyen pour indiquer au serveur o s'arrte le code HTML et o commence le code Java. Pour cela la spcification JSP dfinit des balises pour dlimiter le code Java. Ces balises permettent de dfinir trois catgories d'lments : 1. les directives ; 2. les scripts ; 3. les actions.

LES DIRECTIVES
Les

directives sont des lments fournissant au conteneur des informations relatives la page. Ils existent : 1. page : < %@ page attributs %> ou en format XML <jsp:directive.page attributs /> 2. include : < %@ include file = "..." %> ou en format XML <jsp:directive.include file = "..." />
7

Directive

Attribut Import session isThreadSafe

Description Ex: <%@ page import = "java.io.*, java.util.*" %> True ou false indique que la page fait partie d'une session. La valeur par dfaut est true. Indique si la page peut tre employe pour des accs simultans. La valeur par dfaut est true. La valeur de cet attribut peut tre une chane quelconque dcrivant le contenu de la page, ou sa fonction, son auteur, etc. Indique l'URL de la page qui doit tre renvoye au client en cas d'erreur. Cet attribut indique si la page est une page d'erreur. Sa valeur par dfaut est false. Dfinit le type de contenu de la page. Par defaut text/html Le jeu de caractres utiliss pour la page. La valeur par dfaut est ISO-8859-1
8 Le nom du fichier inclure l'emplacement de la balise. Il peut s'agir d'une page HTML ou JSP, ou du fragment de page.

Page

info

errorPage isErrorPage contentType pageEncoding Include file

LES DIRECTIVES
Une

page JSP peut contenir plusieurs directives page. la directive include est employe pour inclure une autre page, ou un fragment de page, dans la page JSP. Il peut s'agir d'un en-tte ou d'un pied de page. Cette directive est utile chaque fois qu'un contenu standard doit tre rutilis dans plusieurs pages. L'inclusion a lieu avant la traduction de la page en code Java.

LES SCRIPTS
Les 1. les

lments de script permettent de placer du code java dans les pages JSP. Il en existe trois formes :

dclarations : <%! dclaration %> ou en format XML <jsp:declaration>dclaration</jsp:declaration> 2. les scriptlets : <% fragment de code %> ou en format XML <jsp:scriptlet>fragment de code</ jsp:scriptlet>
3. les

expressions : <%= expression %> ou en format XML <jsp:expression>expression</jsp:expression>


10

LES DCLARATIONS
Une

dclaration doit tre employe pour dclarer pour initialiser un attribut pour dclarer une mthode Par exemple,
Nous

pouvons galement dfinir des mthodes qui seront utilises ensuite dans l'ensemble de la page

Les

attributs ou les mthodes ainsi dclares peuvent tre appeles par n'importe quel code (scriptlets) prsent dans toute la page

11

LES SCRIPTLETS
Les

scriptlets contiennent des instructions Java. Les scriptlets peuvent contenir n'importe quel code Java valide. Par exemple,
Tout

ce qui se trouve entre les dlimiteurs de scriptlets (<% et%>) est du code Java. Ce qui se trouve l'extrieur est le contenu renvoy au client. Scriptlet valide

12

LES SCRIPTLETS
la

diffrence entre les scriptlets et les dclarations 1. Les scriptlets ne peuvent tre employes pour dfinir des mthodes. Seules les dclarations permettent cela. 2. Les variables dclares dans une dclaration sont des attributs, accessible dans toutes les scriptlets de la page. 3. Les variables dclares dans une scriptlet sont des variables locales et ne sont donc visibles qu' l'intrieur de la scriptlet dans laquelle elles sont dfinies.
13

LES EXPRESSIONS
Les

expressions sont utilises pour renvoyer directement au client 1. la valeur d'une variable 2. la valeur retour d'une mthode. Exemple

les dclarations et les scriptlets contiennent des lignes de code Java et doivent donc tre systmatiquement termines par des points-virgules. En revanche, les expressions ne doivent pas en 14 comporter.

LES COMMENTAIRES
Il

est possible d'utiliser des commentaires HTML dans les pages JSP. Ces commentaires apparaissent dans la page renvoye au client

Il

existe galement des commentaires JSP :

15

EXEMPLE SUR LES DIRECTIVES ET LES SCRIPTS


Nous

allons mettre en uvre une application Web qui permet de grer une petite messagerie Voici, ci-dessous la page d'accueil d'un tel site :

16

BASE DE DONNES

17

ARCHITECTURE DE L'APPLICATION WEB

18

ARCHITECTURE DE L'APPLICATION WEB

19

ARCHITECTURE DE L'APPLICATION WEB

20

BIENVENUE.JSP

21

*.JSPF

22

*.JSPF

23

LES ACTIONS

Egalement appeles actions standards. actions standards sont dfinies par la spcification JSP. est possible de dfinir de nouvelles actions et les utiliser dans nos pages JSP.

Les

Il

24

LES ACTIONS
La spcification JSP 2.0 dfinit les actions standards suivantes : 1. <jsp:useBean> 2. <jsp:setProperty> 3. <jsp:getProperty> 4. <jsp:param> 5. <jsp:include> 6. <jsp:forward> 7. <jsp:plugin>, <jsp:params>, <jsp:fallback> 8. <jsp:attribute> 9. <jsp:body> 25 10. jsp:invoke> et <jsp:dobody> <

LES JAVABEANS
Dans les pages JSP, il est toujours trs difficile de lire ce mlange la fois de code HTML et de code Java. De prfrable, utiliser une criture plus proche du HTML en utilisant la syntaxe du XML tout en faisant rfrence, malgr tout, des classes Java. dans la page Web .jsp, nous retrouvons quand mme un peu de code Java pour pouvoir utiliser ces classes. Les JavaBeans permettent de composer une structure particulire sur ces classes respectant un canevas standard, sans code Java dans la page JSP.

26

L'ACTION <JSP:USEBEAN>
Cet lment permet de rendre un JavaBean accessible dans la page. Un JavaBean est simplement une classe Java respectant un certain nombre de conventions. Les deux plus importantes sont : 1. La classe d'un JavaBean doit possder un constructeur sans arguments. 2. La classe d'un JavaBean doit possder un ensemble de proprits.

27

L'ACTION <JSP:USEBEAN>
L'action <jsp:useBean> prend le paramtres suivants : 1. id : Le nom utilis pour accder au bean dans le reste de la page. Il doit tre unique. Il s'agit en fait du nom de l'objet rfrenant l'instance de la classe du bean donn par le paramtre class. 2. scope : La porte du bean. Les valeurs possibles sont page, request, session et application. La valeur par dfaut est page. 3. class : Le nom de la classe bean. 4. type : Le type de la variable rfrenant le bean.

28

L'ACTION <JSP:SETPROPERTY>
Cette action permet de modifier la valeur d'une proprit d'un JavaBean. Elle prend les attributs suivant : 1. name - l'id du bean. 2. property - le nom de la proprit modifier, La valeur peut nommer explicitement une proprit du bean. La valeur peut galement tre ( * ). 3. value - contient la nouvelle valeur affecter la proprit. 4. param - le nom du paramtre de la requte contenant la valeur affecter la proprit. Si les attributs param et value ne sont pas prsents l'action <jsp:setProperty> tente d'utiliser le 29 paramtre de la requte portant le mme nom que la proprit.

EXEMPLE : <JSP:SETPROPERTY>

30

L'ACTION <JSP:GETPROPERTY>
Cette

action permet de lire la valeur d'une proprit d'un JavaBean.

Elle

possde les attributs suivant : 1. name - l'id du bean 2. property - le nom de la proprit lire.
Les

attributs name et property sont toujours requis. valeur de la proprit est incluse dans la rponse

La

31

L'ACTION <JSP:GETPROPERTY>

Lorsque

la page JSP est traduite en code Java, cette action est remplace par un appel aux mthodes getNom() et getPrnom().

32

EXEMPLE
Le

javaBean Personne qui rcupre les informations saisies par l'utilisateur afin de les enregistrer dans la base de donnes avec une mise en majuscule adapte La page JSP <nouvelutilisateur.jsp> qui s'occupe du formulaire de saisie. La page JSP <validerutilisateur.jsp> qui rcupre les informations issues du formulaire, se met ensuite en relation avec le JavaBean Personne et affiche le rsultat suivant le comportement du JavaBean.

33

EXEMPLE

34

35

EXEMPLE

36

EXEMPLE

37

EXEMPLE

38

LES OBJETS IMPLICITES


Avant de continuer sur la suite des actions, nous allons passer par la connaissance des objets implicites. Comme les pages JSP sont finalement des servlets, il est normal de retrouver les mmes objets Ces objets, nous pouvons y accder sans jamais avoir les dclarer ou les initialiser. Sont accessibles dans : scriptlets et expressions. Voici la liste des objets implicites : 1. request 2. response 3. out 4. session 5. config 6. exception 7. application

39

LES DIFFRENTES PORTES


La

porte d'un objet est prcise par l'attribut scope

40

EXEMPLE SUR LES OBJETS IMPLICITES


Voir lExemple en TP.

41

INCLUSION DE PAGES ET TRANSMISSION DE REQUTES


Les

pages JSP offrent la possibilit d'inclure d'autres pages ou servlets dans la sortie renvoye au client la requte une autre page ou une

Transmettre

servlet
Grce

aux actions standards <jsp:include> et <jsp:forward>

42

L'ACTION INCLUDE
Il

peut arriver que de nombreuses pages JSP contiennent des fragments semblables, voir identiques exemple, le haut d'une page Web ou encore un des lments de la charte graphique. est alors pratique d'isoler ces fragments dans des fichiers spars et de les inclure dans les diffrentes pages. approche facilite la maintenance du site
43

Par

Il

Cette

L'ACTION INCLUDE
Il

existe deux approches: 1. La directive include, 2. L'action include.

Directive

- <% include file ="..." %> : La ressource est incluse au moment de la traduction de la page en code Java, il s'agit ici d'une inclusion statique. - <jsp:include page = "..." /> - Contrairement aux directives qui ne servent qu'au moment de la traduction/compilation de page, les actions sont excutes lors du traitement d'une requte.
44

Action

L'ACTION FORWARD
Une

requte peut tre renvoye une autre page JSP, un servlet ou mme une simple page HTML :

Tous

les objets dont la porte est au moins la requte sont accessibles dans cette autre page.

45

ERREURS ET EXCEPTIONS
Il

est possible que notre application Web ne fonctionnement correctement lorsque par exemple le serveur de base de donnes est momentanment hors connexion. le client peut recevoir au travers de son navigateur

46

ERREURS ET EXCEPTIONS
Une

page peut rediriger les erreurs provenant d'une exception vers une autre page (erreur.jsp). Il faut : 1. dclarer dans la page erreur.jsp qu'elle traite les erreurs
2. dclarer

que la page ne le fait pas et prciser le nom de la page d'erreur :

47

Vous aimerez peut-être aussi