Cosa sono le direttive JSP?
- Le direttive JSP sono i messaggi al contenitore JSP. Forniscono informazioni globali su un'intera pagina JSP.
- Le direttive JSP vengono utilizzate per fornire istruzioni speciali a un contenitore per la traduzione di JSP in codice servlet.
- Nella fase del ciclo di vita di JSP, JSP deve essere convertito in un servlet che è la fase di traduzione.
- Forniscono istruzioni al contenitore su come gestire alcuni aspetti dell'elaborazione JSP
- Le direttive possono avere molti attributi separati da virgole come coppie chiave-valore.
- In JSP, la direttiva è descritta nei tag <% @%>.
Sintassi della direttiva:
<%@ directive attribute %>
Esistono tre tipi di direttive:
- Direttiva sulla pagina
- Includi direttiva
- Direttiva Taglib
Ciascuno di essi è descritto in dettaglio di seguito con esempi:
In questo tutorial imparerai:
- Direttiva JSP Page
- Direttiva Include JSP
- Direttiva JSP Taglib
Direttiva JSP Page
Sintassi della direttiva Page:
<%@ page… %>
- Fornisce attributi che vengono applicati all'intera pagina JSP.
- Definisce gli attributi dipendenti dalla pagina, come il linguaggio di scripting, la pagina di errore e i requisiti di buffering.
- Viene utilizzato per fornire istruzioni a un contenitore che riguarda la pagina JSP corrente.
Di seguito è riportato il suo elenco di attributi associati alla direttiva di pagina:
- linguaggio
- Si estende
- Importare
- tipo di contenuto
- Informazioni
- sessione
- isThreadSafe
- autoflush
- buffer
- IsErrorPage
- pageEncoding
- errorPage
- isELIgonored
Maggiori dettagli su ogni attributo
- language : definisce il linguaggio di programmazione (linguaggio sottostante) utilizzato nella pagina.
Sintassi del linguaggio:
<%@ page language="value" %>
Qui il valore è il linguaggio di programmazione (linguaggio sottostante)
Esempio:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Spiegazione del codice: Nell'esempio precedente, il valore della lingua dell'attributo è Java, che in questo caso è la lingua sottostante. Quindi, il codice nei tag di espressione verrebbe compilato utilizzando il compilatore java.
- Estende : questo attributo viene utilizzato per estendere (ereditare) la classe come fa JAVA
Sintassi di estensioni:
<%@ page extends="value" %>
Qui il valore rappresenta la classe da cui deve essere ereditato.
Esempio:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@ page extends="demotest.DemoClass" %>
Spiegazione del codice: Nel codice precedente JSP sta estendendo DemoClass che si trova all'interno del pacchetto demotest e estenderà tutte le funzionalità di classe.
- Import : questo attributo è l'attributo più utilizzato negli attributi della direttiva di pagina. Viene utilizzato per indicare al contenitore di importare altre classi java, interfacce, enumerazioni, ecc. Durante la generazione del codice servlet. È simile alle istruzioni di importazione nelle classi e interfacce java.
Sintassi di importazione :
<%@ page import="value" %>
Qui il valore indica le classi che devono essere importate.
Esempio:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"import="java.util.Date" pageEncoding="ISO-8859-1"%>
Spiegazione del codice:
Nel codice sopra, stiamo importando la classe Date dal pacchetto java.util (tutte le classi di utilità) e può utilizzare tutti i metodi della classe seguente.
- contentType :
- Definisce lo schema di codifica dei caratteri, ovvero viene utilizzato per impostare il tipo di contenuto e il set di caratteri della risposta
- Il tipo predefinito di contentType è "text / html; charset = ISO-8859-1".
Sintassi del contentType:
<%@ page contentType="value" %>
Esempio:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Spiegazione del codice:
Nel codice precedente, il tipo di contenuto è impostato come testo / html, imposta la codifica dei caratteri per JSP e per la pagina di risposta generata.
- Informazioni
- Definisce una stringa a cui è possibile accedere tramite il metodo getServletInfo ().
- Questo attributo viene utilizzato per impostare la descrizione del servlet.
Sintassi delle informazioni:
<%@ page info="value" %>
Qui, il valore rappresenta le informazioni sul servlet.
Esempio:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
Spiegazione del codice:
Nel codice sopra, la stringa "Guru Directive JSP" può essere recuperata dall'interfaccia servlet utilizzando getServletInfo ()
- Sessione
- La pagina JSP crea la sessione per impostazione predefinita.
- A volte non è necessario creare una sessione in JSP e, quindi, in questo caso possiamo impostare questo attributo su false. Il valore predefinito dell'attributo di sessione è true e la sessione viene creata.
Quando è impostato su false, possiamo indicare al compilatore di non creare la sessione per impostazione predefinita.
Sintassi della sessione:
<%@ page session="true/false"%>
In questo caso, l'attributo di sessione può essere impostato su true o false
Esempio:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"session="false"%>
Spiegazione del codice:
Nell'esempio precedente, l'attributo di sessione è impostato su "false" quindi stiamo indicando che non vogliamo creare alcuna sessione in questo JSP
- isThreadSafe:
- Definisce il modello di threading per il servlet generato.
- Indica il livello di thread safety implementato nella pagina.
- Il suo valore predefinito è vero, quindi simultaneo
- Possiamo usare questo attributo per implementare l'interfaccia SingleThreadModel nel servlet generato.
- Se lo impostiamo su false, implementerà SingleThreadModel e può accedere a qualsiasi oggetto condiviso e può produrre incoerenze.
Sintassi di isThreadSafe:
<% @ page isThreadSafe="true/false" %>
Qui vero o falso rappresenta se la sincronizzazione è presente, quindi impostato come vero e impostato come falso.
Esempio:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isThreadSafe="true"%>
Spiegazione del codice:
Nel codice precedente, isThreadSafe è impostato su "true", quindi verrà eseguita la sincronizzazione e sarà possibile utilizzare più thread.
- AutoFlush:
Questo attributo specifica che l'output memorizzato nel buffer deve essere scaricato automaticamente o meno e il valore predefinito di quell'attributo è true.
Se il valore è impostato su false, il buffer non verrà svuotato automaticamente e se è pieno avremo un'eccezione.
Quando il buffer è nessuno, il falso è illegittimo e non c'è buffering, quindi verrà cancellato automaticamente.
Sintassi di autoFlush:
<% @ page autoFlush="true/false" %>
Qui true / false rappresenta se il buffering deve essere eseguito o meno
Esempio:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"autoFlush="false"%>
Spiegazione del codice:
Nel codice sopra, l'autoflush è impostato su false e quindi il buffering non verrà eseguito e ha svuotato manualmente l'output.
- Buffer:
- Utilizzando questo attributo, l'oggetto risposta di output può essere memorizzato nel buffer.
- Possiamo definire la dimensione del buffering da eseguire utilizzando questo attributo e la dimensione predefinita è 8KB.
- Indica al servlet di scrivere il buffer prima di scrivere nell'oggetto risposta.
Sintassi del buffer:
<%@ page buffer="value" %>
Qui il valore rappresenta la dimensione del buffer che deve essere definito. Se non è presente alcun buffer, possiamo scrivere come nessuno e se non menzioniamo alcun valore, il valore predefinito è 8KB
Esempio:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"buffer="16KB"%>
Spiegazione del codice:
Nel codice precedente, la dimensione del buffer è menzionata come 16 KB in cui il buffer sarebbe di quella dimensione
- isErrorPage:
- Indica che la pagina JSP che ha una pagina di errore verrà controllata in un'altra pagina JSP
- Qualsiasi file JSP dichiarato con l'attributo "isErrorPage" è quindi in grado di ricevere eccezioni da altre pagine JSP che hanno pagine di errore.
- Le eccezioni sono disponibili solo per queste pagine.
- Il valore predefinito è falso.
Sintassi di isErrorPage:
<%@ page isErrorPage="true/false"%>
Esempio:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isErrorPage="true"%>
Spiegazione del codice:
Nel codice sopra, isErrorPage è impostato come true. Quindi, controllerà che qualsiasi altro JSP abbia impostato l'attributo errorPage (descritto nel prossimo attributo) e può gestire le eccezioni.
- PageEncoding:
Il valore predefinito è "ISO-8859-1" se non è specificato alcun altro.
Sintassi della pagina Codifica:
<%@ page pageEncoding="vaue" %>
Qui valore specifica il valore del set di caratteri per JSP
Esempio:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isErrorPage="true"%>
Spiegazione del codice:
Nel codice precedente "pageEncoding" è stato impostato sul set di caratteri predefinito ISO-8859-1
- errorPage:
Sintassi di errorPage:
<%@ page errorPage="value" %>
Qui il valore rappresenta il valore della pagina JSP di errore
Esempio:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"errorPage="errorHandler.jsp"%>
Spiegazione del codice:
Nel codice sopra, per gestire le eccezioni abbiamo errroHandler.jsp
- isELIgnored:
- IsELIgnored è un attributo flag in cui dobbiamo decidere se ignorare o meno i tag EL.
- Il suo tipo di dati è java enum e il valore predefinito è false, quindi EL è abilitato per impostazione predefinita.
Sintassi di isELIgnored:
<%@ page isELIgnored="true/false" %>
Qui, vero / falso rappresenta il valore di EL indipendentemente dal fatto che debba essere ignorato o meno.
Esempio:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isELIgnored="true"%>
Spiegazione del codice:
Nel codice sopra, isELIgnored è vero e quindi Expression Language (EL) viene ignorato qui.
Nell'esempio seguente stiamo usando quattro attributi (riga di codice 1-2)
Esempio con quattro attributi
<% @ page language = "java" contentType = "text / html;" pageEncoding = "ISO-8859-1"isELIgnored = "false"%><% @ page import = "java.util.Date"%>Guru della direttiva JSP1 La data è: <% = new java.util.Date ()%>
Spiegazione del codice:
Riga di codice 1-2: qui abbiamo definito quattro attributi, ad es
- Linguaggio: è impostato come Java come linguaggio di programmazione
- contentType: impostato come text / html per dire al compilatore che html deve essere formattato
- pageEncoding: il set di caratteri predefinito è impostato in questo attributo
- isELIgnored: Expression Tag è falso, quindi non viene ignorato
Riga di codice 3: qui abbiamo usato l'attributo import e sta importando la "Classe della data" che proviene dal pacchetto Java util, e stiamo cercando di visualizzare la data corrente nel codice.
Quando esegui il codice sopra, otterrai il seguente output
Uscita :
- La data è: la data corrente utilizzando il metodo date della classe date
Direttiva Include JSP
- La "direttiva include" JSP (linea di codice 8) viene utilizzata per includere un file in un altro file
- Questo file incluso può essere HTML, JSP, file di testo, ecc.
- È anche utile per creare modelli con le visualizzazioni utente e suddividere le pagine in azioni di intestazione e piè di pagina e barra laterale.
- Include file durante la fase di traduzione
Sintassi della direttiva include:
<%@ include… .%>
Esempio:
Direttiva_jsp2.jsp (file principale)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ include file = "Directive_header_jsp3.jsp"%>Direttiva Guru JSP2 Questo è il file principale
Directive_header_jsp3.jsp (che è incluso nel file principale)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> File di intestazione: <% int count = 1; count ++;out.println (count);%>:
Spiegazione del codice:
Direttiva_jsp2.jsp:
Riga di codice 3: in questo codice, utilizziamo i tag include in cui includiamo il file direttiva_header_jsp3.jsp nel file principale (_jsp2.jsp) e otteniamo l'output sia del file principale che del file incluso.
Directive_header_jsp3.jsp:
Riga codice 11-12: abbiamo preso un conteggio variabile inizializzato a 1 e poi lo abbiamo incrementato. Questo darà l'output nel file principale come mostrato di seguito.
Quando esegui il codice sopra, ottieni il seguente output:
Produzione:
- L'output è il file di intestazione: 2: questo è il file principale
- L'output viene eseguito dal file direttiva_jsp2.jsp mentre il file incluso direttiva_header_jsp3.jsp verrà compilato per primo.
- Dopo che il file incluso è terminato, viene eseguito il file principale e l'output sarà dal file principale "Questo è il file principale". Quindi otterrai l'output come "File di intestazione: 2" da _jsp3.jsp e "Questo è il file principale" da _jsp2.jsp.
Direttiva JSP Taglib
- La direttiva taglib JSP viene utilizzata per definire la libreria di tag con "taglib" come prefisso, che possiamo usare in JSP.
- Maggiori dettagli saranno trattati nella sezione Tag personalizzati JSP
- La direttiva taglib JSP viene utilizzata nelle pagine JSP utilizzando le librerie di tag standard JSP
- Utilizza una serie di tag personalizzati, identifica la posizione della libreria e fornisce i mezzi per identificare i tag personalizzati nella pagina JSP.
Sintassi della direttiva taglib:
<%@ taglib uri="uri" prefix="value"%>
Qui l'attributo "uri" è un identificatore univoco nel descrittore della libreria di tag e l'attributo "prefix" è un nome di tag.
Esempio:
<% @ 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"%>Direttiva Guru JSP
Spiegazione del codice:
Riga di codice 3: qui "taglib" è definito con attributi uri e prefisso.
Riga di codice 9: "gurutag" è il tag personalizzato definito e può essere utilizzato ovunque