SlideShare une entreprise Scribd logo
Les Java Server Pages (JSP)
Pr Abderrahim Marzouk
Département de Mathématiques et
Informatique
Master RSI 2019-2020
1
JSP ?
• JSP permet d’insérer du code Java directement
dans une page HTML en utilisant des balises
(tags):
 Scriptlets : <%code Java %>
 Expressions : <%=expression Java%>
 Déclarations : <%!code Java %>
 Directives : <%@directive %>
2
• Une page JSP est enregistrée comme un fichier texte avec l’extension .jsp
• Une JSP est transformée en servlet par Tomcat
JSP Servlet
Une page JSP (exemple.jsp) devient le Servlet
suivant:
public class exemple_jsp extends HttpServlet
{ //méthode de service
public void _jspService(HttpServletRequest request, HttpServletResponse
response) throws IOException,ServletException
{
---------------------------------------------
}
}
3
Balise de scriptlets : <% code Java %>
Permet d’insérer des morceaux de code (blocs
d’instructions) Java dans la page JSP.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Ma Première Page JSP</title>
</head>
<body>
<% System.out.println("Soyez prudents et restez à la maison"); %>
<% System.out.println(new java.util.Date()); %>
</body>
</html>
4
Création d'une JSP
1. Créer à l’aide d’Eclipse un nouveau projet web
dynamique.
2. Faites un clic-droit sur le dossier WebContent de
votre projet, puis choisissez New > JSP File, et dans
la fenêtre qui apparaît renseignez le nom de votre
page JSP.
5
Balise d’expressions : <%=expression %>
Où expression peut être soit un objet Java , soit
une expression numérique, soit un appel à une
méthode qui retourne une valeur, etc...
L’expression est évaluée et insérée dans la méthode
de service de la servlet
// datePage.jsp
Date courante: <%=new java.util.Date()%> <br>
<%=2 * 5%><br>
<%=Math.random()%>
6
Balise d’expressions : <%=code %>
On a :
<%=expression %> < % out.println(expression) ;%>
Lorsque le conteneur web voit :
<%= expression %>
Il le transforme en:
<% out.print(expression); %>
Remarque: Il ne faut surtout pas mettre de (;) à la
fin d’une expression.
Comme dans l’expression: <%= (3*7); %>
7
Balise de déclarations : <%! code java %>
Permet de définir des méthodes ou des variables qui seront
insérées dans le corps de la servlet générée par Tomcat.
8
Voici un exemple de compteur de visites de pages JSP
//compteur.jsp
<%! private int compteur = 0 ; %>
Nombre de visites à la page depuis le démarrage du serveur Tomcat est:
<%= ++compteur %>
Balise de déclarations
Dans le code ci-dessus, nous avons utilisé la
balise de déclaration pour déclarer la
variable compteur. La page JSP est traduite en
servlet ci-dessous, nous pouvons voir que la
variable compteur est déclarée en dehors de
la méthode _jspservice(). Si nous déclarons la
même variable en utilisant la balise scriptlet, elle
entrera dans la méthode de service
9
Balise de déclarations
public class compteur_jsp extends HttpServlet{
int compteur=0;
public void _jspService(HttpServletRequest request, HttpServletResponse
response) throws IOException,ServletException {
PrintWriter out = response.getWriter();
response.setContenType("text/html");
out.write("<html><body>");
out.write("Nombre de visites à la page depuis le démarrage du serveur
Tomcat est: ") ;
out.print(++compteur);
out.write("</body></html>");
}}
10
Balise déclaration ou balise Scriptlet ?
• Si vous souhaitez inclure une méthode dans
votre fichier JSP, vous devez utiliser la balise
de déclaration, car pendant la phase de
traduction de JSP, les méthodes et variables à
l'intérieur de la balise de déclaration
deviennent des méthodes et des attributs du
servlet généré à partir du fichier JSP
11
Exemple
//compteur.jsp
<%! int compteur = 0;
int getCompteur() {
return ++compteur;
}
%>
Nombre de visites:
<%=getCompteur()%>
12
Le code ci-dessus sera traduit dans le servlet suivant:
Exemple(suite)
public class compteur_jsp extends HttpServlet
{
int compteur = 0;
int getCompteur () {
return ++compteur ;
}
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws IOException,ServletException
{
PrintWriter out = response.getWriter();
response.setContenType("text/html");
out.write("<html><body>");
out.write("Nombre de visites:");
out.print(getCompteur ());
out.write("</body></html>");
}}
13
Balise de directives: <%@ directive %>
Informations globales relatives à la page
Trois principaux types de directives:
1) page: modifier les données de la page (import de packages,
spécification d’un type de contenu, gestion des sessions)
<%@ page import="java.util.*" %>
2) include: inclure des fichiers ou autres servlets/JSP
<%@ include page="/monJSP.jsp" flush="true" %>
3) taglib: utiliser des bibliothèques de balises personnalisées
<%@ tagliburi="..." prefix="..." %>
14
Balise de directives: <%@ directive %>
//includePage.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding = "utf-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h4> La date d'aujourd'hui est :
<jsp:include page="datePage.jsp" flush="true" /> </h4>
<%
out.println("<h4> la sortie de la page datePage.jsp est affichée au-dessus</h3>");
%>
</body>
</html>
15
Objets Implicites/ Variables prédéfinies dans
les scriptlets
Objet implicite Son type
request HttpServletRequest
response HttpServletRequest
out JspWriter
session HttpSession
16
Plusieurs objets sont automatiquement disponibles dans une page
JSP. Ils sont appelés objets implicites.
Variables prédéfinies request
L’objet request est principalement utilisé lorsque
on veut traiter les données envoyées par un
client soit à partir de la barre d’adresses d’un
navigateur, soit en cliquant sur un hyperlien ou
soit à partir de la soumission de formulaires
dans l’application, etc.
<% String str = request.getParameter("uname"); %>
17
Variables prédéfinies response
L’objet response représente la réponse au client. Grâce à
cet objet, le programmeur JSP peut ajouter de nouveaux
cookies, codes d'état HTTP, effectuer une redirection, etc.
Cookie cookie = new Cookie("key","value");
cookie.setMaxAge(60*60*24);
response.addCookie(cookie);
response.sendError(404, "Page non trouvée");
response.sendRedirect("success.jsp");
response.setContentType("text/html");
18
Variable prédéfinie out
L’objet out est utilisé pour écrire du contenu sur
le client (un navigateur).
<% out.println("Bonjour");
out.println("Comment vas-tu ?");
%>
Affichage côté navigateur:
Bonjour
Comment vas-tu ?
19
Variable prédéfinie session
L’objet session permet de faire le lien entre les requêtes
d’un même utilisateur. En utilisant l'objet session, le
programmeur peut invoquer ses méthodes déclarées
dans l'interface HttpSession pour définir, obtenir ou
supprimer un attribut ou pour obtenir des informations
sur la session.
• session.setAttribute (String name, Object value): Cette
méthode est utilisée pour définir la valeur d'attribut
pour l'utilisateur dans cette session.
• session.getAttribute (String name): Cette méthode est
utilisée pour obtenir la valeur d'attribut définie à l'aide
de la méthode setAttribute () dans cette session.
20
Exemple d’utilisation de la variable
session (1)
index.html
<form action="session-un.jsp" method="get">
Nom: <input type="text" name="nom"><br>
Prenom: <input type="text" name="prenom"><br>
<input type="submit" value="Envoyer">
</form>
21
Exemple d’utilisation de la variable
session (2)
session-un.jsp
<%String nom=request.getParameter("nom");
String prenom=request.getParameter("prenom");
session.setAttribute("nom", nom);
session.setAttribute("prenom", prenom);
out.print("Bonjour"+nom);
out.print("<br>");
out.print("Les données sont enregistrées avec succès dans la Session.
SVP cliquez sur le lien suivant pour le vérifier.");
%><br>
<a href="session-deux.jsp">Verifier</a>
22
Exemple d’utilisation de la variable
session (3)
session-deux.jsp
<%String nom=(String)session.getAttribute("nom");
String prenom=(String)session.getAttribute("prenom");
out.print("Nom:"+nom);
out.print("<br>");
out.print("Prenom:"+prenom);
%>
23
Mélange de balises de scriptlet et de
HTML
Nous allons inclure le code java dans la balise scriptlet <% ….. %>, et
toute la partie HTML est en dehors de celle-ci.
<table border="2">
<%
for (int i = 0; i <10; i++) {
%>
<tr>
<td>Nombre</td>
<td><%=i+1%></td>
</tr>
<%}%>
</table>
HTML
<% JAVA %>
HTML
<%= Expression %>
etc
24

Contenu connexe

Tendances

Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
ENSET, Université Hassan II Casablanca
 
Introduction JavaEE
Introduction JavaEEIntroduction JavaEE
Introduction JavaEE
Mourad HASSINI
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
ENSET, Université Hassan II Casablanca
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
Abdelouahed Abdou
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
ENSET, Université Hassan II Casablanca
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
Houda TOUKABRI
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
ENSET, Université Hassan II Casablanca
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
Faycel Chaoua
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
Lilia Sfaxi
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
ENSET, Université Hassan II Casablanca
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
ENSET, Université Hassan II Casablanca
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
ENSET, Université Hassan II Casablanca
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
Antoine Rey
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
Heithem Abbes
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
ENSET, Université Hassan II Casablanca
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
Stéphane Traumat
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
ENSET, Université Hassan II Casablanca
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 

Tendances (20)

Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Introduction JavaEE
Introduction JavaEEIntroduction JavaEE
Introduction JavaEE
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2Manuel des TP : Atelier Web 2
Manuel des TP : Atelier Web 2
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Java Server Faces 2
Java Server Faces 2Java Server Faces 2
Java Server Faces 2
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Présentation de JEE et de son écosysteme
Présentation de JEE et de son écosystemePrésentation de JEE et de son écosysteme
Présentation de JEE et de son écosysteme
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 

Similaire à Marzouk jsp

Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
Korteby Farouk
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09
Claude Coulombe
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09
Claude Coulombe
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
Abdelhakim Bachar
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux ServletsFrançois Charoy
 
API JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdfAPI JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdf
ramadanmahdi
 
Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08
Claude Coulombe
 
cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024
YounesOuladSayad1
 
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursHoracio Gonzalez
 
Java EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdfJava EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdf
ColombieColombie
 
laravel.sillo.org-Cours Laravel 10 les bases la validation.pdf
laravel.sillo.org-Cours Laravel 10  les bases  la validation.pdflaravel.sillo.org-Cours Laravel 10  les bases  la validation.pdf
laravel.sillo.org-Cours Laravel 10 les bases la validation.pdf
HeartKing10
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
Rossi Oddet
 
Solution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScriptSolution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScript
Raphaël Semeteys
 
ASP.NET from Zero to Hero
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to Hero
Cellenza
 
Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08
Claude Coulombe
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
Soukaina Boujadi
 
Rapport tp2 j2ee
Rapport tp2 j2eeRapport tp2 j2ee
Rapport tp2 j2ee
Soukaina Boujadi
 
Cours JavaScript.ppt
Cours JavaScript.pptCours JavaScript.ppt
Cours JavaScript.ppt
PROFPROF11
 

Similaire à Marzouk jsp (20)

Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09
 
Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Introductions Aux Servlets
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux Servlets
 
API JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdfAPI JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdf
 
Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08
 
cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024
 
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - CoursENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
ENIB cours CAI Web - Séance 3 - JSP/Servlet - Cours
 
Java EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdfJava EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdf
 
laravel.sillo.org-Cours Laravel 10 les bases la validation.pdf
laravel.sillo.org-Cours Laravel 10  les bases  la validation.pdflaravel.sillo.org-Cours Laravel 10  les bases  la validation.pdf
laravel.sillo.org-Cours Laravel 10 les bases la validation.pdf
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
 
Solution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScriptSolution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScript
 
ASP.NET from Zero to Hero
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to Hero
 
Tutoriel ajax jquery
Tutoriel ajax jqueryTutoriel ajax jquery
Tutoriel ajax jquery
 
Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08
 
Jboss Seam
Jboss SeamJboss Seam
Jboss Seam
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
Rapport tp2 j2ee
Rapport tp2 j2eeRapport tp2 j2ee
Rapport tp2 j2ee
 
Cours JavaScript.ppt
Cours JavaScript.pptCours JavaScript.ppt
Cours JavaScript.ppt
 

Dernier

Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Yuma91
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
Friends of African Village Libraries
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
sewawillis
 

Dernier (12)

Cours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupeCours de conjugaison des verbes du premier, deuxième et troisième groupe
Cours de conjugaison des verbes du premier, deuxième et troisième groupe
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 
Système de gestion des fichiers de amine
Système de gestion des fichiers de amineSystème de gestion des fichiers de amine
Système de gestion des fichiers de amine
 

Marzouk jsp

  • 1. Les Java Server Pages (JSP) Pr Abderrahim Marzouk Département de Mathématiques et Informatique Master RSI 2019-2020 1
  • 2. JSP ? • JSP permet d’insérer du code Java directement dans une page HTML en utilisant des balises (tags):  Scriptlets : <%code Java %>  Expressions : <%=expression Java%>  Déclarations : <%!code Java %>  Directives : <%@directive %> 2 • Une page JSP est enregistrée comme un fichier texte avec l’extension .jsp • Une JSP est transformée en servlet par Tomcat
  • 3. JSP Servlet Une page JSP (exemple.jsp) devient le Servlet suivant: public class exemple_jsp extends HttpServlet { //méthode de service public void _jspService(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { --------------------------------------------- } } 3
  • 4. Balise de scriptlets : <% code Java %> Permet d’insérer des morceaux de code (blocs d’instructions) Java dans la page JSP. <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Ma Première Page JSP</title> </head> <body> <% System.out.println("Soyez prudents et restez à la maison"); %> <% System.out.println(new java.util.Date()); %> </body> </html> 4
  • 5. Création d'une JSP 1. Créer à l’aide d’Eclipse un nouveau projet web dynamique. 2. Faites un clic-droit sur le dossier WebContent de votre projet, puis choisissez New > JSP File, et dans la fenêtre qui apparaît renseignez le nom de votre page JSP. 5
  • 6. Balise d’expressions : <%=expression %> Où expression peut être soit un objet Java , soit une expression numérique, soit un appel à une méthode qui retourne une valeur, etc... L’expression est évaluée et insérée dans la méthode de service de la servlet // datePage.jsp Date courante: <%=new java.util.Date()%> <br> <%=2 * 5%><br> <%=Math.random()%> 6
  • 7. Balise d’expressions : <%=code %> On a : <%=expression %> < % out.println(expression) ;%> Lorsque le conteneur web voit : <%= expression %> Il le transforme en: <% out.print(expression); %> Remarque: Il ne faut surtout pas mettre de (;) à la fin d’une expression. Comme dans l’expression: <%= (3*7); %> 7
  • 8. Balise de déclarations : <%! code java %> Permet de définir des méthodes ou des variables qui seront insérées dans le corps de la servlet générée par Tomcat. 8 Voici un exemple de compteur de visites de pages JSP //compteur.jsp <%! private int compteur = 0 ; %> Nombre de visites à la page depuis le démarrage du serveur Tomcat est: <%= ++compteur %>
  • 9. Balise de déclarations Dans le code ci-dessus, nous avons utilisé la balise de déclaration pour déclarer la variable compteur. La page JSP est traduite en servlet ci-dessous, nous pouvons voir que la variable compteur est déclarée en dehors de la méthode _jspservice(). Si nous déclarons la même variable en utilisant la balise scriptlet, elle entrera dans la méthode de service 9
  • 10. Balise de déclarations public class compteur_jsp extends HttpServlet{ int compteur=0; public void _jspService(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { PrintWriter out = response.getWriter(); response.setContenType("text/html"); out.write("<html><body>"); out.write("Nombre de visites à la page depuis le démarrage du serveur Tomcat est: ") ; out.print(++compteur); out.write("</body></html>"); }} 10
  • 11. Balise déclaration ou balise Scriptlet ? • Si vous souhaitez inclure une méthode dans votre fichier JSP, vous devez utiliser la balise de déclaration, car pendant la phase de traduction de JSP, les méthodes et variables à l'intérieur de la balise de déclaration deviennent des méthodes et des attributs du servlet généré à partir du fichier JSP 11
  • 12. Exemple //compteur.jsp <%! int compteur = 0; int getCompteur() { return ++compteur; } %> Nombre de visites: <%=getCompteur()%> 12 Le code ci-dessus sera traduit dans le servlet suivant:
  • 13. Exemple(suite) public class compteur_jsp extends HttpServlet { int compteur = 0; int getCompteur () { return ++compteur ; } public void _jspService(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { PrintWriter out = response.getWriter(); response.setContenType("text/html"); out.write("<html><body>"); out.write("Nombre de visites:"); out.print(getCompteur ()); out.write("</body></html>"); }} 13
  • 14. Balise de directives: <%@ directive %> Informations globales relatives à la page Trois principaux types de directives: 1) page: modifier les données de la page (import de packages, spécification d’un type de contenu, gestion des sessions) <%@ page import="java.util.*" %> 2) include: inclure des fichiers ou autres servlets/JSP <%@ include page="/monJSP.jsp" flush="true" %> 3) taglib: utiliser des bibliothèques de balises personnalisées <%@ tagliburi="..." prefix="..." %> 14
  • 15. Balise de directives: <%@ directive %> //includePage.jsp <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding = "utf-8" %> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> <h4> La date d'aujourd'hui est : <jsp:include page="datePage.jsp" flush="true" /> </h4> <% out.println("<h4> la sortie de la page datePage.jsp est affichée au-dessus</h3>"); %> </body> </html> 15
  • 16. Objets Implicites/ Variables prédéfinies dans les scriptlets Objet implicite Son type request HttpServletRequest response HttpServletRequest out JspWriter session HttpSession 16 Plusieurs objets sont automatiquement disponibles dans une page JSP. Ils sont appelés objets implicites.
  • 17. Variables prédéfinies request L’objet request est principalement utilisé lorsque on veut traiter les données envoyées par un client soit à partir de la barre d’adresses d’un navigateur, soit en cliquant sur un hyperlien ou soit à partir de la soumission de formulaires dans l’application, etc. <% String str = request.getParameter("uname"); %> 17
  • 18. Variables prédéfinies response L’objet response représente la réponse au client. Grâce à cet objet, le programmeur JSP peut ajouter de nouveaux cookies, codes d'état HTTP, effectuer une redirection, etc. Cookie cookie = new Cookie("key","value"); cookie.setMaxAge(60*60*24); response.addCookie(cookie); response.sendError(404, "Page non trouvée"); response.sendRedirect("success.jsp"); response.setContentType("text/html"); 18
  • 19. Variable prédéfinie out L’objet out est utilisé pour écrire du contenu sur le client (un navigateur). <% out.println("Bonjour"); out.println("Comment vas-tu ?"); %> Affichage côté navigateur: Bonjour Comment vas-tu ? 19
  • 20. Variable prédéfinie session L’objet session permet de faire le lien entre les requêtes d’un même utilisateur. En utilisant l'objet session, le programmeur peut invoquer ses méthodes déclarées dans l'interface HttpSession pour définir, obtenir ou supprimer un attribut ou pour obtenir des informations sur la session. • session.setAttribute (String name, Object value): Cette méthode est utilisée pour définir la valeur d'attribut pour l'utilisateur dans cette session. • session.getAttribute (String name): Cette méthode est utilisée pour obtenir la valeur d'attribut définie à l'aide de la méthode setAttribute () dans cette session. 20
  • 21. Exemple d’utilisation de la variable session (1) index.html <form action="session-un.jsp" method="get"> Nom: <input type="text" name="nom"><br> Prenom: <input type="text" name="prenom"><br> <input type="submit" value="Envoyer"> </form> 21
  • 22. Exemple d’utilisation de la variable session (2) session-un.jsp <%String nom=request.getParameter("nom"); String prenom=request.getParameter("prenom"); session.setAttribute("nom", nom); session.setAttribute("prenom", prenom); out.print("Bonjour"+nom); out.print("<br>"); out.print("Les données sont enregistrées avec succès dans la Session. SVP cliquez sur le lien suivant pour le vérifier."); %><br> <a href="session-deux.jsp">Verifier</a> 22
  • 23. Exemple d’utilisation de la variable session (3) session-deux.jsp <%String nom=(String)session.getAttribute("nom"); String prenom=(String)session.getAttribute("prenom"); out.print("Nom:"+nom); out.print("<br>"); out.print("Prenom:"+prenom); %> 23
  • 24. Mélange de balises de scriptlet et de HTML Nous allons inclure le code java dans la balise scriptlet <% ….. %>, et toute la partie HTML est en dehors de celle-ci. <table border="2"> <% for (int i = 0; i <10; i++) { %> <tr> <td>Nombre</td> <td><%=i+1%></td> </tr> <%}%> </table> HTML <% JAVA %> HTML <%= Expression %> etc 24