Tecnologie di Sviluppo per il Web Concetti Avanzati

18/06/2003
Tecnologie di Sviluppo per il Web
Java Server Pages (JSP):
Concetti Avanzati
G. Mecca – [email protected] – Università della Basilicata
JSP >> Sommario
Concetti Avanzati
m
Librerie di Tag (cenni)
ðLa Libreria Standard di Tag JSP
(“JSTL - JSP Standard Tag Library”)
G. Mecca - Tecnologie di Sviluppo per il Web
2
1
18/06/2003
JSP >> Concetti Avanzati >> Librerie di Tag
Librerie di Tag
m
Filosofia del Modello 2
ðseparazione delle funzioni
ðil codice HTML deve stare nelle pagine jsp
ðil codice Java deve stare nel controllo
m
Obiettivo
ðrimuovere le istruzioni Java dalle pagine Jsp
ðsostituendoli con particolari tag la cui
semantica è quella di eseguire operazioni
opportune
G. Mecca - Tecnologie di Sviluppo per il Web
3
JSP >> Concetti Avanzati >> Librerie di Tag
Librerie di Tag
m
Esempi di operazioni frequenti nelle jsp
ðgestione dei bean (creazione, istanziazione e
accesso alle proprietà)
ðinclusione
ðvisualizzazione di dati complessi (es:
collezioni)
ðstrutture condizionali
ðintestazioni HTTP della risposta
G. Mecca - Tecnologie di Sviluppo per il Web
4
2
18/06/2003
JSP >> Concetti Avanzati >> Librerie di Tag
Librerie di Tag
m
Tag di azione predefiniti
ðrisolvono il problema dell’inclusione
ðrisolvono (in gran parte) il problema della
gestione dei bean
m
Per tutto il resto
ðè possibile definire i propri tag personalizzati
ðfunzionalità supportata dalla versione 1.1
ðsignificativamente rivisitata nella versione 1.2
G. Mecca - Tecnologie di Sviluppo per il Web
5
JSP >> Concetti Avanzati >> Librerie di Tag
Librerie di Tag
m
Libreria di tag personalizzati
ðpackage di classi, una classe per ciascun tag
ðdescrittore della libreria (“tag library
descriptor”), file .tld
ðassocia il nome del tag alla corrispondente
classe
m
Utilizzo
ðdirettiva “taglib” nelle pagine Jsp
G. Mecca - Tecnologie di Sviluppo per il Web
6
3
18/06/2003
JSP >> Concetti Avanzati >> Librerie di Tag
Costruzione della Libreria
m
API javax.servlet.jsp.tagext
ðclasse astratta TagSupport
ðmetodo int doStartTag(): operazioni
corrispondenti al tag di apertura
ðmetodo int doEndTag(): operazioni da
eseguire al tag di chiusura
ðvariabile implicita pageContext
ðvarie modalità per il trattamento del corpo
G. Mecca - Tecnologie di Sviluppo per il Web
7
JSP >> Concetti Avanzati >> Librerie di Tag
Costruzione della Libreria
m
Trattamento del corpo
ðvarie costanti
ðEVAL_BODY_INCLUDE
ðSKIP_BODY
ðEVAL_PAGE
ðSKIP_PAGE
ðEVAL_ BODY_AGAIN
G. Mecca - Tecnologie di Sviluppo per il Web
8
4
18/06/2003
JSP >> Concetti Avanzati >> Librerie di Tag
Costruzione della Libreria
m
Descrittore della libreria
ðfile xml
ðDTD fissato dalla specifica
ðestensione convenzionale .tld
ðdichiara per ciascun tag il nome, il modello di
contenuto, la classe java che lo implementa,
eventuali parametri
9
G. Mecca - Tecnologie di Sviluppo per il Web
JSP >> Concetti Avanzati >> Librerie di Tag
Costruzione della Libreria
m
Nella pagina jsp
ðdirettiva taglib
ð<%@ taglib uri=“uriDescrittore”
prefix=“prefisso” %>
ðuriDescrittore: riferiemento al tag .tld
ðprefisso: prefisso di namespace utilizzato
nella pagina per distinguere i tag della libreria
ðforma dei tag: <prefisso:nome>
la libreria di tag di pinco >>
G. Mecca - Tecnologie di Sviluppo per il Web
10
5
18/06/2003
JSP >> Concetti Avanzati >> Librerie di Tag
Costruzione della Libreria
m
Nota
ðsi tratta di una funzionalità complessa
ðmolte funzionalità avanzate
ðsemantica non banale
m
Idealmente
ði tag vengono sviluppati una volta per tutte
ðgli utenti utilizzano i tag standard
corrispondenti alle attività più diffuse
G. Mecca - Tecnologie di Sviluppo per il Web
11
JSP >> Concetti Avanzati >> Librerie di Tag
JSTL: La Libreria Standard di Tag JSP
m
Definita nel Java Community Process
ðimplementazione di riferimento nel progetto
“taglibs” di jakarta.apache.org
ðnumerosissimi tag
ðes: gestione della sessione, gestione
dell’applicazione, if, cicli, bean, date,
espressioni regolari ecc.
ðprossima alla versione 1.0
G. Mecca - Tecnologie di Sviluppo per il Web
12
6
18/06/2003
JSP >> Sommario
Concetti Avanzati
m
Librerie di Tag (cenni)
ðLa Libreria Standard di Tag JSP
(“JSTL - JSP Standard Tag Library”)
G. Mecca - Tecnologie di Sviluppo per il Web
13
7