Les page JSP - lsis. · PDF filePlan 1 Introduction 2 Creer une page JSP´ 3 Les balises...

Click here to load reader

  • date post

    30-Dec-2018
  • Category

    Documents

  • view

    217
  • download

    0

Embed Size (px)

Transcript of Les page JSP - lsis. · PDF filePlan 1 Introduction 2 Creer une page JSP´ 3 Les balises...

Les page JSP

Achref El Mouelhi

Docteur de luniversite dAix-MarseilleChercheur en Programmation par contrainte (IA)

Ingenieur en Genie logiciel

[email protected]

18 Decembre 2017, CDI Lyon 2017 1 / 42

Plan

1 Introduction

2 Creer une page JSP

3 Les balises JSP

4 Les directives

5 Recuperer les parametres dune requete

6 Transmission de donnees entre Servlet/JSP

7 Portee dune variable

8 Creation dun objet

9 EL : Expression Language

10 Objets implicites

11 Gerer les exceptions

18 Decembre 2017, CDI Lyon 2017 2 / 42

Introduction

Introduction

JSP

Java Server Pages

Une technologie de la plateforme JEE permettant de creerdynamiquement des pages HTML (dextension .jsp)

Une page JSP sera transformee par le compilateur en Servlet

Ensuite cette Servlet sera compilee par la JVM (machine virtuelle)

Les JSP sont extensibles : on peut creer nos propres balises JSP(avec JSTL)

18 Decembre 2017, CDI Lyon 2017 3 / 42

Introduction

Une page JSP : appelee par le controleur

Client

Controleur

(Servlet)

Serveur

Vue

(page JSP)

Modele

(Java Bean)

RequeteHTTP

ReponseHTTP

18 Decembre 2017, CDI Lyon 2017 4 / 42

Creer une page JSP

Creation dune page JSP

Deroulement

Faire un clic droit sur WEB-INF de notre projet

Aller dans New et choisir JSP File

Remplir le champ File name: par vue.jsp (par exemple)

Valider

18 Decembre 2017, CDI Lyon 2017 5 / 42

Creer une page JSP

Creation dune page JSP

Notre vue generee

Insert title here

18 Decembre 2017, CDI Lyon 2017 6 / 42

Creer une page JSP

Creation dune page JSP

Preparons notre Hello World

Projet JEE

Hello World (depuis une JSP)

18 Decembre 2017, CDI Lyon 2017 7 / 42

Creer une page JSP

Creation dune page JSP

Comment lappeler?

Cest toujours le controleur (Servlet) qui communique avec lesvues

18 Decembre 2017, CDI Lyon 2017 8 / 42

Creer une page JSP

Creation dune page JSP

Pour construire correctement une page HTML

