1. Chapitre VI: Java server pages t coursN°1 :jsp
https://www.tutorialspoint.com/jsp/
Spécialité : développeur d’applications multiplateformes.
Matière : Développement des applications web avec java.
Titre :
JAVA SERVER PAGES :
JSP
Objectif pédagogique: à la fin de la leçon, le stagiaire doit être capable de :
Manipuler les différents objets d’une page jsp correctement
Temps : 4 heures.
Aides pédagogiques: laptop.
Plan :
I. JSP
II. Directives jsp
III. Parties d’une page jsp
IV. Scriplet et les objets implicites
V. Manipulation des EL
Fiche pédagogique
2. Chapitre VI: Java server pages t coursN°1 :jsp
https://www.tutorialspoint.com/jsp/
I. JSP = Java Server Pages
Une JSP est un fichier contenant du code HTML et des fragments de code Java exécutés
sur le moteur de Servlets.
Comparable aux langages côtés serveur de type PHP, ASP, …
Les Java Server Pages d’extension .JSP sont construites par-dessus les servlets : le
moteur Java transforme les fichiers .JSP en servlets (étape de traduction) puis exécute le
servlet résultant qui génère la page HTML (étape de requête).
les parties statiques de la page HTML sont écrites en HTML, les parties dynamiques de
la page HTML sont écrites en Java.
Servlet = du code Java contenant de l'HTML, JSP = une page HTML contenant du code
Java.
Remarque
Pour voir le code servlet cliquer sur le fichier puis sélectionner view servlet
Exercice d’application N°1
<html><head><title>Obtenu par une JSP</title></head>
<body>
<h3>Bonjour de ma part </h3> <br>
La date courante est : <%= new java.util.Date() %>
</body>
</html>
Fragment du
code java
3. Chapitre VI: Java server pages t coursN°1 :jsp
https://www.tutorialspoint.com/jsp/
II. Directives JSP : tags d’une page
La directive page définit les attributs spécifiques à une page
import : importe un paquetage Java. Cette directive résulte en une
instruction import dans la Servlet
<%@ page import="java.util.*, java.text.*" %>
langage : définit le langage de script utilisé dans la page
<%@ page language="java" %>
contentType : définit le type de contenu de la page générée
<%@ page contentType="text/plain" %>
errorPage : indique la page à afficher si une exception se produit
pendant le traitement de la requête http
<%@ page errorPage="toto.jsp" %>
isErrorPage : vaut true si la page est une erreur et false pour une
page normale
<%@ page isErrorPage=false %>
Exercice d’application N°2
<%@ page import="java.util.Date"%>
<html><head><title>Today</title></head><body>
<h1>Today</h1>
<%
// Maps day number to a name
String days [] = { "Dimanche", "Lundi", "Mardi", "Mercredi",
"Jeudi", "Vendredi", "Samedi" };
// Get today’s date
Date today = new Date ();
int weekday = today.getDay ();
out.println ("<p>On est " + days [weekday] + " aujourd’hui!");
%>
</body></html>
III. Parties d'une JSP
1. Scriptlets <% %>
Contient du code Java insérer dans jspservice() de la servlet, donc on peut utiliser
(out, request, response, etc.
2• Expressions <%= %>
Expression Java qui renvoie un objet String ou un type primitif.retourne une
String qui est passée à out.println dan _jspService : <%= SALUT %> équivalent
<% out.println(SALUT) ; %>
3. Déclaration <% ! %>
Sont des declarations java Declaration de variables et de méthodes.
4. Chapitre VI: Java server pages t coursN°1 :jsp
https://www.tutorialspoint.com/jsp/
Exercice d’applicationN°3
<html>
<head>
<title>les 3 parties de JSP</title>
</head>
<body>
<%! String contenu[] = {"meziani","abbadi","belmadani"}; %>
<%
for (int i = 0; i <contenu.length; i++) {
%>
Le <%= i+1 %> ème nom est <%= contenu[i] %> <p>
<% } %>
</body>
</html>
IV. Scriplet et objets implicites
Les objets implicites sont les objets présents dans la méthode service(…) qui ont été
employés dans la partie Servlet
Ils sont identifiés par des noms de variables uniques :
request : requête courante
response : réponse courante
session : session courante
out : flot de sortie permet l’écriture sur la réponse
application : contient des méthodes log() permettant d'écrire des
messages dans le journal du contenu (ServletContext)
pageContext : utilisé pour partager directement des variables entre
des pages JSP et supportant les beans et les balises
exception : disponible uniquement dans les pages erreurs donnant
information sur les erreurs
Exercice d’application 4(cliquer sur le fichier jsp pour voir servlet)
<%@ page language="java" contentType="text/html" %>
<html>
<head>
<title>Informations du client</title>
</head>
<body bgcolor="white">
Protocol : <%= request.getProtocol() %><br>
Scheme : <%= request.getScheme() %><br>
ServerName : <%= request.getServerName() %><br>
ServerPort : <% out.println(request.getServerPort()); %><br>
RemoteAddr : <% out.println(request.getRemoteAddr()); %><br>
RemoteHost : <% out.println(request.getRemoteHost()); %><br>
Method : <%= request.getMethod() %><br>
</body>
5. Chapitre VI: Java server pages t coursN°1 :jsp
https://www.tutorialspoint.com/jsp/
V. Manipulation de l’Expression (EL)
Les expressions EL permettent via une syntaxe très épurée d'effectuer des tests basiques sur
des expressions, et de manipuler simplement des objets et attributs dans une page, et cela sans
nécessiter l'utilisation de code ni de script Java
La première chose que vous devez savoir, c'est qu'à l'intérieur d'une expression, vous pouvez
effectuer diverses sortes de tests. Pour réaliser ces tests, il vous est possible d'inclure toute une
série d'opérateurs. Parmi ceux-ci, on retrouve les traditionnels :
opérateurs arithmétiques, applicables à des nombres : +, -, *, /, % ;
opérateurs logiques, applicables à des booléens : &&, ||, ! ;
opérateurs relationnels, basés sur l'utilisation des
méthodes equals() et compareTo() des objets comparés : == ou eq, != ou ne, < ou lt, >
ou gt, <= ou le, >= ou ge.
Exercice d’application N°4
<body>
<p>
<!-- Logiques sur des booléens -->
${ true && true } <br /> <!-- Affiche true -->
${ true && false } <br /> <!-- Affiche false -->
${ !true || false } <br /> <!-- Affiche false -->
<!-- Calculs arithmétiques -->
${ 10 / 4 } <br /> <!-- Affiche 2.5 -->
${ 10 mod 4 } <br /> <!-- Affiche le reste de la division entière, soit 2 -->
${ 10 % 4 } <br /> <!-- Affiche le reste de la division entière, soit 2 -->
${ 6 * 7 } <br /> <!-- Affiche 42 -->
${ 63 - 8 } <br /> <!-- Affiche 55 -->
${ 12 / -8 } <br /> <!-- Affiche -1.5 -->
${ 7 / 0 } <br /> <!-- Affiche Infinity -->
<!-- Compare les caractères 'a' et 'b'. Le caractère 'a' étant bien situé avant le caractère 'b' dans l'alphabet
ASCII, cette EL affiche true. -->
${ 'a' < 'b' } <br />
<!-- Compare les chaînes 'hip' et 'hit'. Puisque 'p' < 't', cette EL affiche false. -->
${ 'hip' gt 'hit' } <br />
<!-- Compare les caractères 'a' et 'b', puis les chaînes 'hip' et 'hit'. Puisque le premier test renvoie true et le
second false, le résultat est false. -->
${ 'a' < 'b' && 'hip' gt 'hit' } <br />
<!-- Compare le résultat d'un calcul à une valeur fixe. Ici, 6 x 7 vaut 42 et non pas 48, le résultat est false.
-->
${ 6 * 7 == 48 } <br />
<!-- Vérifications si vide ou null -->
${ empty 'test' } <!-- La chaîne testée n'est pas vide, le résultat est false --><br />
6. Chapitre VI: Java server pages t coursN°1 :jsp
https://www.tutorialspoint.com/jsp/
${ empty '' } <!-- La chaîne testée est vide, le résultat est true --><br />
${ !empty '' } <!-- La chaîne testée est vide, le résultat est false --><br />
<!-- Conditions ternaires -->
${ true ? 'vrai' : 'faux' } <!-- Le booléen testé vaut true, vrai est affiché --><br />
${ 'a' > 'b' ? 'oui' : 'non' } <!-- Le résultat de la comparaison vaut false, non est affiché --><br />
${ empty 'test' ? 'vide' : 'non vide' } <!-- La chaîne testée n'est pas vide, non vide est affiché --><br />
</p>
</body>
</html>