• Non ci sono risultati.

Analizziamoquindiimotivi he hannospintoall'utilizzodelleJSPperla realizzazionedi un interfa ia web perCONStanza

N/A
N/A
Protected

Academic year: 2021

Condividi "Analizziamoquindiimotivi he hannospintoall'utilizzodelleJSPperla realizzazionedi un interfa ia web perCONStanza"

Copied!
10
0
0

Testo completo

(1)

Java Server Pages

Le Java Server Pages (JSP) furono presentate per la prima volta in o a-

sione diJava One del1998, una manifestazioneorganizzata dalla Sun a San

Fran is o per la presentazione delle innovazioni legate a Java. Inizialmente

passate quasi inosservate, oggi sono onsiderate da molti addetti ai lavori

ome una te nologia ompetitiva he parte iperà in maniera fondamentale

all'evoluzionedel Web.

Per un'appli azione web il livello presentazione è molto importante, in-

fattiè quello he onsenteall'utentedi fruireinmanierasempli e dell'appli-

azionestessa. Un'interfa iautente orrettamente ostruitasiadalpuntodi

vistafunzionale he logi opuòde retare ilsu esso diun'appli azione. Nelle

appli azioneweb l'interfa ia utente è ostituita daun browser.

Analizziamoquindiimotivi he hannospintoall'utilizzodelleJSPperla

realizzazionedi un interfa ia web perCONStanza.

5.1 Vantaggi delle JSP

JSPèunate nologiaperlarealizzazionedipagineHTMLdinami hedallato

server. Èuna evoluzionedelleservlet, unis equindi atuttele aratteristi he

di una normale servlet la possibilità di reare un'interfa ia web dinami a,

utilizzando le stesse te ni he usate nella s rittura di pagine web stati he.

Infattile pagine JSPsi presentano ome una ombinazione ditesto e tag.

LeJSP,basandosisuJava,assumonogliaspettipositividiquestolinguag-

gio, in parti olare la quasi totale portabilità del odi e. Questo porta un

notevole vantaggio perlo sviluppo di appli ativi lato server, infatti essendo

svin olati dal tipo di sistema operativo, non ne essitano di al una modi-

a, nemmeno nel passaggio tra server gestiti in maniera dierente (es. da

Windows a Unix).

(2)

La portabilità porta vantaggi an he dal lato liente, il linguaggio Java

vieneinterpretatodalserver, quindi nemmenoil lienteèvin olatoaltipodi

sistemaoperativoutilizzato,dato he èsu ienteavere un browser ingrado

diinterpretare il odi e HTML.

Un altro importante pregio è la possibilità di riuso del odi e, infatti

si possono in ludere nelle pagine delle omponenti di odi e (JavaBeans).

Si rende quindi più sempli e la realizzazione di appli azioni an he omples-

se, senza approfondite onos enze di Java, inoltre si rende più sempli e la

modi a ela manutenzione delle pagine stesse.

Oltre he attraverso i JavaBeans, le JSP permettono di utilizzare Ja-

va ome linguaggiodi s ript, inserendolo direttamente all'interno del odi e

HTML.

5.2 Funzionamento delle JSP

Una JSP è una omponente server-side, ioè he va in ese uzione sul la-

to server, è infatti ne essario un Web Container in grado di eseguirla, (ad

es. Tom at). La prima volta he un le JSP viene invo ato, sul lato ser-

ver, lapagina JSPviene tradottain una lasse Java,quindi viene ompilata

ottenendodel byte ode standard, ari atainmemoriaed inizializzata,ana-

logamente a quanto avviene per una omune servlet. Come onseguenza di

questo me anismo la prima volta he viene invo ato un le.jsp, il sistema

saràleggermentepiù lento,adogni modo, dopolaprima ri hiesta,laservlet

generata dalla traduzione e dalla ompilazione resta in memoria nello stato

diservizio perri evere egestire le ri hiestedel liente, riportandole presta-

zioni a livelli normali. La onversione e su essiva ompilazione avviene in

seguito,solamentenei asi in uiilsorgentedella paginahasubitomodi he

rispetto all'ultima onversione eettuatadal web ontainer.

5.3 Struttura

Una pagina JSP a prima vista non appare molto diversa da una normale

paginaHTML.Il sorgenteinfatti ontieneoltreaitag HTMLunaseriedidi-

rettive,di hiarazionie tag parti olari. I prin ipalielementi he ompongono

una paginaJSP sono:

Direttive

Informazionistati he

Elementidi s ripting

(3)

Figura5.1: Elementidi una paginaJSP

Azioni

5.3.1 Direttive

Servono a omuni are al ontainer JSP le informazioniglobali sulla pagina

e al une istruzioni he verrannoutilizzate infase di traduzione della pagina

JSPin lasse Java. Le direttive sono ra hiuse trai delimitatori:

``<%'' e ``%>''

Si hannotre direttive:

page

supporta dierenti tipi di attributi, ad esempio è possibile spe i are

il linguaggiodi s riptingutilizzato

<%page language="java" %>

taglib

Questa direttiva viene utilizzata per in ludere all'interno della pagina

