Il 0% ha trovato utile questo documento (0 voti)
1 visualizzazioni

JSP - Seconda parte

Il documento descrive gli oggetti built-in delle JSP, evidenziando il loro utilizzo e le loro caratteristiche. Viene fornita una panoramica degli oggetti come page, config, request, response, out, session, application, pageContext ed exception, insieme ai metodi e alle azioni associate. Inoltre, si discute l'uso dei JavaBeans nelle JSP per migliorare la modularità e la separazione della logica applicativa dalla presentazione.

Caricato da

donmatteo
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
1 visualizzazioni

JSP - Seconda parte

Il documento descrive gli oggetti built-in delle JSP, evidenziando il loro utilizzo e le loro caratteristiche. Viene fornita una panoramica degli oggetti come page, config, request, response, out, session, application, pageContext ed exception, insieme ai metodi e alle azioni associate. Inoltre, si discute l'uso dei JavaBeans nelle JSP per migliorare la modularità e la separazione della logica applicativa dalla presentazione.

Caricato da

donmatteo
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 14

02/05/2017

Built-in objects (con scope differenziati)


• Le specifiche JSP definiscono 8 oggetti built-in (o impliciti) utilizzabili
senza dover creare istanze
• Rappresentano utili riferimenti ai corrispondenti oggetti Java veri e
propri presenti nella tecnologia Servlet

Oggetto page
• L’oggetto page rappresenta l’istanza corrente della Servlet
• Ha come tipo l’interfaccia HTTPJspPage che discende da JSP page, la
quale a sua volta estende Servlet
• Può quindi essere utilizzato per accedere a tutti i metodi definiti nelle
Servlet

1
02/05/2017

Oggetto config
• Contiene la configurazione della Servlet (parametri di inizializzazione)
• Poco usato in pratica in quanto in generale nelle JSP sono poco usati i
parametri di inizializzazione

• Metodi di config:
• getInitParameterNames() restituisce tutti i nomi dei parametri di
inizializzazione
• getInitParameter(name) restituisce il valore del parametro passato per
nome

Oggetto request
• Rappresenta la richiesta alla pagina JSP
• È il parametro request passato al metodo service() della servlet
• Consente l’accesso a tutte le informazioni relative alla richiesta HTTP:
• indirizzo di provenienza, URL, headers, cookie, parametri, ecc.

2
02/05/2017

Oggetto response
• Oggetto legato all’I/O della pagina JSP
• Rappresenta la risposta che viene restituita al client
• Consente di inserire nella risposta diverse informazioni:
• content type ed encoding
• eventuali header di risposta
• cookie

Oggetto out
• Oggetto legato all’I/O della pagina JSP
• È uno stream di caratteri e rappresenta lo stream di output della pagina
• Esempio:

3
02/05/2017

Metodi dell’oggetto out


• isAutoFlush() dice se output buffer è stato impostato in modalità
autoFlush o meno
• getBufferSize() restituisce dimensioni del buffer
• getRemaining() indica quandi byte liberi ci sono nel buffer
• clearBuffer() ripulisce il buffer
• flush() forza l’emissione del contenuto del buffer
• close() fa flush e chiude lo stream

Oggetto session
• Oggetto che fornisce informazioni sul contesto di esecuzione della JSP
• Rappresenta la sessione corrente per un utente
• L’attributo session della direttiva page deve essere true affinchè JSP
partecipi alla sessione

4
02/05/2017

Oggetto application
• Oggetto che fornisce informazioni su contesto di esecuzione della JSP (è
ServletContext)
• Rappresenta la Web application a cui JSP appartiene
• Consente di interagire con l’ambiente di esecuzione:
• fornisce la versione di JSP Container
• garantisce l’accesso a risorse server-side
• permette accesso ai parametri di inizializzazione relativi
all’applicazione
• consente di gestire gli attributi di un’applicazione

Oggetto pageContext
• Oggetto che fornisce informazioni sul contesto di esecuzione della pagina JSP
• Rappresenta l’insieme degli oggetti impliciti di una JSP
• Consente accesso a tutti gli oggetti impliciti e ai loro attributi
• Consente trasferimento del controllo ad altre pagine

• Utilizzando questo oggetto è possibile lavorare con gli attributi (e.g., find, get, set,
remove) in qualsiasi livello
1. JSP Page – Scope: PAGE_CONTEXT (default)
2. HTTP Request – Scope: REQUEST_CONTEXT
3. HTTP Session – Scope: SESSION_CONTEXT
4. Application Level – Scope: APPLICATION_CONTEXT

