MokaByte
Numero 29 - Aprile 1999
|
||||
|
|
con JSP |
||
|
|
|
||
|
||||
Le Java Server Pages sono la soluzione multipiattaforma in chiave Java per realizzare in modo estremamente competitivo, web a contenuto dinamico, area strategicamente molto importante, in un settore in continuo fermento, quale è quello della programmazione Internet/Intranet. |
||||||||
In occasione
del passato JavaOne 1998, la manifestazione dedicata a Java organizzata
da Sun a S.Francisco, furono presentate molte novità legate a questo
linguaggio, fra cui le Java Server Pages.
Inizialmente sono passate un po’ in sordina agli occhi della comunità di sviluppatori, e solo con il rilascio della specifica .92 [SPEC092], si è iniziato a sentirne parlare un po’ più spesso: questo ritardo nella diffusione di tali oggetti si deve imputare anche alla mancanza i primi tempi di software col quale poter effettuare prove e sviluppare applicazioni In questo articolo si cercherà di introdurre le basi di questa nuova ed interessantissima tecnologia, che molto probabilmente giocherà un ruolo fondamentale nell’evoluzione del web futuro: dato però che si tratta di una soluzione relativamente giovane, per assistere una completa affermazione, sarà necessario attendere ancora un poco. A causa della vastità dell’argomento, questo mese ci soffermeremo sulla parte legata alla tecnologia in se, vedendo cosa sia, come funzioni, e cosa ci permetta di fare. Solo successivamente prenderemo in esame alcuni esempi pratici con i quali poter risolvere problematiche concrete. In quell’occasione parleremo anche dei prodotti più interessanti per lo sviluppo e per l’utilizzo di pagine JSP, ovvero quelli della famiglia WebSphere di IBM [WebSphere]. Pagine web a contenuto dinamicoLa creazione di pagine web a contenuto dinamico è uno dei settori in cui ultimamente si sta concentrando la maggior parte dell’attenzione, sia da parte delle case produttrici di software, che della comunità di programmatori.Questo obiettivo può essere raggiunto per mezzo di molte soluzioni tecnologiche, anche se il meccanismo si basa sempre sull’estensione delle potenzialità del web server. Gli script CGI, le pagine ASP, i moduli di Apache, sono solo alcune delle possibilità fra cui si può scegliere: nel caso di Java, l’estensione del web server può essere fatta, come ormai è noto, per mezzo dei servlet, e di recente con JSP. Per chi avesse ancora qualche dubbio sul funzionamento dei servlet, ecco un mini sunto su cosa sia un servlet e come funzioni.
Creazione dinamica di pagine HTML, significa generalmente che tutto il lavoro di produzione viene svolto sul lato server, e quindi non sono richieste particolari funzionalità aggiuntive al browser, il quale deve semplicemente essere in grado di interpretare HTML standard. I servlet offrono una serie di vantaggi rispetto alle soluzioni concorrenti, legati al fatto che si utilizza Java come linguaggio di sviluppo. I servlet pero’ richiedono un po’ di lavoro in più per risolvere aspetti legati al life-cycle, al mantenimento dello stato, e passaggio di parametri fra oggetti differenti. Le Java Server Pages sono state proprio pensate con lo scopo di eliminare queste limitazioni, oltre che ad offrire ulteriori importanti funzionalità. JSP : perché?Prima di addentrarsi nei meandri della programmazione, vediamo di capire perché le JSP siano così importanti, e come possano risultare utili in una situazione reale.Ecco alcuni punti chiave che dovrebbero chiarire le idee:
Cosa è Java Server Pages?Si tratta di una tecnologia che agli occhi del programmatore viene gestita per mezzo di un linguaggio script, e che è in grado di mescolare codice HTML, componenti riusabili (JavaBeans), applicazioni remote (servlet), codice Java, e script Java-like. Si potrebbe dire che le Java Server Pages rappresentano il collante per unire insieme una serie di oggetti differenti fra loro.Per chi conosce il mondo Microsoft, JSP è un qualcosa di molto simile ad ASP, dove i componenti ActiveX sono rimpiazzati dai JavaBeans, e dove l’invocazione ad applicazioni COM si trasforma in esecuzione di servlet; anche la somiglianza fra i nomi non è casuale. La possibilità di utilizzare i componenti come parte integrante del codice HTML, permette in maniera estremamente semplice di aumentare le potenzialità e la flessibilità, senza la necessità di conoscere complessi linguaggi di programmazione come Java. E’ possibile inoltre inserire codice Java all’interno della pagina: questo codice verrà poi gestito dal server che provvederà alla sua compilazione ed esecuzione. Questo fatto permette al programmatore di inserire parti di codice Java in modo molto simile a come farebbe con script JavaScript, VBScript o simili. Come conseguenza si ha un ulteriore impulso alle performance ed alla portabilità dato che il codice prodotto viene eseguito sul server, e non nel browser. Per eseguire un JSP si deve utilizzare un web server in grado di supportare tale tecnologia, oppure far uso di un cosiddetto application server che estenda le funzionalità del web server. Ad esempio JRun o WebSphere Application Server, sono due prodotti molto diffusi in grado di offrire funzionalità sia per i servlet che per JSP. Questa soluzione è utilizzata sempre più diffusamente, dato che non obbliga a cambiare ogni volta tutto il software lato server, ma solamente quello ciò che è sopra il web server, consentendo in tal modo una maggiore flessibilità e possibilità di stare al passo coi tempi (vedi figura 1).Per semplicità parleremo in seguito di server senza specificare se si tratta in realtà di un web server o di un application server che ne estende le funzionalità.
InvocazioneVediamo adesso quali sono le principali modalità di utilizzo di una Java Server Pages: ci sono due possibilità
In entrambi i
casi, la prima volta che un file JSP viene invocato, viene effettuata una
compilazione del .jsp e di tutti i componenti definiti al suo interno (codice
Java, script e cose del genere), dando luogo a bytecode standard: quello
che prima era script, diventa codice Java compilato ed eseguito all’interno
del server. Conseguenza di questo meccanismo è che la prima volta
che si invoca il file .jsp, il sistema sarà un po’ più lento
del normale, ma, dalla seconda invocazioni in poi, si hanno prestazioni
di tutto rispetto.
Il linguaggio delle JSPL’utilizzo di JSP è molto semplice, dato che si basa fondamentalmente su Java, e HTML: la struttura e la logica infatti si rifanno a quella dell’HTML, mentre la possibilità di inserire codice Java, permette a tutti i programmatori Java un migrazione indolore, senza cioè la necessità di dover imparare un nuovo linguaggio di script. La possibilità di accedere e manipolare componenti (JavaBeans) all’interno della pagina stessa uno dei punti più importanti: questo fatto influenza fortemente la modalità con cui sono definiti ed utilizzati i vari tag, come vedremo di seguito. I tag che si possono utilizzare possono essere suddivisi in due categorie:
Tag orientati al componenteQuesti tag sono molto semplici e non implicano nessun tipo di script o codice Java. Essendo tag elementari, sono molto simili all’HTML, mentre la loro organizzazione gerarchica si riconduce alla struttura oggetto.proprietà. Come nel caso dell’HTML, questi tag non sono case-sensitive, e non è obbligatorio utilizzare i doppi apici per la definizione dei valori, anche se è sicuramente più elegante seguire tale formalismo. Si è detto che uno dei punti più importanti delle JSP, è la possibilità di accedere e manipolare componenti (JavaBeans) all’interno della pagina stessa: questo si traduce poi nella possibilità di accedere ai metodi e proprietà degli stessi, e tipicamente questo meccanismo avviene per mezzo di una scrittura del tipo:nomeBean:nome_proprietàcome ad esempio: myUserBean:addressSi noti che l’accesso ai campi (proprietà) del bean avviene per mezzo del carattere ":" e non ".": questo allo scopo di evidenziare il fatto che non si tratta di codice Java, ma di script JSP. Oltretutto se fosse codice Java, oltre che impossibile, sarebbe formalmente scorretto, accedere alle proprietà del componente direttamente senza l’ausilio di metodi get/set.Vediamo adesso quali sono i tag più importanti per l’utilizzo di un componente all’interno della pagina. Per prima cosa i tag di specificazione del bean:
Si tratta di beans di tipo "request", nel quale troviamo le informazioni relative alla richiesta inviata dal client, e di tipo "exception", che invece contengono tutte le informazioni di una eventuale eccezione. I tag di tipo ScriptL’altra tipologia di tag offerta da JSP, è quella orientata allo scripting, per mezzo della quale è possibile inserire vero e proprio codice script all’interno della pagina.Questi tag si suddividono a loro volta in
Java Server Pages BeansIl cuore di JSP si basa sul poter utilizzare direttamente componenti: vediamo quindi come ciò sia possibile.Per prima cosa riprendiamo in considerazione il tag USEBEAN: la sintassi completa è la seguente<USEBEAN NAME=nome_della_beaninstanceTYPE=nome_del_beanLIFESPAN="page|session|application" ></USEBEAN>
Per visualizzare i valori di un bean si utilizza il tag DISPLAY: ad esempio il pezzo di codice JSP che segue, verrà dinamicamente modificato in funzione del valore della proprietà imageURL, <img src="<DISPLAY PROPERTY=imagesContainer:imageURL>">
<img src="title.gif"> Come si utilizza tutto ciò?Vedremo in dettaglio il mese prossimo questo aspetto: per adesso si sappia che non sono necessarie particolari operazioni di installazione. Se si decide di fare tutto a mano (cioé senza l’ausilio di nessun wizard che assista nelle fasi di developing/deployng), dopo aver scritto tutti i file (.jsp, .html, e servlet e beans) sarà necessario eseguire queste semplici operazioni
ConclusionePrima di congedarmi e rimandare la conclusione con esempi pratici al mese prossimo, vorrei ricordare che JSP è tecnologia relativamente giovane, che proprio per questo ancora non è pienamente supportata e quindi non è facile al momento reperire materiale informativo a tal proposito.Quando mi sono trovato a fare le prime prove, mi sono imbattuto in non poche difficoltà, anche se adesso la situazione è nettamente migliorata. Quello che pero’ ancora manca è un supporto altamente semplificato per lo sviluppo di tali oggetti: JSP infatti renderà la vita molto più semplice al programmatore, solo se questo potrà disporre di adeguati strumenti automatizzati per lo sviluppo, cosa che ad esempio accade in ambito Microsoft con le Active Server Pages. Vedremo quanto le varie aziende vorranno investire in questa direzione.Bibliografia[SPEC092] Java Server Pages Specifications http://java.sun.com/products/jsp/index.html |
|
||
|
||
MokaByte ricerca
nuovi collaboratori
|
||
|