(4)

della JSP. Si ompone di due attributi,uno per indi are il presso da

utilizzare per a edere ai tag ed un se ondo attributo he indi a la

lo alizzazionedel tag utilizzato.

Sipossonoutilizzaredellelibrerieditagstandardgiàpredenite,leJSP

StandardTag Library(JSTL) he fornis onolepiù omunifunzionalità

ome il ontrollo di usso ondizionale, le iterazioni, tag per ottenere

l'outputdeidati ed altro an ora.

Nell'esempio èmostratol'utilizzo deltag if della JSTL ore

<% taglib prefix=" "

uri="http://java.sun. o m/jsp/jstl/ ore" %>

.

< : if test="${statGet.debug==0} ">

<td>Off</td>

</ :if>

Oppure l'utente può denire delle proprielibrerie di tag e ri hiamarle

all'internodella paginaJSP, indi ando il dire toryin uisi trovano ed

ilpresso on uiutilizzarle

<% taglib prefix="vali"

tagdir="/WEBI N F/tags/validation" %>

in lude

Permettedi in ludere un le all'internodella paginaJSP

<% in lude file="prova.txt" %>

5.3.2 Informazioni stati he

Sonoil testo stati o,questo non viene elaboratodal JSP ontainer,si tratta

di odi e HTML stati o, infatti una pagina JSP è valida an he se ontiene

solo tag HTML e nessun altro elemento, naturalmente il risultato sarà la

sempli evisualizzazione diuna pagina stati a.

5.3.3 Elementi di s ripting

Sono porzioni di odi e, tipi amente Java, he vengono in luse all'interno

della paginaJSP. Ci sono tre dierenti tipidi elementidi s ripting:

Di hiarazioni. Sono utilizzate per denire variabili e metodi appar-

(5)

<%! int ontatore=0; %>

Espressioni. Sono ra hiuse tra i simboli <%= e %>. Vengono utilizzate per inviare in output il valore di una variabile o il risultato

di un'operazione o di un metodo. Infatti l'espressione Java ra hiusa

traidue simboli,vienevalutatadalmotoreJSP,ilrisultatoprodottoè

onvertito in stringa e la stringa inserita nel odi e HTML, nelpunto

stesso in ui omparival'espressione.

Ad esempio l'espressione he segue permette di ottenere in output il

risultatodel metodogetValore:

<%=mioOggetto.getValore() %>

Con l'espressione seguente si ottiene in output il valore della variabile

i:

<%=i %>

Inne quest'ultima espressione permette di visualizzare il risultato di

un'operazione di moltipli azione:

<%=ii %>

S riptlet. Possono ontenereporzioniarbitrariedi odi eJava,delimi-

tate dai simboli<% %>. Nell'esempio presentato si usano les riptlet

perinserirel'istruzione ondizionaleif, insiemeall'utilizzodelle espres-

sioni si ottiene una pagina web dinami a he al ola il quadrato dei

primi 10numeri e mostrail risultato.

<html>

<head>

<title>

quadrati dei primi 10 numeri>

</title>

</head>

<body>

<% page language="java" %>

<% for (int i=0; i<11; i++) { %>

<%=i %> Al quadrato fa <%=ii %>

<% } %>

</body>

</html>

(6)

5.3.4 Azioni

Sono le omponenti di una pagina JSP direttamente oinvolte nell'elabora-

zione della ri hiesta, permettono infattidi a edere ai dati e dimanipolarli,

per generare i ontenuti dinami i. Possono essere di tipo standard, ovvero

giàdenitedallate nologiaJSP,oppure ustom,quandoèl'utenteadenirle

mediante le API fornite da JSP, generalmente sono raggruppate in librerie

ditag (importate attraverso la direttivataglib).

Tra le azioni standard una delle più importanti è la useBean. Questa

azionepermetteallapaginaJSPdiin ludereemanipolareoggettiJavaBean,

settando e re uperando leloroproprietà.

<html>

<head>

<jsp:useBean id="statGet" s ope="request"

lass="Lr s.Lr sGetStat" />

</head>

<body>

<jsp :setProperty n a m e="statGet" property="lr sad" />

<jsp :setProperty n a m e="statGet" property="debug"

value="1" />

.

.

iltag <jsp:useBean>èutilizzatoper reareun'istanzadiunJavaBean,

oppure per re uperarne una già esistente. L'attributo id è l'identi ativo

univo o hevieneassegnatoall'istanzadelJavaBean, lassidenti ala lasse

Java ( odi e ompilato) di appartenenza del Bean, deve oin idere on il

nome del le. lass senza estensione.

Attraverso s ope è possibile impostare la visibilità del JavaBean, sono

possibili iseguenti valori:

page: il JavaBeanè a essibile soltanto all'internodella pagina.

request: ilJavaBeanè a essibile n hè la ri hiestanon viene omple- tamenteelaborata e larisposta inviata al lient.

session: il JavaBeanèa essibile pertutta la duratadella sessione.

appli ation: il JavaBean èa essibile no a quando l'appli azioneweb non viene interrotta, in prati ano alloshutdown delserver.

