Vous êtes sur la page 1sur 19

Chapitre 3:

JSP (Java Server Page)


JSP
1. Introduction
2. Qu'est-ce qu'une jsp?
3. Quoi ?
4. Pourquoi ?
5. Comment ?
1. Introduction :
Le modèle MVC nous conseille de placer tout ce qui
touche à l'affichage final (texte, mise en forme, etc.)
dans une couche à part : la vue.
La technologie utilisée pour réaliser une vue est la page
JSP
2. JSP

C'est un document qui, à première vue, ressemble beaucoup à


une page HTML, mais qui en réalité en diffère par plusieurs
aspects :

1. L’extension d'une telle page devient .jsp et non plus


.html ;
2. une telle page peut contenir des balises HTML, mais
également des balises JSP qui appellent de manière
transparente du code Java.
3. 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.
3. Quoi ?:

Quoi ?
• Les pages JSP sont une des technologies de la plate-forme
Java EE les plus puissantes, simples à utiliser et à mettre en
place.
• 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.
3. Pourquoi ?:

Pourquoi ?
• La technologie servlet est trop difficile d'accès et ne
convient pas à la génération du code de présentation.

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


rôle de simplification de l'API servlet.

• les pages JSP sont en quelque sorte une abstraction "haut


niveau" de la technologie servlet.
3. Comment ?:
Comment ?
• un langage dédié : les pages JSP sont des documents au format
texte, à l'opposé des classes Java que sont les servlets, qui
décrivent indirectement comment traiter une requête et construire
une réponse. 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 : il est possible de mettre en place des balises
qui n'existent pas dans le langage JSP, afin d'augmenter les
fonctionnalités accessibles.
Mise en Place
1. Création de la vue ?
2. Mise en Place ?
3. Cycle de vie
4. Envoyer des données au client
1. JSP
1. JSP

Page JSP par défaut générer par Eclipse


3. Cycle de vie

• Que se passe-t-il si le contenu d'une page JSP est modifié ? Que


devient la servlet auto-générée correspondante ?

• le conteneur vérifie si la JSP a déjà été traduite et compilée en


une servlet :
• si non, il vérifie la syntaxe de la page, la traduit en une
servlet (du code Java) et la compile en une classe
exécutable prête à l'emploi.
• si oui, il vérifie que l'âge de la JSP et de la servlet est
identique :
• si non, cela signifie que la JSP est plus récente que la
servlet et donc qu'il y a eu modification, le conteneur
effectue alors à nouveau les tâches de vérification,
traduction et compilation
• il charge ensuite la classe générée, en crée une instance et
l'exécute pour traiter la requête.
3. Cycle de vie
3. Cycle de vie
• Quand une JSP est demandée pour la première fois, ou quand
l'application web démarre, le conteneur de servlets va vérifier,
traduire puis compiler la page JSP en une classe héritant de
HttpServlet, et l'utiliser durant l'existence de l'application.

• JSP est littéralement transformée en servlet par le serveur.

• le code source ainsi généré se trouve dans le répertoire de travail


du serveur : sous Tomcat, il s'agit du répertoire /work.

• à partir du moment où vous avez appelé au moins une fois cette JSP
depuis votre navigateur ! Cette servlet est bien présente dans le
répertoire de travail de Tomcat.

• par défaut ce dernier va en quelque sorte prendre la main sur


Tomcat, et mettre tous les fichiers dans un répertoire à lui.
4. Cycle de vie
1. C:\Users\PC\eclipse-
workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localho
st\app_test\org\apache\jsp\test_jsp.class
2. C:\Users\PC\eclipse-
workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localho
st\app_test\org\apache\jsp\test_java.class

3. Au milieu du code généré par Tomcat nous retrouvons bien des instructions très
semblables à celles de notre servlet:

out.write("\r\n");
out.write("<!DOCTYPE html>\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta charset=\"ISO-8859-1\">\r\n");
out.write("<title>Insert title here</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("\t<p>Ceci est une page générée depuis une JSP.</p>\r\n");
out.write("</body>\r\n");
out.write("</html>");
5. Mise en relation avec notre servlet

Remarque :
• Une page présente sous le répertoire /WEB-INF n'est plus accessible directement
par une URL côté client ! Il devient alors nécessaire de passer par une servlet côté
serveur pour donner l'accès à cette page.
• le dossier WebContent existe uniquement dans Eclipse ! il correspondait en
réalité à la racine de l'application, et c'est donc pour ça qu'il faut bien écrire
/WEB-INF/test.jsp en argument de la méthode getRequestDispatcher(), et non
pas /WebContent/WEB-INF/test.jsp
À Retenir :

• Une page JSP ressemble en apparence à une page HTML, mais en réalité elle est bien plus proche d'une servlet
: elle contient des balises derrière lesquelles se cache du code Java.
• Une page JSP est exécutée sur le serveur, et la page finale générée et envoyée au client est une simple page
HTML : le client ne voit pas le code de la JSP.
• Idéalement dans le modèle MVC, une page JSP est accessible à l'utilisateur à travers une servlet, et non pas
directement.
• Le répertoire /WEB-INF cache les fichiers qu'il contient à l'extérieur de l'application.
• La méthode forward() de l'objet RequestDispatcher permet depuis une servlet de rediriger la paire
requête/réponse HTTP vers une autre servlet ou vers une page JSP.
Exercice
Exercice 2
Créer un projet Java EE qui permettra de réaliser la somme entre deux chiffres
entier et d’afficher le résultat après avoir cliqué sur «=».
Exercice 3
Créer un projet Java EE qui permettra d’afficher le tableau suivant contenant
les informations des personnes. Ces informations seront généré dans le
contrôleur.

Vous aimerez peut-être aussi