Realizzare un sito web in Jsp passo dopo passo (II-1 Parte)

Pagina 1 di 2

Modelli di architetture Jsp

L'architettura di un sistema è sostanzialmente lastruttura, definita dal progettista, che dovrà averel'applicazione: è quindi un elemento che vincola edefinisce la forma e la sostanza del futuro lavoro disviluppo. Il modo più efficiente per progettareun'architettura applicativa consiste nella scomposizionein componenti separati che possano essere sviluppati,modificati o aggiornati indipendentemente dall'interaapplicazione; questo consente alle applicazioni di esseresviluppate in ambienti di collaborazione in team e porta,inoltre, alla scrittura di un codice più facile dagestire rispetto alle applicazioni basate su un progettocentralizzato. A proposito di quest'ultima affermazione,infatti, occorre precisare che gli scriplet utilizzati perintegrare del codice Java in una pagina JSP, per quantopotenti ed utili, sono intrinsecamente pericolosi: piùse ne inseriscono più sarà difficile avereaccesso alla pagina, e, inoltre, il codice Java amalgamatocon il linguaggio HTML diventerà più difficileda leggere. Un sistema che evita questo inconvenientepoiché consente di mantenere il codice Java distintodalla pagina JSP è rappresentato dai beanJava, classi Java conformi alla specifica JavaBeans chestabilisce direttive mirate a ottenere un codice Java ingrado di essere facilmente riutilizzato in blocchi funzionaliin una varietà di scenari differenti.

Il modello di progetto che abbiamo usato nella realizzazionedel nostro sito fa uso dei  bean Java, ma prima divedere come, è necessaria una breve introduzione suilivelli di organizzazione dei componenti in cui èpossibile suddividere un'applicazione JSP.

La maggior parte delle applicazioni JSP, compresa lanostra,  rientra in due livelli di organizzazione deicomponenti, quello della logica della presentazione e quellodella logica dell'applicazione; nelle prime specificheJSP tale architettura viene chiamata Modello 1.

Esiste però un secondo modello che, oltre ai livellidi organizzazione della logica di presentazione edell'applicazione di cui si è detto, prevede lascomposizione in un ulteriore livello, quello della logica dicontrollo; tale architettura, chiamata Modello 2, èanche conosciuta come progetto orientato alleservlet, a causa del fatto che è quasi sempreimplementato sia con pagine JSP che con servlet Java.

Vediamo ora qual è il ruolo di ciascuno dei livelli dilogica che abbiamo citato:

 

  • Logica della presentazione. Rappresenta la parte di applicazione che riguarda il livello di presentazione e coinvolge l'interfaccia utente e gli elementi basati sul web come HTML o XML. Si occupa della visualizzazione delle informazioni o di come l'applicazione sceglie di visualizzarle, ma non di come tali informazioni vengono recuperate. Quando non esiste il livello della logica di controllo, il livello di presentazione si occupa anche di ricevere le informazioni che deve visualizzare, cioè, nel caso di una pagina JSP, si preoccupa di gestire sia la richiesta http che la risposta.
  • Logica del controllo. Si occupa di "controllare" il flusso dell'applicazione e funge da collegamento tra l'interfaccia utente e l'applicazione stessa. La logica del controllo riceve e interpreta la richiesta http decidendo il passo successivo da far intraprendere all'applicazione in base all'input dell'utente. Una funzione chiave di questo livello è rappresentata dalla gestione delle connessioni a livello dell'applicazione; nel caso dei bean Java questo significa la creazione di un'istanza e la connessione ai bean Java, così come il passaggio dei risultati al livello di presentazione.

 

In molte applicazioni JSP la logica del controllo non esiste:in questo caso le funzioni di elaborazione della richiestahttp sonodirettamente contenute nel livello di presentazione.

 

  • Logica dell'applicazione . Conosciuta anche come logica di business, rappresenta il centro dell'applicazione stessa poichè è responsabile di ciò che di fatto l'applicazione svolge.  Ad esempio, in un sistema di registrazione nel web, la logica dell'applicazione può essere costituita dal recupero del nome proposto dall'utente, dal controllo di questo nome rispetto al database e, infine, dalla restituzione di un risultato.

 

I componenti del livello di applicazione possono risiederecompletamente all'esterno dell'applicazione JSP inquanto non esiste a questo livello una logicadell'interfaccia utente.

A questo punto abbiamo tutti gli elementi per descrivere ilmodello che abbiamo utilizzato per la nostra applicazioneJSP, il Modello 1, considerato l'architettura JSPtradizionale e che prevede soltanto la separazione tra logicadella presentazione e logica dell'applicazione comemostrato in figura 2.

 

Fig. 2 Modelli di architettureJsp

 

In questo modello il browser invia una richiesta alla paginaJSP. La pagina JSP si collega ai bean Java, che effettuano ilcollegamento con le sorgenti dei dati, per elaborare lalogica dell'applicazione. La pagina JSP infine siconnette nuovamente al bean ed invia una risposta al browser.Il tutto è riassunto in maniera chiara e semplice infigura 3.

 

Fig. 3 Modelli di architettureJsp

 

Il Modello 1 viene considerato una soluzione ragionevole perapplicazioni abbastanza semplici: è questo il motivoper cui l'abbiamo scelto nella realizzazione del nostrosito. I problemi sorgono quando la logica contenutaall'interno della pagina JSP si fa più complessa.In questi casi solitamente ci sono molti scriplet o parecchiocodice Java e questo è particolarmente vero perapplicazioni di grandi dimensioni. Per lo sviluppatore Javaquesto potrebbe non essere un problema, ma nella fase digestione della pagina JSP potrebbe presentarsil'inconveniente di avere troppo codice Java su una paginaJSP. In sostanza il problema è che, avendo due ruoli,la logica dell'applicazione e la logica dellapresentazione, non è più sufficiente avere unabuona separazione del codice, ma, quanto più la logicaincorpora l'elaborazione della richiesta http, tanto piùesiste la necessità di una logica del controlloseparata che si occupi di guidare il flusso dei dati e lalogica all'interno dell'applicazione.

Questa idea ha portato alla creazione del Modello 2  perJSP che, pur non essendo quello di cui abbiamo fatto uso nelnostro lavoro, riportiamo comunque per completezzadell'argomento e per l'importanza che essoriveste.   

Il modello 2 (o anche Modello MVC, Model View Control),prevede l'inserimento del livello della logica delcontrollo al fianco di quella di presentazione, come mostratoin figura 4.

 

Fig. 4 Modelli di architettureJsp

 

Il Modello 2 aggiunge una servlet Java all'architetturaper completare il ruolo di elaborazione della richiesta http e di controllodei dati e del flusso logico. Questo modello decide qualepagina JSP inoltrare in base alla richiesta ed èinoltre responsabile della creazione di un'istanza o delcollegamento a qualsiasi bean Java per la logicadell'applicazione (vedi figura 5).

Questo modello si avvantaggia delle potenzialità delleservlet e delle pagine JSP: le servlet sono particolarmenteadatte nelle operazioni intensive sul processo, le pagine JSPinvece sono eccellenti per quanto riguarda la presentazionedei dati.

 

Fig. 5 Modelli di architettureJsp

Quello che, in conclusione, bisogna tenere presente quando sifa uso della tecnologia JSP per una applicazione, èche sia il Modello 1 che il Modello 2 rappresentano strategiedisponibili. Semplicemente, con un'analisi accurata delladimensione e dell'ambito di un'applicazione,dell'ambiente e dell'insieme delle capacitàdel team di sviluppo, è possibile scegliere il modellopiù adatto nel proprio caso particolare.

Continua>>>