Attraverso il tag <jsp:setProperty> si possono settare le proprietà

(7)

JavaBeandasettare. Se non vengonoindi ativalori,levariabili sonosettate

on i rispettivi valori passati attraverso la ri hiesta http, altrimenti si può

spe i are un valore attraverso l'attributo value

5.4 Utilizzo dei JavaBeans

I JavaBeans [19℄, sono lassi Java parti olari, vennero inizialmente pensati

per il rapido sviluppo di interfa e gra he. Oltre alla loro iniziale funzio-

nalità vengono appli ati in altri ambiti, tra ui la reazione di appli azioni

web. Comeabbiamovistoinpre edenzapossonoesserein lusiinunapagina

JSP, permettono quindi un in apsulamentodel odi e oltre aduna notevole

apa itàdi riuso.

Un JavaBean si distingue da una normale lasse Java per le seguenti

aratteristi he:

Deveessere presenteun ostruttoredi default vuoto.

Nondovrebbe avere variabilidi stato pubbli he.

Pera edere eimpostarelevariabilisiutilizzanodeimetodipubbli iil

uinome deve essere ostituito dal presso get o set seguito dal nome

della proprietà.

pa kage Gr s.GetQuorum;

publi lass R sGetQuorum

{

private String address;

private int quorum;

publi R sGetQuorum()

{

}

//method to set address

publi void setAddress(String ad)

{

this.address = ad;

}

(8)

publi String getAddress()

{

return this .address;

}

//method to get quorum

publi int getQuorum()

{

return this .quorum;

}

.

.

5.4.1 Expression Language

Unabuonaregolanell'utilizzareleJSPèquellodimantenereseparatiillivello

logi odaquellogra o. Inquestomodosifa ilitanoeventuali aggiustamenti

futuri magari ad opera di sviluppatori dierenti. Inoltre separare l'aspetto

gra o daquello logi o permettedi poter sviluppare i due aspetti an he da

personeoteamdilavorodierentierendepiùsempli ieventuali ambiamenti

omiglioramenti.

Per avere quindi un odi e fa ile da mantenere, si er a di utilizzare le

JSPperlapresentazionedinami adeidati,mentreperl'elaborazionesi er a

di usare i JavaBeans, eliminando gli elementi di s ripting, ovvero il odi e

Java all'internodellapaginaJSP. Inquesto modoil odi e Java sitrovasolo

neiJavaBeans utilizzati.

Per Invo are i metodi deiJavaBeans senza ri orrere a elementi di s rip-

tingJavasipossonoutilizzarel'Expression Language(EL).Questoèstato

introdottinelleJSPdallaversione2.0epermettedisvolgeredierentifunzio-

ni,senzari orrere a odi eJavain orporatonella paginaJSP.Leespressioni

EL sono ra hiuse tra isimboli:

${...}

Pera edere alleproprietà diun JavaBean hesono a essibiliinlettura,

ovvero quelle proprietà per ui è presente il metodo getNomedellaProprie-

tà(), basta utilizzarel'identi ativodelJavaBeanseguito da. o[ ℄ ed il

nome dellaproprietà.

<html>

(9)

<jsp:useBean id="quorumGet" s ope="request"

lass="Gr s.GetQuorum.R sGetQuorum" />

</head>

<body>

<jsp:setProperty n a m e="quorumGet"

property="address" />

<table border=1>

<tr>

<th olspan=2 align= enter>

Get Quorum

</th>

</tr>

<tr>

<td>GRCS Server:</td>

<td>${quorumGet.address} </td>

</tr>

.

.

Nell'esempioattraversol'espressioneEL${quorumGet.address} sia -

ede allapropietàaddress delJavaBeanquorumGet.

(10)

Riferimenti

Documenti correlati

Gli aspetti più importanti della progettazione di una pagina che si possono trattare con l'uso di tabelle sono:.. z la divisione della pagina in

Infatti, a questo punto, si può scegliere l'ultima opzione per la configurazione automatica, quella centrale per quella manuale (in tal caso bisogna selezionare View per una

Se viene usato un tool di monitoring del server in grado di registrare alcuni dati statistici a livello di sistema, come l'utilizzo della CPU, l'I/O su disco e la cache di

õôõôõôõôõô õôõô õô õô

17 563 ./0123453.67893:2;??89@A=B3C83:DEFG.3/=@3F=@2113L/CA2=C;3MN3O3PQR STTUTTVUWXYZ[Y\UT]ZWTUY^YWZ_Y`ab cZV]dUXUY\UT]ZWTUY e fg\XhgdY\UT]ZWTUY ijY`ikb lXgmdUYnhTUgTUY

I due satelliti sono posti rispetto alla Terra in modo tale he il segnale radio. attraversi sia gli strati dell' atmosfera ionizzata (ionosfera) he

[r]

&lt;oggetto&gt;IMPEGNO DI SPESA PER ATTIVITA' CORRELATE ALLO SVOLGIMENTO DELLE ELEZIONI AMMINISTRATIVE 05/06/2016&lt;/oggetto&gt;. &lt;sceltaContraente&gt;23-AFFIDAMENTO IN ECONOMIA