Directives JSP
โก Rรฉsumรฉ intelligent
Les directives JSP sont des messages adressรฉs au conteneur JSP qui fournissent des informations globales sur une page et lui donnent des instructions lors de sa traduction en code servlet. Il existe trois types de directives : page, include et taglib, chacune รฉtant รฉcrite dans des balises spรฉcifiques.

Que sont les directives JSP ?
- Les directives JSP sont les messages envoyรฉs au conteneur JSP. Ils fournissent des informations globales sur une page JSP entiรจre.
- Les directives JSP sont utilisรฉes pour donner des instructions spรฉciales ร un conteneur pour la traduction de JSP en code de servlet.
- Dans la phase du cycle de vie de JSP, JSP doit รชtre converti en servlet qui constitue la phase de traduction.
- Ils donnent des instructions au conteneur sur la faรงon de gรฉrer certains aspects du traitement JSP
- Les directives peuvent avoir de nombreux attributs sรฉparรฉs par des virgules sous forme de paires clรฉ-valeur.
- Dans JSP, la directive est dรฉcrite dans
<%@ %>Mots clรฉs.
Syntaxe de la directive :
<%@ directive attribute="" %>
Types de directives dans JSP
Il existe trois types de directives dans JSP :
- Directive de page
- Inclure la directive
- Directive Taglib
Chacun dโentre eux est dรฉcrit en dรฉtail ci-dessous avec des exemples :
1) Directive de page JSP
Syntaxe de la directive Page :
<%@ pageโฆ%>
- Il fournit des attributs qui sont appliquรฉs ร l'ensemble de la page JSP.
- Il dรฉfinit les attributs dรฉpendants de la page, tels que le langage de script, la page d'erreur et les exigences de mise en mรฉmoire tampon.
- Il est utilisรฉ pour fournir des instructions ร un conteneur relatif ร la page JSP actuelle.
Voici la liste des attributs associรฉs ร la directive page :
- Langue
- รtend
- Global
- type de contenu
- info
- Session
- estThreadSafe
- rinรงage automatique
- tampon
- EstErrorPage
- pageEncodage
- erreurPage
- estELIgonorรฉ
Plus de dรฉtails sur chaque attribut
1) langue : Il dรฉfinit le langage de programmation (langue sous-jacente) utilisรฉe dans la page.
Syntaxe du langage :
<%@ page language="value" %>
Ici, la valeur est le langage de programmation (langage sous-jacent)
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
Explication du code: Dans l'exemple ci-dessus, la valeur de langue de l'attribut est Java qui est le langage sous-jacent dans ce cas. Par consรฉquent, le code des balises dโexpression serait compilรฉ ร lโaide du compilateur Java.
2) Prolonge : Cet attribut est utilisรฉ pour รฉtendre (hรฉriter) la classe, comme le fait Java.
Syntaxe de extends :
<%@ page extends="value" %>
Ici, la valeur reprรฉsente la classe dont elle doit รชtre hรฉritรฉe.
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page extends="demotest.DemoClass" %>
Explication du code : Dans le code ci-dessus, JSP รฉtend DemoClass qui fait partie du package demotest et รฉtendra toutes les fonctionnalitรฉs de la classe.
3) Importer : Cet attribut est le plus frรฉquemment utilisรฉ dans les directives de page. Il permet d'indiquer au conteneur d'importer d'autres classes, interfaces, รฉnumรฉrations Java, etc., lors de la gรฉnรฉration du code de la servlet. Son fonctionnement est similaire aux instructions d'importation des classes et interfaces Java.
Syntaxe d'importation :
<%@ page import="value" %>
Ici, la valeur indique les classes qui doivent รชtre importรฉes.
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" import="java.util.Date" pageEncoding="ISO-8859-1"%>
Explication du code :
Dans le code ci-dessus, nous importons la classe Date ร partir du package java.util (toutes les classes utilitaires) et elle peut utiliser toutes les mรฉthodes de la classe suivante.
4) Type de contenu :
- Il dรฉfinit le schรฉma de codage des caractรจres, c'est-ร -dire qu'il est utilisรฉ pour dรฉfinir le type de contenu et le jeu de caractรจres de la rรฉponse.
- Le type par dรฉfaut de contentType est
"text/html; charset=ISO-8859-1".
Syntaxe du contentType :
<%@ page contentType="value" %>
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
Explication du code :
Dans le code ci-dessus, le type de contenu est dรฉfini sur text/html, il dรฉfinit le codage des caractรจres pour JSP et pour la page de rรฉponse gรฉnรฉrรฉe.
5) informations
- Il dรฉfinit une chaรฎne accessible par la mรฉthode getServletInfo().
- Cet attribut est utilisรฉ pour dรฉfinir la description du servlet.
Syntaxe des informations :
<%@ page info="value" %>
Ici, la valeur reprรฉsente les informations du servlet.
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
Explication du code :
Dans le code ci-dessus, la chaรฎne ยซGuru La directive JSP peut รชtre rรฉcupรฉrรฉe par l'interface servlet ร l'aide de getServletInfo().
6) Sรฉance
- La page JSP crรฉe une session par dรฉfaut.
- Parfois, nous n'avons pas besoin de crรฉer une session dans JSP, et par consรฉquent, nous pouvons dรฉfinir cet attribut sur false dans ce cas. La valeur par dรฉfaut de l'attribut session est true, et la session est crรฉรฉe. Lorsqu'il est dรฉfini sur false, nous pouvons indiquer au compilateur de ne pas crรฉer la session par dรฉfaut.
Syntaxe de la session :
<%@ page session="true/false"%>
Ici, dans ce cas, l'attribut de session peut รชtre dรฉfini sur true ou false
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" session="false"%>
Explication du code:
Dans l'exemple ci-dessus, l'attribut de session est dรฉfini sur ยซ false ยป, nous indiquons donc que nous ne voulons crรฉer aucune session dans cette JSP.
7) estThreadSafe :
- Il dรฉfinit le modรจle de thread pour le servlet gรฉnรฉrรฉ.
- Il indique le niveau de sรฉcuritรฉ des threads implรฉmentรฉ dans la page.
- Sa valeur par dรฉfaut est vraie donc simultanรฉe
- Nous pouvons utiliser cet attribut pour implรฉmenter l'interface SingleThreadModel dans le servlet gรฉnรฉrรฉ.
- Si nous le dรฉfinissons sur false, alors il implรฉmentera SingleThreadModel et pourra accรฉder ร tous les objets partagรฉs et peut gรฉnรฉrer des incohรฉrences.
Syntaxe de isThreadSafe :
<% @ page isThreadSafe="true/false" %>
Ici, true ou false reprรฉsente si la synchronisation est lร , puis dรฉfinissez-la sur true et dรฉfinissez-la sur false.
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isThreadSafe="true"%>
Explication du code :
Dans le code ci-dessus, isThreadSafe est dรฉfini sur ยซ true ยป, la synchronisation sera donc effectuรฉe et plusieurs threads pourront รชtre utilisรฉs.
8) Chasse automatique :
Cet attribut spรฉcifie si la sortie en mรฉmoire tampon doit รชtre vidรฉe automatiquement ou non et la valeur par dรฉfaut de cet attribut est true. Si la valeur est dรฉfinie sur false, la mรฉmoire tampon ne sera pas vidรฉe automatiquement et si elle est pleine, nous obtiendrons une exception. Lorsque la mรฉmoire tampon est nulle, la valeur false est illรฉgitime et il n'y a pas de mise en mรฉmoire tampon, elle sera donc vidรฉe automatiquement.
Syntaxe de autoFlush :
<% @ page autoFlush="true/false" %>
Ici, vrai/faux indique si la mise en mรฉmoire tampon doit รชtre effectuรฉe ou non
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" autoFlush="false"%>
Explication du code :
Dans le code ci-dessus, le flux automatique est dรฉfini sur false et, par consรฉquent, la mise en mรฉmoire tampon ne sera pas effectuรฉe et la sortie sera manuellement vidรฉe.
9) Buffer:
- En utilisant cet attribut, l'objet de rรฉponse de sortie peut รชtre mis en mรฉmoire tampon.
- Nous pouvons dรฉfinir la taille de la mise en mรฉmoire tampon ร effectuer en utilisant cet attribut et la taille par dรฉfaut est de 8 Ko.
- Il demande au servlet d'รฉcrire dans le tampon avant d'รฉcrire dans l'objet de rรฉponse.
Syntaxe du tampon :
<%@ page buffer="value" %>
Ici, la valeur reprรฉsente la taille du tampon qui doit รชtre dรฉfini. S'il n'y a pas de tampon, alors nous pouvons รฉcrire comme aucun, et si nous ne mentionnons aucune valeur, la valeur par dรฉfaut est 8 Ko.
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" buffer="16KB"%>
Explication du code :
Dans le code ci-dessus, la taille du tampon est mentionnรฉe comme รฉtant de 16 Ko, le tampon รฉtant de cette taille.
10) isErrorPage :
- Cela indique que la page JSP comportant une page d'erreur sera vรฉrifiรฉe dans une autre page JSP.
- Tout fichier JSP dรฉclarรฉ avec l'attribut ยซ isErrorPage ยป est alors capable de recevoir des exceptions d'autres pages JSP qui ont des pages d'erreur.
- Les exceptions sont disponibles pour ces pages uniquement.
- La valeur par dรฉfaut est faux.
Syntaxe de isErrorPage :
<%@ page isErrorPage="true/false"%>
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isErrorPage="true"%>
Explication du code :
Dans le code ci-dessus, isErrorPage est dรฉfini sur true. Par consรฉquent, il vรฉrifiera que tous les autres JSP ont un jeu d'attributs errorPage (dรฉcrit dans l'attribut suivant) et il peut gรฉrer les exceptions.
11) Encodage de page :
L'attribut ยซ pageEncoding ยป dรฉfinit le codage des caractรจres de la page JSP. La valeur par dรฉfaut est ยซ ISO-8859-1 ยป si aucune autre valeur n'est spรฉcifiรฉe.
Syntaxe de pageEncoding :
<%@ page pageEncoding="vaue" %>
Ici, la valeur spรฉcifie la valeur du jeu de caractรจres pour JSP
Exemple :
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isErrorPage="true"%>
Explication du code :
Dans le code ci-dessus, ยซ pageEncoding ยป a รฉtรฉ dรฉfini sur le jeu de caractรจres par dรฉfaut ISO-8859-1.
12) page d'erreur :
Cet attribut est utilisรฉ pour dรฉfinir la page d'erreur de la page JSP si JSP gรฉnรจre une exception, puis redirige vers la page d'exception.
Syntaxe de errorPage :
<%@ page errorPage="value" %>
Ici, la valeur reprรฉsente la valeur de la page JSP d'erreur
Exemple :
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" errorPage="errorHandler.jsp"%>
Explication du code :
Dans le code ci-dessus, pour gรฉrer les exceptions, nous avons errroHandler.jsp
13) estELIgnorรฉ :
- IsELIgnored est un attribut d'indicateur dans lequel nous devons dรฉcider d'ignorer ou non les balises EL.
- Son type de donnรฉes est java enum et la valeur par dรฉfaut est false donc EL est activรฉ par dรฉfaut.
Syntaxe de isELIgnored :
<%@ page isELIgnored="true/false" %>
Ici, vrai/faux reprรฉsente la valeur de EL, qu'elle doive รชtre ignorรฉe ou non.
Exemple :
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isELIgnored="true"%>
Explication du code :
Dans le code ci-dessus, isELIgnored est vrai et donc Langage d'expression (EL) est ignorรฉ ici. Dans l'exemple ci-dessous, nous utilisons quatre attributs (lignes de code 1 et 2).
Exemple avec quatre attributs
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isELIgnored="false"%> <%@page import="java.util.Date" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Directive Guru JSP1</title> </head> <body> <a>Date is:</a> <%= new java.util.Date() %> </body> </html>
Explication du code :
Code Ligne 1-2: Ici, nous avons dรฉfini quatre attributs, ร savoir
- Langue : Elle est dรฉfinie comme Java comme langage de programmation
- contentType : dรฉfini comme text/html pour indiquer au compilateur que le HTML doit รชtre au format
- pageEncoding : le jeu de caractรจres par dรฉfaut est dรฉfini dans cet attribut
- isELIgnored : la balise d'expression est fausse et n'est donc pas ignorรฉe
Code Ligne 3: Ici, nous avons utilisรฉ l'attribut d'importation, et il s'agit d'importer une ยซ classe de date ยป qui provient de Java util, et nous essayons d'afficher la date actuelle dans le code.
Lorsque vous exรฉcutez le code ci-dessus, vous obtiendrez le rรฉsultat suivant
Sortie :
- La date est : la date actuelle en utilisant la mรฉthode de date de la classe de date
2) Directive JSP Include
- La directive ยซ include ยป de JSP (ligne de code 8) est utilisรฉe pour inclure un fichier dans un autre fichier.
- Ce fichier inclus peut รชtre un fichier HTML, JSP, un fichier texte, etc.
- Il est รฉgalement utile pour crรฉer des modรจles avec les vues utilisateur et pour diviser les pages en en-tรชte, pied de page et actions de barre latรฉrale.
- Il inclut le fichier pendant la phase de traduction
Syntaxe de la directive include :
<%@ includeโฆ.%>
Exemple :
Directive_jsp2.jsp (Fichier principal)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ include file="directive_header_jsp3.jsp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Directive JSP2</title> </head> <body> <a>This is the main file</a> </body> </html>
Directive_header_jsp3.jsp (qui est inclus dans le fichier principal)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> </head> <body> <a>Header file : </a> <%int count =1; count++; out.println(count);%> : </body> </html>
Explication du code :
Directive_jsp2.jsp :
Code Ligne 3: Dans ce code, nous utilisons des balises include oรน nous incluons le fichier directive_header_jsp3.jsp dans le fichier principal (_jsp2.jsp) et obtenons la sortie du fichier principal et du fichier inclus.
Directive_header_jsp3.jsp :
Code Ligne 11-12: Nous avons initialisรฉ une variable de comptage ร 1, puis nous l'avons incrรฉmentรฉe. Cela produira le rรฉsultat affichรฉ ci-dessous dans le fichier principal.
Lorsque vous exรฉcutez le code ci-dessus, vous obtenez le rรฉsultat suivant :
Sortie :
- La sortie est le fichier d'en-tรชte : 2 : Il s'agit du fichier principal
- La sortie est exรฉcutรฉe ร partir du fichier directive_jsp2.jsp tandis que le fichier inclus directive_header_jsp3.jsp sera compilรฉ en premier.
- Une fois le fichier inclus terminรฉ, le fichier principal est exรฉcutรฉ et la sortie proviendra du fichier principal ยซ Ceci est le fichier principal ยป. Vous obtiendrez donc le rรฉsultat sous la forme ยซ Fichier d'en-tรชte : 2 ยป de _jsp3.jsp et ยซ Ceci est le fichier principal ยป de _jsp2.jsp.
3) Directive JSP Taglib
- La directive JSP taglib est utilisรฉe pour dรฉfinir la bibliothรจque de balises avec ยซ taglib ยป comme prรฉfixe, que nous pouvons utiliser dans JSP.
- Plus de dรฉtails seront traitรฉs dans la section Balises personnalisรฉes JSP
- La directive JSP taglib est utilisรฉe dans les pages JSP ร l'aide des bibliothรจques de balises standard JSP
- Il utilise un ensemble de balises personnalisรฉes, identifie l'emplacement de la bibliothรจque et fournit des moyens d'identifier les balises personnalisรฉes dans la page JSP.
Syntaxe de la directive taglib :
<%@ taglib uri="uri" prefix="value"%>
Ici, l'attribut ยซ uri ยป est un identifiant unique dans le descripteur de la bibliothรจque de balises et l'attribut ยซ prรฉfixe ยป est un nom de balise.
Exemple :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="gurutag" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Directive JSP</title> <gurutag:hello/> </head> <body> </body> </html>
Explication du code :
Code Ligne 3: Ici ยซ taglib ยป est dรฉfini avec les attributs uri et prรฉfixe.
Code Ligne 9: ยซ gurutag ยป est la balise personnalisรฉe dรฉfinie et elle peut รชtre utilisรฉe n'importe oรน


