07/04/2012 1 Java EE développement d’applications web EL Moukhtar ZEMMOURI ENSA
07/04/2012 1 Java EE développement d’applications web EL Moukhtar ZEMMOURI ENSAM - Meknès Les composants web Java EE JSP Java Server Pages 07/04/2012 2 3 Plan Introduction Principe de fonctionnement des JSP Types de balises JSP Éléments de base du scripting JSP Technique de gestion des erreurs Les objets implicites JSP Gestion des cookies et sessions 4 JSP Introduction La plupart des applications Web produisent des pages HTML dynamiquement en modifiant uniquement les champs de données et pas la structure de base de la page. Les JSP constituent une technologie appropriée pour ce type de contenu Au contraire des servlets qui modifient toute la structure de la page. 07/04/2012 3 5 JSP Introduction Les Servlets sont des classes Java (code 100% Java) exécutées côté serveur Les JSP sont plutôt proches du code HTML Une page JSP (fichier texte .jsp) ressemble beaucoup à une page html dans laquelle on a ajouté du code Java encapsulé dans des balises <% … %> 6 JSP Introduction Une page JSP contient un modèle de document statique (html) et des balises spécifiques (jsp) pour inclure du texte ou exécuter une partie de la logique applicative. Le contenu statique est servi comme du HTML normal. Ainsi les JSP permettent de séparer clairement les deux types de code: Traitement de la requête Génération du flux HTML 07/04/2012 4 7 JSP Introduction Les JSP réutilisent des fonctionnalités de la classe Servlet telles que: L’objet request de la classe HttpServletRequest L’objet response de la classe HttpServletResponse En fait, le fichier JSP est traduit en servlet qui est compilée, puis instanciée lors de son invocation via une URL 8 Principe de fonctionnement 07/04/2012 5 9 Les balises JSP Une page JSP contient 3 types de balises : Les directives : instructions qui contrôlent le comportement du compilateur de pages JSP, et qui sont donc évaluées avant la compilation les éléments de scripts (scriptlets) : blocs d’instructions Java inclus dans la page JSP entre des délimiteurs <% et %> des balises personnalisées (custom tags ou custom actions): elles sont définies par le programmeur et génèrent du contenu dynamique lorsque la page est demandée. 10 Premier exemple JSP (hello.jsp) <html> <head><title>Un exemple de page JSP</title></head> <body> <!-- définit les informations globales a la page --> <%@page language="java" %> <!-- Scriplet (code java) --> <% out.println("Bonjour tout le monde"); %> </body> </html> 07/04/2012 6 11 Un autre exemple simple 12 Types d’éléments dans une JSP On distingue 5 types d’éléments dans une page JSP: Nom élément Tag Traduction Servlet Directives <%@…%> Pour l’ensemble de la page Page include Déclarations <%!…%> En dehors de service() Méthodes et variables de la servlet Scriptlets <%…%> Dans service() code Expressions <%=…%> Dans service() code Commentaire <%--…--%> Non traduits 07/04/2012 7 13 Les scriptlets <%…%> Sont des blocs de code JAVA intégrés au sein d’une page HTML Tout code JAVA valide L’objet out pour produire de la sortie HTML, objets request et response Se transforme dans la méthode _jspService() de la servlet les variables sont locales à la méthode les blocs de code s'insèrent dans la servlet 14 Les scriptlets : exemple <% String[] noms = {"ali", "hassan"}; for(int i = 0; i < noms.length; i++){ out.println(noms[i]); } %> 07/04/2012 8 15 Les expression : <%=…%> Pour évaluer une expression ou un objet Java et renvoyer sa valeur : retourne une version String de l'expression raccourci pour <% out.println(…); %> Se transforme en out.println(…) dans la méthode _jspService(…) de la servlet 16 Les expression : exemple <% String[] noms = {"ali", "hassan"}; for(int i = 0; i < noms.length; i++){ %> Le nom <%= i %> ième nom est : <%= noms[i] %> <% } %> 07/04/2012 9 17 Les déclarations : <%!…%> Pour déclarer des méthodes et des variables d’instance, connues de toute la page jsp (méthodes de la servlet générée) Elles peuvent être placées puis utilisées n’importe où dans la page les méthodes ne sont exécutées que si elles sont appelées explicitement Se transforme en déclarations de champs et méthodes au niveau de la servlet 18 Les déclarations : exemple <%! private int accessCount = 0; private int incrementCount() {return accessCount++;} %> … <H2> Nombre et liste des articles </H2> Nombre d'articles : <%= incrementCount() %> 07/04/2012 10 19 Les commentaires : <%- -…- -%> Permettent d’insérer des commentaires dans la page jsp. On peut évidemment utiliser les balises HTML <!--…--> L’avantage des balises jsp est que les commentaires ne seront pas visibles des utilisateurs 20 Les directives : <%@…%> Ce sont des messages envoyés au container JSP et qui vont indiquer au container la façon dont il doit transcrire une JSP en servlet <%@ directive attribut1="valeur" attribut2="valeur"... %> 3 types de directives possibles : page : informations relatives à la page include : fichiers à inclure littéralement Taglib : inclusion des balises personnalisées 07/04/2012 11 21 La directive <%@page …%> Valeurs possibles : <%@ page language="java" %> <%@ page import="java.util.*, java.net.*" %> <%@ page contentType="text/plain" %> <%@ page session="true|false " %> <%@ page errorPage="pathToErrorPage" %> <%@ page isErrorPage="true|false" %> <%@ page … Info, extends, buffer, autoFlush, isThreadSafe. 22 La directive <%@include …%> Ces directives permettent d’inclure le contenu d’un fichier dans la page JSP Syntaxe : <%@include file=«UrlRelative»%> Ce type d’inclusion est réalisé avant la compilation de la page JSP en servlet 07/04/2012 12 23 Gestion des erreurs Une exception Java peut être déclenchée et gérée par la JSP On peut ainsi spécifier une page d'erreur séparée pour la JSP : placer une directive de page pour errorPage au début du fichier <%@page errorPage="err.jsp" %> permet d‘enlever le code d'erreur de la JSP un objet Exception est passé à la page d'erreur 24 La page d’erreur jsp Elle est identifiée par une directive de page en début de fichier : <@page isErrorPage="true" %> Exemple: <%@page isErrorPage="true" %> <html><body> Information d'exception : <strong> <%= exception %> </strong> <pre> <% java.io.PrintWriter monWriter =new java.io.PrintWriter(out); exception.printStackTrace(monWriter); %> </pre></body></html> 07/04/2012 13 25 Les objets implicites JSP Dans une JSP on a accès à une liste d’objets implicites permettant d’interagir avec l’environnement de la servlet d’exécution: request : le HttpServletRequest permet d’accéder aux paramètres POST, GET et l’entête de la requête (cookies, formulaires…) response : le HttpServletResponse out : javax.servlet.jsp.JspWriter est un flux de sortie permettant d’envoyer la réponse au client (idem response.getWriter()) session : le HttpSession exception : le java.lang.Throwable permettant d’attraper les exceptions config : javax.servlet.ServletConfig pageContext : javax.srvlet.jsp.PageContext accès aux attributs de la page application : javax.servlet.ServletContext page : le this d’une instance de la page 26 Gestion des cookies et sessions Cookies et Sessions fonctionnent de la même façon que dans l'API Servlet Cookie : <% Cookie c = new Cookie("Sport", "Foot"); response.addCookie(c); %> Sessions : toutes les pages JSP disposent automatiquement d'un objet session <% String val = (String)session.getValue("Sport"); %> 07/04/2012 14 27 Actions dans une JSP Les actions permettent de faire des actions au moment où la page est demandée par un client : inclure dynamiquement un fichier utiliser des beans rediriger vers une autre page etc... On distingue les actions suivants: <jsp:include … /> <jsp:forward … /> <jsp:useBean … /> 28 Action : <jsp:include … /> <jsp:include page="url" /> Pour inclure des éléments standards comme des en-têtes et des pieds de page On peut inclure n'importe quoi qui s'intégrera correctement dans le flot de la page inclusion au moment où la page est servie, pas au moment où elle est traduite en servlet. 07/04/2012 15 29 Action : <jsp:forward … /> <jsp:forward page="/unAutreURI" /> Cette balise est utilisée pour passer le contrôle de la requête à une autre ressource dynamique ou statique Afin de passer des informations à la ressource à inclure on utilise la balise param <jsp:param name=«redir» value = «valeur» /> 30 Interaction JSP, Servlets et JavaBeans Les JSP doivent servir à la conception de l'IHM en HTML dans le Navigateur La logique de traitement (logique applicative) doit venir de composants auxquels accède la JSP Avantages de l'utilisation de composants : lisibilité accrue de la JSP dissociation de la présentation et des traitements Réutilisation des composants 07/04/2012 16 31 Les JavaBeans : c’est quoi? C'est une classe Java publique qui : possède un constructeur public sans argument Aucuns de ses attributs ne doit être public Chaque attribut (property) doit avoir un getter et un setter public PropertyType getPropertyName() public void setPropertyName(PropertyType val) Pour les attributs booléans, on doit remplacer getX par isX 32 Utiliser un Bean dans une JSP On utilise la balise <jsp:useBean … /> <jsp:useBean id="nom de l'instance du Bean" class="nom qualifié de la classe du Bean" scope="request | session | application | page" /> L'attribut "scope" (portée) : request : le Bean est valide pour la requête, il est détruit à la fin page : (défaut), idem request sauf que le Bean ne peut pas être transmis session : il est stocké dans la session de l'utilisateur et il dure autant que la session application : le Bean est valide pour l'application courante. Il est crée une fois et est partagé par tous les clients de l'application 07/04/2012 uploads/S4/ 06-composants-web-jsp.pdf
Documents similaires










-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Sep 30, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.3847MB