Document Details

ConciliatoryBarbizonSchool5408

Uploaded by ConciliatoryBarbizonSchool5408

Faculté des Sciences de Bizerte

2024

Selma Batti Attia

Tags

JSP programming Java server pages web development computer science

Summary

This document is a set of lecture notes discussing JSP (Java Server Pages). Topics covered in the document include introduction, functioning, syntax, actions, and expression language to work with JSP.

Full Transcript

JSP – JAVA SERVER PAGES 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 170 Contenu Introduction Fonctionnement Syntaxe ◦ Balises simples ◦ Directives ◦ Actions standards ◦ Expression language EL 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BA...

JSP – JAVA SERVER PAGES 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 170 Contenu Introduction Fonctionnement Syntaxe ◦ Balises simples ◦ Directives ◦ Actions standards ◦ Expression language EL 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 171 Introduction Éviter le code java sur les vues Une page JSP contient : ◦ du contenu statique ◦ du code JSP : produit dynamiquement du contenu 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 172 Principe de chargement 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 173 Fonctionnement Traduction : JSP  en servlet Fonctionnement : ◦ Étape 1 : ◦ Requête sur une JSP ◦ Étape 2 : ◦ une servlet compare les dates de la JSP et de sa servlet ◦ si la servlet de la JSP est plus ancienne que la page : ◦ traduction de la JSP en servlet ◦ compilation de la servlet ◦ Étape 3 : ◦ si la servlet de la page n'a pas encore été chargée ◦ chargement de la servlet ◦ instanciation ◦ initialise la servlet avec la méthode jspInit ◦ Étape 4 : ◦ invocation de la méthode jspService ◦ Étape 5 : ◦ Appel de jspDestroy lors du déchargement de la servlet 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 174 Fonctionnement Requête client – JSP sollicitée Serveur Création du code source depuis la JSP Fichier chargé? non oui Compilation du code Exécution de la Servlet 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 175 Cycle de vie d’une JSP Servlet de la JSP jspInit() Request Response jspService() jspDestroy() 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 176 Éléments prédéfinis request – HttpServletRequest (paramètres de la requête, entête HTTP, cookies, …), correspondant à la requête response – HttpServletResponse, correspondant à la réponse renvoyée out – PrintWriter, le flot de sortie de la réponse session – HttpSession, permet de gérer une session application - ServletContext partagée par toutes les servlettes en cours ; contient, entre autres, la méthode log() pour écrire dans le fichier log config - ServletConfig pageContext - PageContext dans la JSP comme unique point d’accès, permet la gestion du contexte et des attributs de la JSP page – variable synonyme de cet objet (this) 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 177 Porté des objets Il existe au total quatre portées différentes dans une application : ◦ page : les objets dans cette portée sont uniquement accessibles dans la page JSP en question ; ◦ requête : les objets dans cette portée sont uniquement accessibles durant l'existence de la requête en cours ; ◦ session : les objets dans cette portée sont accessibles durant l'existence de la session en cours ; ◦ application : les objets dans cette portée sont accessibles durant toute l'existence de l'application 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 178 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 179 Exercice Ajouter le code nécessaire au projet test pour garder trace dans un fichier log des paramètres passés à la servlet depuis la JSP (seulement dans le cas où des paramètres sont utilisés). 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 180 Initialisation et finalisation : paramétrage Initialisation lors du chargement par le serveur d'application : ◦ public void jspInit() Finalisation lors du déchargement par le serveur d'application : ◦ public void jspDestroy() Paramétrage à placer dans une balise de déclaration 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 181 Balises simples Balises de commentaire ◦ Balise de déclaration ◦ Syntaxe : ◦ ◦ Exemple : ◦ ◦ Exemple de bloc de déclaration : ◦ ◦ Traduction : ◦ Déclarations : placées dans la classe au moment de la traduction de la JSP en Servlet ◦ variables = attributs 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 182 Autres balises simples Balise de scriptlet : ◦ Mélange de script et de servlet ◦ Exemple : ◦ Balise d’expression : ◦ ◦ Correspond à : 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 183 Directives Les directives JSP permettent : ◦ d'importer un package ; ◦ d'inclure d'autres pages JSP ; ◦ d'inclure des bibliothèques de balises ; ◦ de définir des propriétés et informations relatives à une page JSP. Comprises entre les balises Emplacement des directives : ◦ La directive d'inclusion de page : peut être placée n'importe où ◦ Les autres directives : doivent être en tête de page JSP. 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 184 3 directives Directive page: ◦ Directive include: ◦ Directive taglib: ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 185 Directive de page Principe : ◦ Paramétrage de l’exécution de la JSP Syntaxe : ◦ Exemple : ◦ ◦ ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 186 Propriétés de la directive page 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 187 Exemple de directive de page ◦ spécifie la page vers laquelle le serveur d'application renvoie lorsqu'une exception non gérée est lancée par la JSP. ◦ spécifie si la page à renvoyer est une page d'erreur et lui autorise ainsi la transmission de l'exception pour un éventuel traitement. 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 188 Exercice Créer une page html ayant pour titre « Erreur !!! » qui affiche un texte rapportant la présence d’une erreur sur la JSP, Ajouter à Test.jsp la directive permettant l’affichage de cette page html si une exception se présente, Dans un bloc de scriptlet faire une opération de division par 0, Tester le projet. 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 189 Directive et action standard d’inclusion Principe : ◦ Inclusion d'une page statique ou dynamique dans la JSP Syntaxe : ◦ Inclusion à la traduction en servlet (par directive) ◦ ◦ Inclusion à l’exécution (par action standard) ◦ Sans paramètres : ◦ ◦ Avec paramètres : ◦ ◦ ◦... ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 190 Exercice Implémenter les fichiers suivants avec de nouvelles JSP (ne pas oublier la configuration dans web.xml) : ◦ inclusion.jsp ◦ ◦ JSP ave c i n c l u s i o n ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ titre.txt ◦ Ti t r e de l a JSP , i n c l u s a p a r t i r d ' un f i c h i e r t e x t e ◦ texte.jsp ◦ ◦ parametre.jsp ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 191 Action standard : forward Permet d'effectuer une redirection vers une autre page Action effectuée côté serveur, donc pas possible de rediriger vers une page extérieure à l'application Action limitée aux pages présentes dans le contexte de la servlet ou de la JSP utilisée Syntaxe : ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 192 Inclusion pour la délégation Principe : ◦ Délégation à un autre composant web Syntaxe : ◦ Sans paramètres : ◦ ◦ Avec paramètres : ◦ ◦ ◦... ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 193 Exercice Implémenter les fichiers suivants avec de nouvelles JSP (ne pas oublier la configuration dans web.xml) : ◦ delegation.jsp ◦ ◦ JSP ave c d e l e g a t i o n ◦ ◦ ◦ ◦ ◦ ◦ ◦ parametre.jsp ◦ ◦ Af f i c h a g e d e l e g u e ◦ ◦ ◦ ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 194 Standard Tag Library Les JSP fournissent une bibliothèque de balises standards répondant à des besoins de base. Quelques domaines : ◦ Core : balises permettant des fonctionalités de base ◦ XML : balises permettant de manipuler des données XML ◦ I18n : balises permettant de traiter l'internationalisation ◦ Database : balises permettant d'exectuer des requêtes SQL (travail normalement dédié aux JavaBeans) Il est possible d'étendre le langage en créant d'autre balises 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 195 Directive taglib Principe : ◦ Inclusion d’une librairie personalisée Syntaxe : ◦ Exemple : ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 196 Action standard : useBean Syntaxe : ◦ Équivalent à : ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 197 Action standard : getProperty Obtenir la valeur d’une des propriétés d’un bean utilisé dans une JSP Syntaxe : ◦ Équivalent à : ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 198 Action standard : setProperty Modifier la valeur d’une des propriétés d’un bean utilisé dans une JSP Syntaxe : ◦ Équivalent à : ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 199 Action standard : setProperty (2) Cette action peut prendre comme nouvelle valeur de la propriété la valeur d’un paramètre Syntaxe : ◦ Équivalent à : ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 200 Action standard : setProperty (3) Cette action peut prendre comme nouvelle valeur de la propriété la valeur d’un paramètre qui a le même identifiant que la propriété Syntaxe : ◦ Équivalent à : ◦ 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 201 Action standard : setProperty (4) Cette action peut donner de nouvelles valeurs à plusieurs propriétés les valeurs de paramètres qui ont les mêmes identifiants que ces propriétés Syntaxe : ◦ Équivalent à : ◦ ◦ ◦ … 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 202 EL: Expression Language Spécification de EL sous l’autorité du groupe d’expert JSR-152 pour JSP 1.3 Le JSR-52 et JSR-152 travail ensemble sur la spécification de l’Expression Language Deux version: une pour JSTL et l’autre pour JSP 1.3 En JSTL il est utilisé uniquement dans la valeur d’un attribut: Il est invoqué exclusivement via la syntaxe ${ expr } 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 203 Expression Language EL Principe : ◦ Effectuer des tests basiques sur des expressions ◦ Manipuler des objets sans avoir recours au code Java Avantage : ◦ + simple ◦ + standard ◦ + maintenable Syntaxe de base : ◦ $ { expression } Exemple : 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 204 EL : Opérateurs Opérateurs : ◦ opérateurs arithmétiques : ◦ + - * / % ◦ opérateurs logiques : ◦ && || ! ◦ opérateurs relationnels : ◦ == != < > = ◦ eq ne lt gt le ge ◦ L’opérateur [ ] pour accéder au objets de type Map, Array et List ◦ param["p1"] param.get("p1") 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 205 EL : Opérateur de test Conditionnel : ◦ Syntaxe : ◦ ${ condition ? 'traitement si condition vérifiée' : 'traitement sinon' } ◦ Exemple : ◦ ${ true ? 'vrai' : 'faux' } Opérateur « empty » : ◦ Syntaxe : ◦ ${ empty « element à tester » } ◦ Exemple : ◦ ${ empty 'test' } 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 206 EL : Manipulation des objets Instruction avec une action standard : ◦ Prénom et nom : Instruction avec EL : ◦ ${attributBean.prenom} ◦ ${attributBean.getPrenom()} 2023/2024 JAKARTA ENTREPRISE EDITION - SELMA BATTI ATTIA 207 EL : Manipulation des collections Possibilité de manipuler directement les collections de java.util, telque : ◦ List, Set, Map … Exemple d’utilisation d’une liste : ◦

Use Quizgecko on...
Browser
Browser