SlideShare une entreprise Scribd logo
1  sur  24
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

Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiEl Habib NFAOUI
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 
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
 
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 webHouda TOUKABRI
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesENSET, 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.youssfiENSET, 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
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 

Tendances (20)

Services web soap-el-habib-nfaoui
Services web soap-el-habib-nfaouiServices web soap-el-habib-nfaoui
Services web soap-el-habib-nfaoui
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
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
 
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
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 ...
 
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
 
Java
JavaJava
Java
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
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 première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
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)
 
Ch1-Généralités.pdf
Ch1-Généralités.pdfCh1-Généralités.pdf
Ch1-Généralités.pdf
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
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
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Jeu jee session
Jeu jee sessionJeu jee session
Jeu jee session
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 

Similaire à Marzouk jsp

Ajax GTI780 & MTI780 ETS A09
Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09Claude 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 - A09Claude Coulombe
 
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.pdframadanmahdi
 
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 - A08Claude Coulombe
 
cours web developpement statique AJAX 2024
cours web developpement statique AJAX  2024cours web developpement statique AJAX  2024
cours web developpement statique AJAX 2024YounesOuladSayad1
 
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).pdfColombieColombie
 
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.pdfHeartKing10
 
Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à AngularjsRossi Oddet
 
Solution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScriptSolution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScriptRaphaël Semeteys
 
ASP.NET from Zero to Hero
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to HeroCellenza
 
Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08Ajax - GTI780 & MTI780 - ETS - A08
Ajax - GTI780 & MTI780 - ETS - A08Claude Coulombe
 

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

Dernier

SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfachrafbrahimi1
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 

Dernier (10)

SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 

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