JSP - Servlet Chapitre 2: Java Server Page (JSP) Dr. Ahmad Khoureich Ka UADB L3
JSP - Servlet Chapitre 2: Java Server Page (JSP) Dr. Ahmad Khoureich Ka UADB L3 D2AW Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 1 / 24 Outline 1 Introduction 2 Les éléments de scripts Les déclarations Les expressions Les scriptlets 3 Les directives La directive page La directive include 4 Objets implicites Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 2 / 24 Introduction C’est quoi un JSP? Un JSP est une page web (pas une classe Java) qui combine du HTML (pour la partie statique) et du code java (pour la partie dynamique). Le code Java est intégré dans le code HTML à l’aide de balises spéciales. Contrairement aux servlets, les JSP ne sont pas organisés suivant une logique de paquets, ils sont enregistrés dans les mêmes répertoires que les pages web. Dans le modèle MVC, les JSP sont utilisés pour la vue (la présentation de la réponse). Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 3 / 24 Introduction Exemple de servlet protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { LocalTime heure = LocalTime.now(); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("hh:mm:ss"); String hrtxt = heure.format(dtf); response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>Heure</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>IL est " + hrtxt + "</h1>"); out.println("</body>"); out.println("</html>"); } } Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 4 / 24 Introduction Exemple : Version JSP du servlet précédent <%@page import="java.time.format.DateTimeFormatter"%> <%@page import="java.time.LocalTime"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <%! LocalTime heure = LocalTime.now(); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("hh:mm:ss"); %> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Heure</title> </head> <body> <h1>Il est <%= heure.format(dtf) %></h1> </body> </html> Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 5 / 24 Introduction Cycle de vie du JSP Conteneur web Requête JSP nouveau ou modifié? Conversion du JSP en servlet (.JSP →.java) Compilation du servlet (.java →.class) Chargement et initialisation du servlet Génération de la réponse par le servlet Réponse oui non Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 6 / 24 Introduction Cycle de vie du JSP Interface : javax.servlet.jsp.HttpJspPage JSP Initialisation : jspInit() Initialisation de paramètres Allocation de ressources Service : _jspService(...) reception des requêtes génération de la réponse Destruction : jspDestroy() Désallocation de resources Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 7 / 24 Introduction Contenu d’un JSP : contenu statique Le contenu statique peut être constitué de : code HTML CSS Javascript ... Lors de la conversion JSP →servlet le contenu statique reste inchangé. Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 8 / 24 Introduction Contenu d’un JSP : contenu dynamique Le contenu dynamique est constitué des éléments suivants : Les directives Les éléments de scripts Les expressions EL Les éléments de propriétés JSP:[set|get] Les éléments JSP:[include|forward] L ’élément JSP:plugin Les tags personnalisés Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 9 / 24 Les éléments de scripts Les éléments de scripts Les éléments de scripts permettent d’insérer du code Java dans une page JSP . Il y a 4 types d’éléments de scripts : 1 le commentaire pour insérer un commentaire JSP . Syntaxe : <%-- commentaire --%> 2 la déclaration pour déclarer des variables et des méthodes. 3 l’expression pour afficher la valeur d’une variable ou la valeur retournée par une méthode. 4 le scriptlet pour les blocs d’instructions tels que les boucles, les traitements conditionnels, etc. Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 10 / 24 Les éléments de scripts Les déclarations Les déclarations Les déclarations sont utilisées pour déclarer les variables et les méthodes qui seront utilisées dans la page JSP . Syntaxe : <%! déclaration %> Exemple <%! float prixUnitCahier = 100f; int quantite = 5; public float CalculerTotal(float prix, int quantite){ float total = prix * quantite; return total; } %> Remarque Il est possible d’insérer plusieurs balises déclaration dans une page JSP . Lors de la conversion JSP →servlet toutes ces déclarations seront regroupées dans le servlet résultant. Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 11 / 24 Les éléments de scripts Les expressions Les expressions Les expressions sont utilisées pour afficher la valeur d’une variable ou la valeur retournée par une méthode. L ’expression est évaluée dynamiquement puis convertie en String avant son insertion dans la réponse. Syntaxe : <%= expression %> Exemple : <body> Le prix d'un cahier est: <%= prixUnitCahier %><br/> Le nombre de cahier acheté est: <%= quantite %><br/> Le total à payer est: <%= CalculerTotal(prixUnitCahier, quantite) %> </body> Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 12 / 24 Les éléments de scripts Les scriptlets Les scriptlets Les scriptlets sont utilisés pour insérer des blocs d’instructions (boucles, traitements conditionnels, etc.) dans la page JSP . Elles contiennent généralement les instructions de traitement de la requête. Syntaxe : <% traitement %> Exemple : <body> <% float aPayer = CalculerTotal(prixUnitCahier, quantite); if (aPayer >= 5000f) { %> Vous avez une réduction de 1500 F. <% } else {%> <b>1500 F de réduction à partir de 5000 F d'achats.</b> <% }%> </body> Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 13 / 24 Les éléments de scripts Les scriptlets Les scriptlets Exemple (autre écriture) : <body> <% float aPayer = CalculerTotal(prixUnitCahier, quantite); if (aPayer >= 500f) { out.println("Vous avez une réduction de 1500 F."); else { out.println("<b>1500 F de réduction à partir de 5000 F d' achats.</b>"); } %> </body> Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 14 / 24 Les directives Les directives Les directives sont des instructions utiles au conteneur pour la traduction de la page JSP en servlet. Ces directives sont au nombre de 3 : la directive <%@ page %> la directive <%@ include %> la directive <%@ taglib %> Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 15 / 24 Les directives La directive page La directive <%@ page %> La directive <%@ page %> permet de définir à l’aide de ses attributs un certain nombre de propriétés pour la page JSP . Syntaxe <%@ page attribut="valeur" %> Quelques attributs contentType import errorPage isErrorPage Remarque : Plusieurs attributs peuvent être définis pour la directive <%@ page %>, il suffit de les séparer par des virgules. Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 16 / 24 Les directives La directive page L ’attribut contentType L ’attribut contentType définit le type de contenu de la réponse et optionnellement le jeu de caractères utilisé. Exemple : Le contenu de la réponse est du HTML <%@ page contentType="text/html" %> Le contenu de la réponse est une image jpeg <%@ page contentType="image/jpeg" %> Le contenu de la réponse est du HTML avec le jeu de caractères ISO-Latin1 <%@ page contentType="text/html:charset=ISO-8859-1" %> Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 17 / 24 Les directives La directive page L ’attribut import L ’attribut import permet de spécifier les paquets et/ou classes à importer comme le fait le mot clé import. Exemple : Importer la classe LocalTime <%@page import="java.time.LocalTime"%> Importer toutes les classes du paquet java.util <%@ page import="java.util.*" %> Importer la classe LocalTime et toutes les classes du paquet java.util <%@ page import="java.time.LocalTime,java.util.*" %> Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 18 / 24 Les directives La directive page L ’attribut errorPage L ’attribut errorPage est utilisé pour spécifier l’adresse url de la page à afficher lorsqu’une erreur survient lors de l’exécution de la page JSP . Exemple : Afficher la page erreur.jsp lorsqu’une erreur survient lors de l’exécutions de cette page. <%@ page errorPage="erreur.jsp" %> Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 19 / 24 Les directives La directive page L ’attribut isErrorPage L ’attribut isErrorPage permet d’indiquer si cette page est une page d’erreur. Cet attribut vaut par défaut false. Exemple : Indiquer que cette page est une page d’erreur. <%@ page isErrorPage="true" %> Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 20 / 24 Les directives La directive include La directive <%@ include %> La directive <%@ include %> permet d’inclure le contenu d’un fragment de JSP dans une page JSP . L ’inclusion est faite pendant la phase de conversion JSP → servlet. La directive <%@ include %> peut être insérée n’importe où dans la page JSP . Syntaxe <%@ include file="url_relative" %> Remarque : <%@ include %> est généralement utilisée pour inclure un menu, un en-tête de page ou un bas de page. Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 21 / 24 Les directives La directive include La directive <%@ include %> : exemple Exemple : pagedate.jsp <%@page import="java.time.format.DateTimeFormatter"%> <%@page import="java.time.LocalDate"%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Aujourd'hui</title> </head> <body> <%@include file="WEB-INF/jspf/dat.jspf" %> </body> </html> Dr. Ahmad Khoureich Ka (UADB) JSP - Servlet L3 D2AW 22 / 24 Les directives La directive include La directive <%@ include %> Fragment dat.jspf <%! LocalDate dat = LocalDate.now(); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy"); %> uploads/S4/ chap-2 1 .pdf
Documents similaires
-
22
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 17, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.1107MB