Realizzare un sito web in Jsp passo dopo passo (I-2 Parte)

Pagina 2 di 3

A questo tipo di interattività lato client èstata però preferita un'elaborazione che sposta lalogica dell'applicazione sul server: in questo modoè possibile ridurre i requisiti che il browserutilizzato dall'utente deve soddisfare, in quanto,piuttosto che imporre il supporto di applet Java o di altretecnologie client-side, al browser viene richiestoesclusivamente di svolgere la propria funzione divisualizzazione di pagine web, mentre l'invio diinformazioni al server avviene tramite i comuni"form" html. Da questo punto di vista, tra letecnologie che supportano siti web dinamici, troviamo quelleche consentono l'implementazione delle pagine dinamiche:all'interno della pagina htmL vengono inseritiparticolari tag, elaborati sul lato server, che permettono dieseguire del codice sviluppato dal programmatore.

In quest'ambito è molto affermata la tecnologiaPHP: essa si basa su un linguaggio di scripting simile alPerl, è dotata di un'ampia libreria di base con lepiù disparate funzionalità ed è inoltredisponibile per diverse piattaforme. Sul versante Microsoft,invece, l'offerta per la creazione di contenuto dinamicoper il web sono le pagine ASP, documenti HTML in cui èpossibile inserire codice VBA (Visual Basic forApplications), e compatibili solo con il server web diMicrosoft.

All'interno di questo panorama, spiccano le tecnologiedel linguaggio Java per lo sviluppo di siti web dinamici: leServlet e le Java Server Pages (JSP).

Una servlet è un componente web sviluppato in Java chegenera contenuto dinamico, il cui scopo è di estenderele funzionalità di un server web, mentre le JSP sonola tecnologia, complementare a quella delle servlet comeavremo modo di vedere meglio nel seguito, per la creazione dipagine web dinamiche. Questi standard sono molto diffusi inquanto dispongono di caratteristiche migliorative che lidifferenziano dalle altre tecnologie disponibili, come PHP eASP, e che possiamo riassumere in diversi punti:

 

  • Efficienza. Il modello di esecuzione delle servlet è più efficiente rispetto a quello di una applicazione CGI: nel modello CGI viene creato un nuovo processo per ogni richiesta da esaudire, nel caso delle servlet, invece, ad ogni richiesta corrisponde la creazione di un thread, operazione molto meno onerosa per il server.
  • Portabilità . Un'applicazione web sviluppata in Java è indipendente dal server web e dal sistema operativo: essa è portabile su tutte le piattaforme per cui esista una Virtual Machine e fornisce quindi una maggiore flessibilità.
  • Robustezza. Un aspetto importante delle servlet è la robustezza: il codice Java gira all'interno della Virtual Machine che è un elemento isolante rispetto al sistema operativo. Eventuali errori di programmazione non possono creare malfunzionamenti tali da danneggiare il corretto funzionamento del web server. Inoltre le servlet sono immuni dagli attacchi dei pirati informatici in quanto la Virtual Machine e il Class Loader si occupano di isolare e verificare il codice che viene eseguito.
  • Scalabilità . L'architettura delle servlet consente in modo piuttosto naturale  di introdurre tecniche di bilanciamento del carico (load balancing) suddividendolo tra più server.
  • Potenza. La persistenza di una servlet su più richieste (una servlet rimane in memoria fino a quando non viene terminata) consente di condividere facilmente informazioni tra i thread corrispondenti e di sincronizzare le richieste; questo semplifica notevolmente, ad esempio, la realizzazione di applicazioni di tipo collaborativo.
  • Accesso alle API standard. Basandosi sulla piattaforma Java, le servlet possono accedere ad un ampio ventaglio di API quali JDBC (Java Database Connectivity) per l'accesso ai database relazionali, JAXP (Java API for XML Processing) che permette di trattare con documenti XML, JCA (Java2EE Connection Architecture) che consente l'integrazione di applicazioni esistenti, ecc.
  • Libreria di base. Il codice di implementazione delle servlet può fare affidamento su un ampia gamma di funzioni  presenti nella libreria di base di Java e nelle sue estensioni, che è estremamente completa (supera di diverse lunghezze quelle disponibili in PHP o ASP). Questo aspetto può comportare un netto risparmio del tempo di sviluppo, in quanto molte funzionalità non devono essere implementate ma possono essere semplicemente riutilizzate.
  • Gestione delle sessioni. http è per sua natura un protocollo stateless: per il server ciascuna richiesta è svincolata dalla precedente; con il solo http non si è quindi in grado di determinare se più richieste sono legate ad uno stesso utente. Le servlet, invece, offrono una gestione integrata delle sessioni utente in grado di indicare se una richiesta è stata inoltrata ad un utente già attivo.

 

Tutti questi vantaggi fanno della tecnologia delle servletuno dei maggiori successi del linguaggio Java, testimoniatodall'ampia accettazione riscontrata nelle aziende chehanno adottato questo standard. Le altre alternative (comeCGI, PHP, ASP) non hanno tutti i lati positivi delle servlet:molte ne hanno qualcuno, ma nessuna li ha tutti.

Continua >>>