• Es:
<% pageContext.setAttribute(”role", “manager”, PageContext.SESSION_SCOPE); %>
<% pageContext.getAttribute("mail", PageContext.APPLICATION_SCOPE); %>

5
02/05/2017

Oggetto exception
• Oggetto connesso alla gestione degli errori
• Rappresenta l’eccezione che non viene gestita da nessun blocco catch
• Non è automaticamente disponibile in tutte le pagine ma solo nelle Error
Page (quelle dichiarate con l’attributo errorPage impostato a true)
• Esempio:

Azioni
• Le azioni sono comandi JSP tipicamente per l’interazione con altre pagine
JSP, Servlet, o componenti JavaBean; sono espresse usando sintassi XML
• Sono previsti 6 tipi di azioni definite dai seguenti tag:
• useBean: istanzia JavaBean e gli associa un identificativo
• getProperty: ritorna la property indicata come oggetto
• setProperty: imposta valore della property indicata per nome
• include: include nella JSP il contenuto generato dinamicamente da un’altra
pagina locale
• forward: cede il controllo ad un’altra JSP o Servlet
• plugin: genera contenuto per scaricare plug-in Java se necessario

6
02/05/2017

Azioni: forward
• Sintassi: <jsp:forward page="localURL" />
• Consente trasferimento del controllo dalla pagina JSP corrente ad
un’altra pagina sul server locale
• L’attributo page definisce l’URL della pagina a cui trasferire il controllo
• La request viene completamente trasferita in modo trasparente per il
client

Azioni: forward
• È possibile generare dinamicamente l’attributo page <jsp:forward
page=’<%="message"+statusCode+".html"%>’/>
• Oggetti request, response e session della pagina d’arrivo sono gli stessi
della pagina chiamante, ma viene istanziato un nuovo oggetto
pageContext
• Attenzione: forward è possibile soltanto se non è stato emesso alcun output
• È possibile aggiungere parametri all’oggetto request della pagina
chiamata utilizzando il tag <jsp:param>

7
02/05/2017

Azioni: include
• Sintassi: <jsp:include page="localURL" flush="true" />
• Consente di includere il contenuto generato dinamicamente da un’altra
pagina locale all’interno dell’output della pagina corrente
• Trasferisce temporaneamente controllo ad un’altra pagina
• L’attributo page definisce l’URL della pagina da includere
• L’attributo flush stabilisce se sul buffer della pagina corrente
debba essere eseguito il flush prima di effettuare l’inclusione
• Gli oggetti session e request (ma non response) per pagina da
includere sono gli stessi della pagina chiamante, ma viene istanziato
un nuovo contesto di pagina

Azioni: include (2)


• È possibile aggiungere parametri all’oggetto request della pagina
inclusa utilizzando il tag <jsp:param>

8
02/05/2017

JSP e modello a componenti


• Scriptlet ed espressioni consentono uno sviluppo centrato sulla pagina
• Questo modello non consente una forte separazione tra logica applicativa
e presentazione dei contenuti
• Applicazioni complesse necessitano di maggiore modularità ed estensibilità,
tramite una architettura a più livelli

• A tal fine, JSP consentono anche sviluppo basato su un modello a


componenti
• Il modello a componenti:
• Consente di avere una maggiore separazione fra logica dell’applicazione
e contenuti
• Permette di costruire architetture molto più articolate
• Fate mente locale su quanto avete già visto in altri corsi sui componenti...

JavaBeans
• JavaBeans è il modello di “base” per componenti Java, il più semplice…
• Un JavaBean, o semplicemente bean, non è altro che una classe Java dotata
di alcune caratteristiche particolari:
• Classe public
• Ha un costruttore public di default (senza argomenti)
• Espone proprietà, sotto forma di coppie di metodi di accesso (accessors) costruiti
secondo una convenzione standard per i nomi dei metodi (get... set...)
• La proprietà prop è definita da due metodi getProp() e setProp()
• Il tipo del parametro di setProp(…) e del valore di ritorno di … getProp() devono
essere uguali e rappresentano il tipo della proprietà (può essere un tipo primitivo o
una qualunque classe Java)
• Es.: void setLength(int value) e int getLength() identificano proprietò length di tipo int

9
02/05/2017

JavaBeans (2)
• Se definiamo solo il metodo get avremo una proprietà in sola lettura (read-
only)
• Le proprietà di tipo boolean seguono una regola leggermente diversa: metodo
di lettura ha la forma isProp()
• Es: la proprietà empty sarà rappresentata dalla coppia void
setEmpty(boolean value) e boolean isEmpty()
• Ci sono anche proprietà indicizzate per rappresentare collezioni di valori
• Es: String getItem(int index) e setItem(int Index, String value) definiscono la
proprietà indicizzata String item[]
• Espone eventi con metodi di registrazione che seguono regole precise
• Es. listener, lancio di eventi

Esempio
• Creiamo un bean che espone due proprietà in sola lettura (ore e minuti)
e ci dà l’ora corrente

10
02/05/2017

JSP e JavaBean
• JSP prevedono una serie di tag per agganciare un bean e utilizzare le
sue proprietà all’interno della pagina
• Tre tipi:
• Tag per creare un riferimento al bean (creazione di un’istanza)
• Tag per impostare il valore delle proprietà del bean
• Tag per leggere il valore delle proprietà del bean e inserirlo nel flusso
della pagina

Esempio di uso di bean

11
02/05/2017

Tag jsp:useBean
• Sintassi: <jsp:useBean id="beanName" class="class“
scope="page|request|session|application"/>
• Inizializza e crea il riferimento al bean
• Gli attributi principali sono:
• id è il nome con cui l’istanza del bean verrà indicata nel resto della pagina
• class è classe Java che definisce il bean
• scope definisce ambito di accessibilità e tempo di vita dell’oggetto (default
= page)

Tag jsp:getProperty
• Sintassi:<jsp:getProperty name="beanName" property="propName"/>
• Consente l’accesso alle proprietà del bean
• Produce come output il valore della proprietà del bean
• Il tag non ha mai body e ha solo 2 attributi:
• name: nome del bean a cui si fa riferimento
• property: nome della proprietà di cui si vuole leggere il valore

12
02/05/2017

Esempio: uso di CurrentTimeBean

Tag jsp:setProperty
• Sintassi: <jsp:setProperty name="beanName" property="propName“
value="propValue"/>
• Consente di modificare il valore delle proprietà del bean
• Esempio:

13
02/05/2017

Proprietà indicizzate
• I tag per JavaBean non supportano proprietà indicizzate
• Però un bean è un normale oggetto Java: è quindi possibile accedere a
variabili e metodi
• Esempio:

14

Potrebbero piacerti anche