Le Direttive non
producono output ma mettono a disposizione definizioni, notifiche e informazioni valide e disponibili in tutto il documento
".jsp". La sintassi più utilizzata per le Direttive è la seguente:
<%@ Codice
%>
Come avrete avuto modo di notare, a livello sintattico è sufficiente far seguire al primo delimitatore
una chiocciolina ("
@") per introdurre una
Direttiva.
A livello sostanziale, abbiamo invece tre
tipologie principali di
Direttive utilizzabili:
- Page: attraverso la quale vengono direttamente
coinvolti i criteri di compilazione delle pagine.
- Include: include stringhe di testo o ulteriore codice
all'interno di un file.
- Taglib: abbreviazione di tag library, attraverso di essa possiamo
utilizzare tags personalizzati, indicare la libreria in cui sono definiti e associare loro un prefisso che li renda
univoci.
Potremo quindi dire che la
Direttiva Page esprime una "definizione di attributi";
Include esprime una "notifica" al
Servlet Engine riguardo a un punto determinato del file ".jsp" in cui
và incluso del codice esterno; infine,
Taglib "autorizza" l'uso di costrutti sintattici definiti dallo
sviluppatore.
Anche in questo caso sarà utile proporre alcuni esempi pratici utili a chiarire
l'argomento trattato.
Inseriamo per esempio il codice seguente in un file chiamato
"d_page.jsp":
<%@ page import="java.util.*" %>
<html>
<head>
<% Date data_di_oggi
= new Date(); %>
<%= data_di_oggi %>
</head>
</html>
Come avremo modo di
notare testando lo script appena proposto, con esso otteniamo un modo alternativo per visualizzare la data odierna rispetto a
quello creato nel capitolo 5 di questa guida.
Nel codice appena proposto, abbiamo utilizzato la
Direttiva
Page per importare il
package java.util, sarebbe stato poi possibile introdurre ulteriori
packages
semplicemente separandoli con una virgola; in secondo luogo abbiamo utilizzato la comune sintassi per le
JSP in modo
da assegnare un valore al parametro stringa "data_di_oggi"; infine, abbiamo introdotto un'
Espressione per la
produzione dell'output desiderato.
Facciamo ora un esempio riguardate la
Direttiva include, per alcuni
versi o se non altro per una semplice questione di omonimia, essa potrebbe essere confusa con la
Standard Actions
jsp:include, ma la logica che sottende al suo funzionamento è differente.
Creiamo un file, chiamato per
esempio "d_include.jsp" e salviamolo con il seguente codice al suo
interno:
<html>
<head>
<b>Output<b>:
<%@ include file="jsp_prova.jsp"
%>
</head>
</html>
Sarà possibile testare il breve script precedente sostituendo
il richiamo al documento "jsp_prova.jsp" con quello riferito ad un file dotato di estensione differente come ".txt" o ".htm",
non noteremo alcuna differenza, in quanto la
Direttiva include si occupa dell'inclusione "fisica" della pagina che le
viene passata come parametro.
Come abbiamo avuto modo di notare, l'output ottenuto è lo stesso
visualizzato in precedenza utilizzando l'
Actions jsp:include, ma è importante tener presente che quest'ultima
non opera una vera e propria inclusione "fisica" dei documenti ma più propriamente ne esegue il codice all'interno del file
in cui viene richiamata.
Abbiamo infine
Taglib che come è stato anticipato consente l'impiego
di tags definiti dall'utente. La sintassi di questa direttiva si presenta nella forma seguente
<%@ taglib
uri="tag library" prefix="prefisso per i tag" %>
L'
uri indica l'archivio della
tag library scelto
dallo sviluppatore, mentre
prefix indica il prefisso utilizzato per il richiamo dei
tags. Un esempio
dell'utilizzo di
Taglib potrebbe essere questo:
<%@ taglib uri="http://www.sito.it/tags"
prefix="tgs" %>
<tgs:Tag attribute="value"> STRINGA </tgs:Tag>
La questione riguardante
l'archiviazione della
tag library è quindi molto semplice in quanto perchè esse vengano reperite
basterà posizionare l'archivio in un qualsiasi punto del server raggiungibile tramite url.
Attenzione: Gli articoli su
Tomcat presenti in questa sezione sono stati
concessi in esclusiva per la pubblicazione a
Mrwebmaster.it; ne
è vietata la riproduzione, anche parziale, senza l'esplicito consenso dell'autore e della redazione di
Mrwebmaster.it.