Directives JSP: Page, Inclure & Tutoriel Taglib

Table des matières:

Anonim

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 JSP, JSP doit être converti en un servlet qui est 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 les balises <% @%>.

Syntaxe de la directive:

<%@ directive attribute %>

Il existe trois types de directives:

  1. Directive de page
  2. Inclure la directive
  3. Directive Taglib

Chacun d'eux est décrit en détail ci-dessous avec des exemples:

Dans ce tutoriel, vous apprendrez -

  • Directive de page JSP
  • Directive d'inclusion JSP
  • Directive JSP Taglib

Directive de page JSP

Syntaxe de la directive Page:

<%@ page… %>
  • Il fournit des attributs qui s'appliquent à l'ensemble de la page JSP.
  • Il définit les attributs dépendant 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 qui se rapportent à la page JSP actuelle.

Voici sa liste d'attributs associés à la directive de page:

  1. Langue
  2. Prolonge
  3. Importer
  4. contentType
  5. Info
  6. session
  7. isThreadSafe
  8. autoflush
  9. amortir
  10. IsErrorPage
  11. pageEncoding
  12. errorPage
  13. isELIgonored

Plus de détails sur chaque attribut

  1. language : Il définit le langage de programmation (langage sous-jacent) utilisé dans la page.

    Syntaxe de la langue:

    <%@ 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 du langage d'attribut est Java, qui est le langage sous-jacent dans ce cas. Par conséquent, le code dans les balises d'expression serait compilé à l'aide du compilateur java.

  1. Étend : cet attribut est utilisé pour étendre (hériter) la classe comme le fait JAVA

Syntaxe de extend:

<%@ 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 se trouve dans le package demotest, et il étendra toutes les fonctionnalités de la classe.

  1. Importer : cet attribut est l'attribut le plus utilisé dans les attributs de directive de page.Il est utilisé pour indiquer au conteneur d'importer d'autres classes Java, interfaces, énumérations, etc. lors de la génération du code de servlet.Il est similaire aux instructions d'importation dans les classes Java, les interfaces.

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 il peut utiliser toutes les méthodes de la classe suivante.

  1. contentType :
  • 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 de caractères pour JSP et pour la page de réponse générée.

  1. Info
  • 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 Directive JSP" peut être récupérée par l'interface de servlet à l'aide de getServletInfo ()

  1. Session
  • 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 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", c'est pourquoi nous indiquons que nous ne voulons pas créer de session dans cette JSP

  1. isThreadSafe:
  • 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 true 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 peut accéder à tous les objets partagés et peut entraîner une incohérence.

Syntaxe de isThreadSafe:

<% @ page isThreadSafe="true/false" %>

Ici, vrai ou faux représente si la synchronisation est là, alors défini comme vrai et définissez-le comme faux.

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", par conséquent la synchronisation sera effectuée et plusieurs threads peuvent être utilisés.

  1. AutoFlush:

Cet attribut spécifie que la sortie mise en mémoire tampon doit être purgée automatiquement ou non et la valeur par défaut de cet attribut est true.

Si la valeur est définie sur false, le tampon ne sera pas vidé automatiquement et s'il est plein, nous obtiendrons une exception.

Lorsque la mémoire tampon est nulle, la valeur false est illégitime et il n'y a pas de mémoire tampon, elle sera donc automatiquement vidée.

Syntaxe de autoFlush:

<% @ page autoFlush="true/false" %>

Ici, vrai / faux représente 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, l'autoflush est défini sur false et la mise en mémoire tampon ne sera donc pas effectuée et il a vidé manuellement la sortie.

  1. Amortir:
  • 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 à l'aide de cet attribut et la taille par défaut est de 8 Ko.
  • Il demande au servlet d'écrire 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éfinie. 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 de la mémoire tampon est mentionnée comme 16 Ko, la mémoire tampon étant de cette taille

  1. isErrorPage:
  • Cela indique que la page JSP qui a 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 ne sont disponibles que pour ces pages.
  • La valeur par défaut est false.

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 l'attribut errorPage (décrit dans l'attribut suivant) et qu'il peut gérer les exceptions.

  1. Encodage de page:
L'attribut "pageEncoding" définit le codage des caractères pour la page JSP.

La valeur par défaut est "ISO-8859-1" si aucune autre 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

  1. errorPage:
Cet attribut est utilisé pour définir la page d'erreur pour la page JSP si JSP lève 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

  1. isELIgnoré:
  • IsELIgnored est un attribut de drapeau 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 soit 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 par conséquent, le langage d'expression (EL) est ignoré ici.

Dans l'exemple ci-dessous, nous utilisons quatre attributs (ligne de code 1-2)

Exemple avec quatre attributs

<% @ page language = "java" contentType = "text / html;" pageEncoding = "ISO-8859-1"isELIgnored = "faux"%><% @ page import = "java.util.Date"%> Directive Guru JSP1  La date est: <% = nouveau java.util.Date ()%>

Explication du code:

Ligne de code 1-2: Ici, nous avons défini quatre attributs, c'est-à-dire

  • Langage: il est défini comme Java comme langage de programmation
  • contentType: défini sur text / html pour indiquer au compilateur que le format 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

Ligne de code 3: Ici, nous avons utilisé l'attribut d'importation, et il importe la "classe de date" qui provient du package utilitaire Java, et nous essayons d'afficher la date actuelle dans le code.

Lorsque vous exécutez le code ci-dessus, vous obtiendrez la sortie suivante

Sortie :

  • La date est: la date actuelle en utilisant la méthode de date de la classe de date

Directive d'inclusion JSP

  • La "directive d'inclusion" JSP (ligne de code 8) est utilisée pour inclure un fichier dans un autre fichier
  • Ce fichier inclus peut être HTML, JSP, des fichiers texte, etc.
  • Il est également utile pour créer des modèles avec les vues utilisateur et diviser les pages en actions d'en-tête, de pied de page et 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"%> Directive Guru JSP2  Ceci est le fichier principal 

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"%> Fichier d'en-tête: <% int count = 1; count ++;out.println (nombre);%>:

Explication du code:

Directive_jsp2.jsp:

Ligne de code 3: Dans ce code, nous utilisons des balises d'inclusion 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:

Ligne de code 11-12: Nous avons pris un nombre de variables initialisé à 1, puis nous l'avons incrémenté. Cela donnera la sortie dans le fichier principal comme indiqué ci-dessous.

Lorsque vous exécutez le code ci-dessus, vous obtenez la sortie suivante:

Production:

  • La sortie est le fichier d'en-tête: 2: c'est le 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". Ainsi, vous obtiendrez la sortie comme "Fichier d'en-tête: 2" de _jsp3.jsp et "Ceci est le fichier principal" de _jsp2.jsp.

Directive JSP Taglib

  • La directive taglib JSP 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 taglib JSP 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 bibliothèque de balises et l'attribut "prefix" 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"%> Guru Directive JSP 

Explication du code:

Ligne de code 3: Ici, "taglib" est défini avec les attributs uri et prefix.

Ligne de code 9: "gurutag" est la balise personnalisée définie et peut être utilisée n'importe où