Skip to content

1. Introduzione

Il codice PDF di questo documento è disponibile |QUI|.

Gli esempi di questo documento sono disponibili |QUI|.

In questa sede ci proponiamo di scoprire le basi della programmazione web MVC in Java con i servlet e le pagine JSP. Dopo aver letto questo documento e averne testato gli esempi, il lettore dovrebbe aver acquisito i concetti di base della programmazione web in Java.

Per comprendere appieno gli esercizi proposti, può essere utile consultare il documento [Introduzione alla programmazione web in Java con Servlet e pagine JSP (2002)]. I consigli di lettura riportati all’inizio di alcune sezioni fanno riferimento a questo articolo. Di seguito, tale documento verrà indicato con il codice [ref1].

Questo documento può essere utilizzato in vari modi:

  1. si installano gli strumenti, si scaricano i codici dal sito indicato in questo documento e si eseguono i test proposti. Un principiante non trarrà alcun beneficio da un metodo del genere. Uno sviluppatore esperto, invece, può procedere in questo modo, se è interessato esclusivamente a testare l’ambiente di sviluppo Eclipse / WTP.
  2. si installano gli strumenti, si segue il documento e si eseguono i test proposti copiando e incollando da questo documento. Non si legge il documento [ref1]. Procedendo in questo modo, si inizieranno ad acquisire le basi dello sviluppo web, ma alcuni punti rimarranno oscuri o misteriosi. È un metodo possibile se si vuole procedere rapidamente con l’intenzione di approfondire solo in un secondo momento, durante la scrittura di un’applicazione personale e magari con un documento di riferimento diverso da [ref1].
  3. Si procede come nel punto 2, ma si consulta il documento [ref1] quando consigliato. Questo metodo, più lento, eliminerà alcuni dei punti oscuri e misteriosi del metodo 2, ma non prepara adeguatamente a un percorso autonomo perché i codici ottenuti tramite copia/incolla non saranno necessariamente ben compresi.
  4. Si procede come nel punto 3, ma si digitano manualmente tutti i codici. È ovviamente più lungo e più noioso, ma molto efficace. Per digitare i codici, è necessario leggerli, il che richiede attenzione al codice e, di conseguenza, favorisce l’inizio della comprensione. Questa trascrizione manuale raramente avverrà senza errori di trascrizione. Questi errori, che saranno segnalati dai vari strumenti di Eclipse, porteranno il lettore a interrogarsi sul codice che ha scritto e quindi a comprenderlo meglio.

Questo documento riprende gran parte di un articolo pubblicato nel gennaio 2005 intitolato “Sviluppo web in Java con Eclipse e Tomcat” e disponibile all’URL [http://tahe.developpez.com/java/eclipse/]. I contributi rispetto a quel documento sono i seguenti:

  • l’utilizzo del plugin WTP di Eclipse per lo sviluppo di applicazioni web,
  • una riorganizzazione del documento per mettere in risalto l’architettura a tre livelli MVC, che nel documento iniziale era stata appena accennata,
  • un esempio di applicazione web a 3 livelli che utilizza i dati di un SGBD.

Un’applicazione web a 3 livelli presenta la seguente struttura:

  • il livello [dao] si occupa dell’accesso ai dati, il più delle volte dati persistenti all’interno di un SGBD. Ma possono essere anche dati provenienti da sensori, dalla rete, ...
  • il livello [metier] implementa gli algoritmi "di business" dell'applicazione. Questo livello è indipendente da qualsiasi forma di interfaccia con l'utente. Deve quindi essere utilizzabile sia con un'interfaccia da console, sia con un'interfaccia web, sia con un'interfaccia client ricca. Deve quindi poter essere testato al di fuori dell'interfaccia web e, in particolare, con un'interfaccia da console. È generalmente il livello più stabile dell'architettura. Non cambia se si modifica l'interfaccia utente o il modo di accedere ai dati necessari al funzionamento dell'applicazione.
  • il livello [web], che costituisce l’interfaccia web che consente all’utente di gestire l’applicazione e di ricevere informazioni da essa.

L'articolo [http://tahe.developpez.com/java/eclipse/] fornisce solo esempi di applicazioni web limitate al solo livello [web]. Qui viene fornito un esempio che utilizza tutti e tre i livelli.