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

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