protected void doGet(HttpServletRequest request,HttpServletResponse response) throwsServletException, IOException{this.getServletContext().getRequestDispatcher("/

WEB-INF/vue.jsp").forward(request, response);}

Explicationthis.getServletContext() : permet de communiquer avecdautres composants (via le conteneur de Servlet)getRequestDispatcher("/WEB-INF/vue.jsp") : permetdindiquer lemplacement de la vue et de la recupererforward(request, response) : pour envoyer la requete et lareponse (on les utilisera plus tard)

18 Decembre 2017, CDI Lyon 2017 9 / 42

Les balises JSP

Initiation aux balises JSPObservons notre vue

Projet JEE

Hello World (depuis une JSP)

18 Decembre 2017, CDI Lyon 2017 10 / 42

Les balises JSP

Initiation aux balises JSP

Les balises JSP

sont definies par

Entre ces deux balises, on peut utiliser les bases algorithmiquesdu langage Java :

des structures conditionnelles

des structures iteratives

...

Les balises JSP peuvent etre utilisees plusieurs fois dans unepage JSP

18 Decembre 2017, CDI Lyon 2017 11 / 42

Les balises JSP

Initiation aux balises JSP

Balises speciales

: pour ajouter un commentaire

: pour declarer une variable directementdans la classe de la servlet.

: pour afficher le contenu de la variable var

18 Decembre 2017, CDI Lyon 2017 12 / 42

Les balises JSP

Initiation aux balises JSP

AttentionIl est deconseille de melanger du code HTML avec du code JAVA

18 Decembre 2017, CDI Lyon 2017 13 / 42

Les directives

Les directives

Definition

Les directives sont des instructions dans des balises JSPspeciales

Elles ont la structure suivante :

Role

definir des donnees relatives a la page (directive page)

inclure une autre page JSP (directive include)

inclure des bibliotheques de balises (directive taglib)

18 Decembre 2017, CDI Lyon 2017 14 / 42

Les directives

Les directives

Definition

Les directives sont des instructions dans des balises JSPspeciales

Elles ont la structure suivante :

Role

definir des donnees relatives a la page (directive page)

inclure une autre page JSP (directive include)

inclure des bibliotheques de balises (directive taglib)

18 Decembre 2017, CDI Lyon 2017 14 / 42

Les directives

Les directives

Definir des donnees relatives a la page

...

Autres attributs

extends

import

session = "true | false"

isELIgnored = "true | false"

...

18 Decembre 2017, CDI Lyon 2017 15 / 42

Les directives

Les directives

Definir des donnees relatives a la page

...

Autres attributs

extends

import

session = "true | false"

isELIgnored = "true | false"

...

18 Decembre 2017, CDI Lyon 2017 15 / 42

Les directives

Les directivesInclure le contenu dune autre page JSP

ou

Difference entre les deux solutions

Avec la premiere solution, le fichier sera charge au moment de lacompilation (donc le contenu de maPage sera recompile avec lecode de la page appelante)Avec la deuxieme au moment de lexecution

UtilisationPour inclure (menu, entete...) qui sont generalement definis dans unfichier specifique et qui sera inclus dans les autres fichiers delapplication (pour eviter le copier/coller et favoriser la reutilisation).

18 Decembre 2017, CDI Lyon 2017 16 / 42

Les directives

Les directivesInclure le contenu dune autre page JSP

ou

Difference entre les deux solutions

Avec la premiere solution, le fichier sera charge au moment de lacompilation (donc le contenu de maPage sera recompile avec lecode de la page appelante)Avec la deuxieme au moment de lexecution

UtilisationPour inclure (menu, entete...) qui sont generalement definis dans unfichier specifique et qui sera inclus dans les autres fichiers delapplication (pour eviter le copier/coller et favoriser la reutilisation).

18 Decembre 2017, CDI Lyon 2017 16 / 42

Les directives

Les directivesInclure le contenu dune autre page JSP

ou

Difference entre les deux solutions

Avec la premiere solution, le fichier sera charge au moment de lacompilation (donc le contenu de maPage sera recompile avec lecode de la page appelante)Avec la deuxieme au moment de lexecution

UtilisationPour inclure (menu, entete...) qui sont generalement definis dans unfichier specifique et qui sera inclus dans les autres fichiers delapplication (pour eviter le copier/coller et favoriser la reutilisation).

18 Decembre 2017, CDI Lyon 2017 16 / 42

Les directives

Les directives

Inclure des bibliotheques de balises (a voir dans un prochainchapitre)

18 Decembre 2017, CDI Lyon 2017 17 / 42

Recuperer les parametres dune requete

Recuperer les parametres dune requete

Comme pour les Servlets

request.getParameter("nomParameter");

18 Decembre 2017, CDI Lyon 2017 18 / 42

Recuperer les parametres dune requete

Recuperer les parametres dune requete

Projet JEE

Hello World (depuis une JSP)

18 Decembre 2017, CDI Lyon 2017 19 / 42

Transmission de donnees entre Servlet/JSP

Transmission de donnees entre Servlet/JSP

Et si la Servlet veut transmettre des donnees (variables, objets...)a la vue ?

On peut utiliser request.setAttribute() pour transmettre etrequest.getAttribute() pour recuperer

request.setAttribute("nomAttribut","valeur")

request.getAttribute("nomAttribut") : recupere lobjetayant le nom nomAttribut qui doit correspondre au nom utiliselors de lenvoi

18 Decembre 2017, CDI Lyon 2017 20 / 42

Transmission de donnees entre Servlet/JSP

Transmission de donnees entre Servlet/JSP

Envoi de donnees par la Servlet

protected void doGet(HttpServletRequest request,HttpServletResponse response) throwsServletException, IOException {

String ville = "Marseille";request.setAttribute("maVille",ville);// lenvoi de request se fait apres cette

instructionthis.getServletContext().getRequestDispatcher("/

WEB-INF/vue.jsp").forward(request, response);}

18 Decembre 2017, CDI Lyon 2017 21 / 42

Transmission de donnees entre Servlet/JSP

Transmission de donnees entre Servlet/JSPRecuperation de donnees par la JSP

Projet JEE

18 Decembre 2017, CDI Lyon 2017 22 / 42

Transmission de donnees entre Servlet/JSP

Transmission de donnees entre Servlet/JSP

Envoi dun objet

protected void doGet(HttpServletRequest request,HttpServletResponse response) throwsServletException, IOException {Personne perso = new Personne();perso.setNom("Wick");perso.setPrenom("John");perso.setNum(100);request.setAttribute("perso",perso);this.getServletContext().getRequestDispatcher("/

WEB-INF/vue.jsp").forward(request, response);}

18 Decembre 2017, CDI Lyon 2017 23 / 42

Transmission de donnees entre Servlet/JSP

Transmission de donnees entre Servlet/JSP

Recuperation de lobjet

Projet JEE

18 Decembre 2017, CDI Lyon 2017 24 / 42

Portee dune variable

Portee dune