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 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
 
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
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
ENSET, Université Hassan II Casablanca
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
Cynapsys It Hotspot
 
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)
Heithem Abbes
 
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
 
JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java
Youness Boukouchi
 
Langage HTML
Langage HTMLLangage HTML
Langage HTML
El Habib NFAOUI
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
Heithem Abbes
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
Ines Ouaz
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
Heithem Abbes
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
Korteby Farouk
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
Lilia Sfaxi
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
Aziz Darouichi
 
Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5
YounessLaaouane
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
ENSET, Université Hassan II Casablanca
 
Entreprise Java Beans (EJB)
Entreprise Java Beans (EJB)Entreprise Java Beans (EJB)
Entreprise Java Beans (EJB)
Heithem Abbes
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
ENSET, Université Hassan II Casablanca
 
UML
UMLUML
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
ENSET, Université Hassan II Casablanca
 

Tendances (20)

Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
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 ...
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)
 
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
 
JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java JDBC: Gestion des bases de données en Java
JDBC: Gestion des bases de données en Java
 
Langage HTML
Langage HTMLLangage HTML
Langage HTML
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Entreprise Java Beans (EJB)
Entreprise Java Beans (EJB)Entreprise Java Beans (EJB)
Entreprise Java Beans (EJB)
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
UML
UMLUML
UML
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 

Similaire à Marzouk jsp

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
 
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
 
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)

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
 
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
 
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

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
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
BenotGeorges3
 
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
 
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
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
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
 
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
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
bangalykaba146
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
frizzole
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Formation
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
GiselaAlves15
 
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
 
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
 
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
 

Dernier (15)

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...
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
 
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
 
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
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
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
 
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
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
 
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_...
 
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
 
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
 

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