Marzouk jsp

A
abderrahim marzoukenseignant chercheur à la FST Settat
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
1 de 24

Recomendados

Introduction à ajaxIntroduction à ajax
Introduction à ajaxAbdoulaye Dieng
1.6K vistas21 diapositivas
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JSAntoine Rey
14.9K vistas29 diapositivas

Más contenido relacionado

La actualidad más candente

Servlets et JSPServlets et JSP
Servlets et JSPHeithem Abbes
5.1K vistas111 diapositivas
les  servlets-java EEles  servlets-java EE
les servlets-java EEYassine Badri
1.1K vistas45 diapositivas
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
2.1K vistas51 diapositivas
Jboss SeamJboss Seam
Jboss SeamSlimen Belhaj Ali
775 vistas30 diapositivas
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux ServletsFrançois Charoy
2.5K vistas64 diapositivas

La actualidad más candente(20)

Servlets et JSPServlets et JSP
Servlets et JSP
Heithem Abbes5.1K vistas
les  servlets-java EEles  servlets-java EE
les servlets-java EE
Yassine Badri1.1K vistas
Introduction à React JSIntroduction à React JS
Introduction à React JS
Abdoulaye Dieng2.1K vistas
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
ENSET, Université Hassan II Casablanca42.2K vistas
Jboss SeamJboss Seam
Jboss Seam
Slimen Belhaj Ali775 vistas
Introductions Aux ServletsIntroductions Aux Servlets
Introductions Aux Servlets
François Charoy2.5K vistas
Tp java ee.pptxTp java ee.pptx
Tp java ee.pptx
Eric Bourdet2.5K vistas
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentation
Yassine Badri1.6K vistas
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
Soukaina Boujadi599 vistas
Rapport tp2 j2eeRapport tp2 j2ee
Rapport tp2 j2ee
Soukaina Boujadi696 vistas
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
Antoine Rey17.7K vistas
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
ENSET, Université Hassan II Casablanca11.5K vistas
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
Abdoulaye Dieng2.3K vistas
Marzouk architecture encouches-jee-mvcMarzouk architecture encouches-jee-mvc
Marzouk architecture encouches-jee-mvc
abderrahim marzouk132 vistas
Retours Devoxx France 2016Retours Devoxx France 2016
Retours Devoxx France 2016
Antoine Rey9.2K vistas
JdbcJdbc
Jdbc
mohamed el haddad68 vistas
jQueryjQuery
jQuery
Franck SIMON3.8K vistas

Similar a Marzouk jsp(20)

Ajax  GTI780 & MTI780  ETS  A09Ajax  GTI780 & MTI780  ETS  A09
Ajax GTI780 & MTI780 ETS A09
Claude Coulombe868 vistas
Ajax en Java - GTI780 & MTI780 - ETS - A09Ajax en Java - GTI780 & MTI780 - ETS - A09
Ajax en Java - GTI780 & MTI780 - ETS - A09
Claude Coulombe1.8K vistas
Spring MVCSpring MVC
Spring MVC
Abdelhakim Bachar929 vistas
API JSP2 avec Java EE.pdfAPI JSP2 avec Java EE.pdf
API JSP2 avec Java EE.pdf
ramadanmahdi2 vistas
Ajax en Java - GTI780 & MTI780 - ETS - A08Ajax en Java - GTI780 & MTI780 - ETS - A08
Ajax en Java - GTI780 & MTI780 - ETS - A08
Claude Coulombe1.3K vistas
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 Casablanca26.4K vistas
Java EE _ Servlet et vue (1).pdfJava EE _ Servlet et vue (1).pdf
Java EE _ Servlet et vue (1).pdf
ColombieColombie46 vistas
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
Rossi Oddet1.6K vistas
Solution Linux 2009 JavaScriptSolution Linux 2009 JavaScript
Solution Linux 2009 JavaScript
Raphaël Semeteys355 vistas
ASP.NET from Zero to HeroASP.NET from Zero to Hero
ASP.NET from Zero to Hero
Cellenza2.6K vistas
Tutoriel ajax jqueryTutoriel ajax jquery
Tutoriel ajax jquery
Novencia Groupe1.8K vistas
Cours JavaScript.pptCours JavaScript.ppt
Cours JavaScript.ppt
PROFPROF1130 vistas
TapestryTapestry
Tapestry
Lorraine JUG2.1K vistas
BordeauxJUG : Portails &amp; Portlets JavaBordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets Java
Camblor Frédéric4.1K vistas
react-fr.pdfreact-fr.pdf
react-fr.pdf
ssuser65180a222 vistas
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
ENSET, Université Hassan II Casablanca51.5K vistas
cha4c1jsp.docxcha4c1jsp.docx
cha4c1jsp.docx
ssuser9d2f899 vistas

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