Sei sulla pagina 1di 25

Creare una web application con Java in 24h Creare una

CREARE UNA WEB APPLICATION CON JAVA IN 24H


web application
Implementazione step by step con Tomcat, MySQL, Eclipse

Il testo, unico nel suo genere, accompagna il lettore nellimplementazione

con Java
di una Web Application in Java attraverso un caso studio completo il cui
sviluppo modulato in 24 ore. Rappresenta quindi il punto di partenza
per studenti, neoti e professionisti che necessitino di una guida unica,
esaustiva, chiara, semplice e, soprattutto, pratica che gestisca il ciclo di
vita di unapplicazione dalla progettazione allimplementazione e alla di-

in
stribuzione, divenendo uno strumento indispensabile per tutti coloro che
vogliano introdursi allo studio delle applicazioni professionali per il web in

24h
Java ed ambiscano ad ottenere rapidi risultati. Il testo introduce il lettore
nello sviluppo step by step di una Web Application, in un crescendo di
informazioni armonizzate e coerenti: dallinstallazione delle componenti
base (MySQL, JDK, Tomcat, Eclipse) alla creazione del DataBase, allana-
lisi e allimplementazione di un progetto con JSP, Servlet e Classi Java,
allimpaginazione graca tramite luso di un template gratuito ed, inne,
alla messa in esercizio sul server Tomcat. Il caso studio completo ed i
relativi approfondimenti sono temporalmente cadenzati al ne di far com-
prendere come una guida concisa ed afdabile permetta di ottenere risul-
tati concreti su una tecnologia allapparenza difcile, riuscendo a colmare Luciano Manelli
la carenza in un settore in cui i riferimenti non mancano, risultando per
spesso dispersivi o settorializzati.
lautore
Luciano Manelli, laureato in Ingegneria Elettronica al Politecnico di Bari.
Ha conseguito il Dottorato di Ricerca in Informatica presso il Dipartimen-
to di Informatica dellUniversit degli Studi di Bari Aldo Moro, lavorando
sul Grid Computing e sui Metodi Formali e redigendo articoli scientici
internazionali. Docente accreditato del CNI - Consiglio Nazionale degli In-
gegneri, docente presso il Politecnico di Bari per il corso di Fondamenti
di Informatica e presso lUniversit degli Studi di Bari Aldo Moro - Diparti-
mento di Informatica per il corso di Programmazione per il Web. Profes-
sionista certicato, consigliere AICA - Sezione Territoriale Puglia, membro
della commissione ICT dellOrdine degli Ingegneri di Taranto, componente
della commissione Industria 4.0 della delegazione Federmanager Puglia e
Implementazione step by step
autore di testi universitari e tecnici, dopo aver lavorato 13 anni per InfoCa-
con Tomcat, MySQL, Eclipse
ISBN 978-88-6310-772-2

9 788863 107722

mere S.C.p.A., dal 2014 impiegato presso lAutorit di Sistema Portuale


del Mar Ionio.

vai alla
www.epc.it
scheda
SEGUICI SU del libro
18,00

Manelli creazione pagina web2.indd Tutte le pagine 12/05/2017 14:45:48


Pagine tratte da www.epc.it - Tutti i diritti riservati

Luciano Manelli

Creare una Web Application


con Java in 24h
Implementazione step by step con Tomcat, MySQL, Eclipse

Manelli creazione WEB.indb 1 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

Ai miei figli Sara e Marco,


a mia moglie Stefania,
ai miei genitori Anna e Piero.

CREARE UNA WEB APPLICATION CON JAVA IN 24H


ISBN: 978-88-6310-772-2

Copyright 2017 EPC S.r.l. Socio Unico

EPC S.r.l. Socio Unico - Via dellAcqua Traversa, 187/189 - 00135 Roma
www.epc.it
Servizio clienti: 06 33245277 - Fax 06 3313212
Redazione: Tel. 06 33245264/205

Propriet letteraria e tutti i diritti riservati alla EPC S.r.l. Socio Unico. La struttura e il contenuto del
presente volume non possono essere riprodotti, neppure parzialmente, salvo espressa autoriz-
zazione della Casa Editrice. Non ne altres consentita la memorizzazione su qualsiasi supporto
(magnetico, magneto-ottico, ottico, fotocopie ecc.).
La Casa Editrice, pur garantendo la massima cura nella preparazione del volume, declina ogni re-
sponsabilit per possibili errori od omissioni, nonch per eventuali danni risultanti dalluso dellin-
formazione ivi contenuta.

Il codice QR che si trova sul retro della copertina, consente attraverso uno smartphone di acce-
dere direttamente alle informazioni e agli eventuali aggiornamenti di questo volume.

Le stesse informazioni sono disponibili alla pagina:


https://www.epc.it/Prodotto/Editoria/Libri/Creazione-di-una-web-application-in-24h/3413

Manelli creazione WEB.indb 2 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

SOMMARIO

Prefazione..........................................................................................................7
Introduzione........................................................................................................9

capitolo 1
LO SCENARIO DI RIFERIMENTO.......................................................................... 11
1.1. Programmazione ad Oggetti e linguaggio Java........................................... 11

1.2. Programmazione per il Web................................................................. 12

1.3. Web Application e Application Server..................................................... 13

1.4. DataBase...................................................................................... 15

1.5. Analisi Funzionale del Caso Studio......................................................... 15

capitolo 2
INSTALLARE E CONFIGURARE LE COMPONENTI .................................................. 17
2.1. Scaricare e installare MySQL 5.7 Community............................................. 17

2.2. Connettore MySQL per Java................................................................ 25

2.3. Scaricare ed installare la JDK 8............................................................ 27

2.4. Scaricare e configurare Tomcat 9........................................................... 30

2.5. Scaricare e configurare Eclipse NEON..................................................... 31

2.6. Configurare la JDK........................................................................... 33

2.7. Configurare Tomcat........................................................................... 34

2.8. Compatibilit con altre versioni............................................................ 36

2.9. Licenze Software............................................................................. 36

Manelli creazione WEB.indb 3 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

CREARE UNA WEB APPLICATION CON JAVA IN 24H

capitolo 3
LAVORARE CON ECLIPSE................................................................................... 37
3.1. Creare un progetto web con Eclipse....................................................... 38
3.1.1. Configurare il progetto sotto Tomcat..................................................... 42
3.2. Creare la prima JSP con Eclipse: hello.jsp................................................ 44
3.3. Creare la prima Servlet 3.X con Eclipse: FirstServlet.java............................... 48
3.4. Creare una Classe con Eclipse: FirstClass.java........................................... 52
3.5. Gestire i moduli per linserimento dati..................................................... 54
3.5.1. HTML e CSS................................................................................ 54
3.5.2. Creare un Form JSP: formExample.jsp ................................................... 59
3.5.3. Collegare la JSP alla Servlet.............................................................. 60

capitolo 4
CASO STUDIO: WEB APPLICATION IN JAVA........................................................ 65
4.1. Il DataBase.................................................................................... 65
4.1.1. Progettazione Concettuale, Logica e Fisica del DataBase
della Web Application..................................................................... 65
4.1.2. Implementazione del DataBase per la Web Application
con MySQL................................................................................. 67
4.1.3. Script di creazione di Schema e Tabelle.................................................. 75
4.2. Creare le JSP................................................................................. 76
4.2.1. Modulo formCompany.jsp................................................................. 77
4.2.2. Modulo formEmployee.jsp................................................................ 79
4.3. Creare la Servlet: CompanyManagementServlet.java................................... 81
4.4. Creare i JavaBean............................................................................ 82
4.4.1. Modulo CompanyBean.java............................................................... 82
4.4.2. Modulo EmployeeBean.java.............................................................. 86
4.5. Redirect e Dispatcher........................................................................ 88
4.6. Session e Request............................................................................ 90
4.7. Salvataggio su DataBase...................................................................109

Manelli creazione WEB.indb 4 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

SOMMARIO

4.7.1. Le eccezioni e la gestione degli errori...................................................117


4.8. Elenchi, ricerche e modifiche...............................................................121
4.8.1. Elenco imprese............................................................................121
4.8.2. Ricerca impresa...........................................................................125
4.8.3. Elenco impiegati di unimpresa..........................................................130
4.9. Migliorare lUsabilit.......................................................................135
4.9.1. Inserimento e modifica impresa.........................................................136
4.9.2. Inserimento e modifica impiegato.......................................................141
4.9.3. Cancellazione impiegato.................................................................144
4.10. Storyboard della Web Application........................................................147
4.11. Codice Java completo della Servlet.......................................................150
4.12. Codice Java completo della Classe di Persistenza......................................156

capitolo 5
IL LAYOUT DI PROGETTO.................................................................................. 163
5.1. Trovare e scaricare un layout gratuito....................................................163
5.2. Rispettare la licenza........................................................................165
5.3. Adeguare il layout gratuito al progetto...................................................165
5.4. Integrare le pagine JSP con il template ..................................................172
5.5. Pagine di inserimento.......................................................................174
5.6. Elenchi e Ricerche...........................................................................179

capitolo 6
APPLICAZIONE IN AMBIENTE DI PRODUZIONE E DISTRIBUZIONE....................... 185
6.1. Esportare il WAR file della Web Application.............................................185
6.2. Deployare il WAR file e startare il Server Tomcat.......................................187
6.3. Conclusioni ed evoluzioni...................................................................188

BIBLIOGRAFIA................................................................................................ 191

Manelli creazione WEB.indb 5 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

PREFAZIONE

Il presente testo si prefigge lobiettivo di introdurre il lettore allo studio e allo sviluppo
delle applicazioni professionali per il web in Java e rappresenta il punto di partenza
per studenti, neofiti e professionisti che necessitino di una guida unica, esaustiva,
chiara, semplice e, soprattutto, pratica che gestisca il ciclo di vita di una Web Applica-
tion dalla progettazione allo sviluppo e alla distribuzione, ovvero per tutti coloro che
vogliano ampliare le loro conoscenze in nuovi ambiti di sviluppo applicativo ed ambi-
scano ad ottenere rapidi risultati. Ha quindi lo scopo di accompagnare il lettore nello
sviluppo step by step di una Web Application, in un crescendo di informazioni armo-
nizzate e coerenti: dallinstallazione delle componenti base (MySQL, Eclipse, Tom-
cat, JDK) alla creazione del DataBase, allo sviluppo di un progetto con JSP, Servlet e
Classi Java, allimpaginazione grafica tramite luso di un template gratuito ed, infine,
alla messa in esercizio sul server Tomcat. Il testo consentir al lettore di studiare ed
implementare un caso studio completo con i relativi approfondimenti teorici in 24h
(tre giorni lavorativi), temporalmente cadenzati, al fine di far comprendere come una
guida concisa, affidabile ed unica nel suo genere permetta di ottenere risultati con-
creti su una tecnologia allapparenza difficile, riuscendo a colmare la carenza in un
settore in cui, comunque, i riferimenti non mancano, risultando per spesso disper-
sivi o settorializzati.

Contatti: it.linkedin.com/in/lucianomanelli
e-mail: clienti@epc.it

Ringraziamenti
Ringrazio il Prof. Giuseppe Mastronardi del Politecnico di Bari e Presidente AICA,
quale mio mentore nellesperienza di docente di Fondamenti di Informatica. Rin-
grazio il Prof. Sebastiano Pizzutilo e il Prof. Alessandro Bianchi del dipartimento di
Informatica dellUniversit degli Studi di Bari Aldo Moro, che mi hanno assistito nel
mio percorso di Dottore di Ricerca. Ringrazio i miei colleghi di Infocamere Paolo

Manelli creazione WEB.indb 7 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

CREARE UNA WEB APPLICATION CON JAVA IN 24H

Grigoletto e Fabrizio Notarnicola, riferimenti per lanalisi e lo sviluppo sui sistemi


informativi aziendali. In ultimo, ringrazio tutti i miei amici, docenti e professionisti,
che, direttamente ed indirettamente hanno condiviso e sostenuto il mio lavoro e le
mie passioni editoriali. Un ringraziamento particolare va a mia mamma, revisore dei
miei testi e prima lettrice.

Manelli creazione WEB.indb 8 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

INTRODUZIONE

Le Web Application ricoprono uno degli ambiti pi importanti nella programmazione


per il web, in quanto, oramai, sia le imprese che le pubbliche amministrazioni fon-
dano il loro business, la loro visibilit, il loro consenso e il loro successo su sistemi
informativi condivisi e accedibili dalla rete dal maggior numero di attori coinvolti nei
vari processi organizzativi, in ottica di riduzione dei costi e di condivisione delle infor-
mazioni. Lobiettivo di questo testo , quindi, quello di imparare ad implementare un
progetto web in tecnologia Java. La scelta della tecnologia di riferimento ricaduta
su Java in quanto gratuito, riusabile, standardizzato, sicuro e completo (grazie anche
agli innumerevoli contributi presenti sul web).
Il primo capitolo illustra sinteticamente le basi teoriche delle Web Application in Java,
chiudendo con lanalisi funzionale del caso studio che si implementer.
Il secondo capitolo dedicato allo scarico, allinstallazione e alla configurazione delle
componenti di interesse, ovvero JDK 8, Eclipse NEON, MySQL 5.7 e Tomcat 9. Si
rammenta che tutte le componenti software usate sono gratuite e che le versioni
sono sottoposte a continui aggiornamenti, sempre e comunque compatibili con la
metodologia di studio presentata nel testo.
Il terzo capitolo introduce il lettore allo sviluppo di unapplicazione web con Eclipse e
Java seguendolo nella creazione di JSP, Classi e Servlet 3.x.
Il quarto capitolo si concentra sul caso studio. Creato il DataBase con le relative tabelle,
verranno individuati tutti i passi per implementare la Web Application con Eclipse, ana-
lizzando gli argomenti in maniera chiara e semplice e fornendo i principi e le basi per gli
sviluppi pi complessi. Il caso studio affronter linserimento, la modifica e la cancella-
zione di dati su due tabelle collegate, la visualizzazione degli elenchi e la ricerca.
Il quinto capitolo dedicato al layout dellapplicazione. Verr selezionato un template
grafico gratuito e verr illustrato come modificarlo per adeguarlo alle JSP sviluppate.
Il sesto capitolo chiude il testo con la messa in esercizio e relativa distribuzione della
Web Application su server Tomcat.

Manelli creazione WEB.indb 9 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

CREARE UNA WEB APPLICATION CON JAVA IN 24H

Il tempo verr cadenzato su tre giorni lavorativi e lo sviluppo sar supportato da


screenshot con spiegazioni puntuali che semplificheranno e velocizzeranno lappren-
dimento e, in ultimo, sar fornito tutto il codice dellapplicativo sviluppato. Al termine
del testo il lettore avr appreso tutte le nozioni fondamentali per sviluppare unappli-
cazione web in Java con salvataggio su DataBase ed incorniciata in un layout grafico
avvincente.

10

Manelli creazione WEB.indb 10 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

capitolo 1
LO SCENARIO DI RIFERIMENTO

Giorno 1 Ore 9:00


Lo sviluppo delle applicazioni per il Web, incrementatosi esponenzialmente negli
ultimi anni, nasce da unesigenza organizzativa di informatizzare procedure, salvare
dati e condividere, in internet o nella intranet aziendale, informazioni accedibili da
diversi dispositivi connessi in rete. Lo strato sottostante solitamente costituito
da un Server per lelaborazione e da un DataBase per il salvataggio dei dati. Con-
seguentemente, prima di entrare nel dettaglio del testo, risulta utile fornire alcune
basi teoriche e funzionali atte alla migliore comprensione delle scelte effettuate nel
seguito del testo. Infatti, lobiettivo implementare un applicazione passo-passo
senza sovrastrutture, in maniera chiara, intuitiva e comprensibile da tutti coloro che
si avvicinano, anche per la prima volta, al mondo della programmazione per il web. Il
seguente capitolo introduce le principali tecnologie terminando con lanalisi funzio-
nale del caso studio che si andr ad implementare.

1.1. Programmazione ad Oggetti e linguaggio Java


Laprogrammazione orientata agli oggetti introduce il concetto di oggetto software e
definisce le modalit di interazione tra i diversi oggetti software, attraverso lo scambio
di messaggi. Attualmente risulta come uno dei paradigmi pi utilizzati e studiati, tanto
che gran parte dei linguaggi di programmazione, anche se non risulta orientata agli
oggetti, ne eredita alcune caratteristiche o presenta una estensione in tale direzione.
Un oggetto un software dotato di attributi (le propriet astraendo i dati) e metodi
(le azioni che pu compiere e/o subire), unico e separato da altri oggetti con i quali pu
comunicare tramite luso di messaggi. Il programma viene realizzato progettando e
scrivendo il codice sotto forma di classi che durante lesecuzione vengono invocate
per creare loggetto relativo che si andr ad usare. La Classe rappresenta, di conse-
guenza, unacategoria di oggetti (con metodi ed attributi)ed un particolare oggetto, che
appartiene ad una Classe, costituisce unistanza della Classestessa. Le tre propriet
basilari di un linguaggio ad oggetti sono: incapsulamento (che permette di impacchet-
tare i dati proteggendoli da interferenze esterne e si basa sul principio di information

11

Manelli creazione WEB.indb 11 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

CREARE UNA WEB APPLICATION CON JAVA IN 24H

hiding), ereditariet (che consente di creare nuovi oggetti che siano basati su altri gi
definiti, derivando una Classe da una preesistente) e polimorfismo (che rappresenta
lattitudine di un oggetto a presentare diversi comportamenti per una singola funzio-
nalit in base al modo in cui viene chiamato). Lastrazione viene usata per decompor-
re sistemi software complessi in componenti pi semplici dove la Classe astratta
rappresenta un modello per ottenere classi derivate pi specifiche, caratterizzato da
metodi implementati e da altri che presentano solo la definizione (implementati nelle
classi dipendenti). La visibilit rappresenta la possibilit (o meno) di richiamare una
variabile da un punto del programma. Si possono individuare le tre principali tipologie
di visibilit per propriet e metodi: public (accedibile, utilizzabile e richiamabile dallin-
terno della Classe stessa e dallesterno ove presente una sua istanza), protected (acce-
dibile, utilizzabile e richiamabile dallinterno della Classe stessa e dallesterno solo dalle
classi del package di appartenenza o dalle classi che la estendono), private (accedibile,
utilizzabile e richiamabile solo dallinterno della Classe dichiarante). In conclusione, la
programmazione ad oggetti facilita la gestione e la manutenzione, supporta gli svilup-
pi incrementali e la costruzione cooperativa del software, permette la modularit e
conseguentemente limplementazione e lorganizzazione anche di progetti di grandi
dimensioni e consente, in ultimo, il facile riuso del codice.
Nato negli anni novanta nei laboratori della Sun Microsystem, Java rappresenta il lin-
guaggio di punta per lo sviluppo di applicativi per il web essendo strutturalmente solido
e sicuro, oltre ad essere il riferimento principale per una programmazione efficace ed
efficiente orientata agli oggetti. infatti gradito sia agli sviluppatori che agli utenti finali,
grazie alla sua propriet di essere indipendente dalla piattaforma e, quindi, di poter
essere eseguito su un qualunque supporto (un personal computer, uno smartphone,
o un robot) che presenti un interprete virtuale (Java Virtual Machine). Il linguaggio Java
sintatticamente simile al C (da cui deriva) ed basato su un sistema di gestione
della memoria assegnata e rilasciata automaticamente ed in maniera indipendente dal
controllo del programmatore (garbage collection). Per lavorare con Java necessario
installare la JDK (Java Development Kit) che contiene gli strumenti di compilazione e
debugging. I sorgenti presentano lestensione .java. Negli anni sono state distribuite
diverse ed aggiornate versioni di JDK, e sono stati creati molti IDE (Integrated Deve-
lopment Environment) gratuiti, quali Eclipse, per facilitare e migliorare il compito degli
sviluppatori. Contestualmente si sono evoluti gli Application Server (quali JBoss e Tom-
cat) dove far girare gli applicativi Java in un contesto distribuito e i DataBase (quali
MySQL) con i relativi connettori per lo sviluppo in diversi linguaggi.

1.2. Programmazione per il Web


La programmazione per il Web richiede strumenti differenti rispetto alla program-
mazione standard. possibile, infatti, considerare il Web una collezione di risorse
fisicamente sparse nel mondo e accedibili attraverso un particolare sistema di indi-
rizzamento (principalmente URL - Uniform Resource Locator) e mediante opportuni

12

Manelli creazione WEB.indb 12 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

Lo scenario di riferimento

protocolli (principalmente HTTP - HyperText Transfer Protocol). Linterazione tra i vari


componenti si basa sullarchitettura Client-Server dove il Server fornisce un servi-
zio (eseguendo le elaborazioni, reindirizzando le richieste dellutente e generando
le risposte) e il Client richiede un servizio (individuando linterfaccia dellapplicazio-
ne con lutente finale). Un browser pu ricevere da un Server qualunque tipo di
documento la cui forma individuata dalla specifica MIME (Multipurpose Internet
Mail Extensions) che permette di comprendere come trattare un documento (testo,
immagine o video). Il Web Server (ad esempio Apache) o lo Application Server
(ad esempio IIS, JBoss, Tomcat) uno strato software che risponde alle richieste di
un Client fornendo le risorse e comunicando mediante il protocollo HTTP. La proget-
tazione di un applicativo per il Web si basa sul modello MVC (Model-View-Controller)
in cui presente la separazione concettuale in tre componenti, ovvero il Model (lega-
to alla logica applicativa di persistenza e manipolazione dei dati), il View (legato alla
presentazione, ossia alla modalit con cui interfacciare i dati con lutente finale),
infine il Controller per la elaborazione delle richieste e lega il Model con il View. Que-
sto livello di separazione fondamentale per motivi di stabilit e coerenza dellap-
plicazione e comporta una maggiore sicurezza in quanto consente la distribuzione
delle componenti su differenti Server, con differenti policy di accesso. Nellambito
che si sta per affrontare lo strato view rappresentato da pagine HTML (Hyper Text
Markup Language) e JSP (Java Server Pages), lo strato controller dalle Java Servlet,
mentre lo strato Model implementato nella logica di business attraverso luso dei
JavaBean: tutti componenti che si andranno a studiare ed usare nel seguito del testo.

1.3. Web Application e Application Server


Una Web Application costituita da un insieme di componenti che sinteticamente si
possono elencare nelle seguenti: pagine HTML e JSP, Java Servlet, JavaBean, Classi
Java e altre componenti che possono essere installate ed eseguite allinterno di un con-
tainer (Application Server) il quale lavora su unassegnata JVM (Java Virtual Machine).
Lo HTML (Hyper Text Markup Language) non un linguaggio di programmazione,
ma un linguaggio di contrassegno che permette di indicare come disporre gli ele-
menti allinterno di una pagina web ed interpretabile da un browser. Le JSP (Java
Server Page) individuano la tecnologia per la creazione di pagine HTML dinamiche
lato Server: rappresentano unestensione delle Servlet e sono caratterizzate da un
misto di codice statico (HTML) e dinamico (Java). Questultimo contenuto nei tag
<%%> e viene precompilato prima di inviare la risposta al Client. Lo Application
Server una piattaforma software su cui deployare unapplicazione web e che met-
te a disposizione funzionalit per eseguire la stessa in un ambiente distribuito. Nel
seguito sar usato Tomcat, capace di gestire le Servlet (dalle 2.5 alle 3.x) e le pagine
JSP (ma anche altri componenti quali EJB - Enterprise Java Bean, o framework quali
Struts, o Web Services quali Axis). Un JavaBean un componente software riusabile
e serializzabile, caratterizzato da propriet il cui stato definito da metodi set (per

13

Manelli creazione WEB.indb 13 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

CREARE UNA WEB APPLICATION CON JAVA IN 24H

valorizzare gli attributi) e get (per ottenere il valore di un attributo).


Le Servlet sono classi Java che vengono eseguite in Servlet Container ed esposte
come risorse web allesterno. Queste speciali classi principalmente elaborano le
richieste generate dai Client (quali il salvataggio su DataBase) agendo in modalit
request/response. La versione attuale della specifica Servlet la 3.X (corrispondente
alla JSR 315). Tale standard rientra allinterno di un insieme pi vasto di specifiche
definito come Java EE. Una Servlet ha molteplici funzionalit e, solitamente, cor-
risponde al Controller del pattern MVC. Essendo scritte in Java possono avvalersi
delle Java API (Application Programming Interface) che consentono di implementare
funzionalit fondamentali quali laccesso ad un DataBase o linterfaccia standard per
gestire la comunicazione col Client. Pu essere usata una sola Servlet che gestisca
differenti comportamenti o possono essere presenti pi Servlet allinterno di unap-
plicazione. Volendo illustrare semplicemente il funzionamento di una Web Applica-
tion: un Client invia una richiesta (request) ad una Servlet (su un Application Ser-
ver), il Server istanzia e carica la Servlet chiamata avviando un thread per gestire la
comunicazione; se la Servlet, invece, gi stata caricata in precedenza (ipotizzando
differenti chiamate al Server) verr creato semplicemente un ulteriore thread asso-
ciato al nuovo Client (senza ricaricare la Servlet). Il Server invia la richiesta del Client
alla Servlet e questultima costruisce la risposta (response) e la inoltra al Server
che, in ultimo, la invia al Client. Si noti che la Servlet non presenta quasi mai codice
algoritmico allinterno, ma questo viene demandato alle classi con cui la stessa si
interfaccia. Request e Response sono gestiti dalle relative interfacce (HttpServletRe-
quest e HttpServletResponse). Linterfaccia javax.Servlet.ServletContext permette
invece di trovare un riferimento al contesto di una Web Application, quindi una serie
di informazioni condivise a livello globale tra i componenti dellapplicazione stessa.
Tra le innovazioni apportate dalle Servlet 3.X si introduce luso delle annotations, utili
per le classi Java ed interpretate correttamente dai recenti Servlet Container. Nel
progetto seguente verr creata una sola Servlet che individuer differenti azioni a
seguito della valutazione di un parametro proveniente dal Client. Le azioni saranno
conseguenze di chiamate al metodo doGet (tramite link diretti, ovvero richieste di
tipo GET) o al metodo doPost (tramite submit di form, quindi richieste di tipo POST).
Una Web Application, in ultimo, sempre mappata attraverso una gerarchia di directo-
ry memorizzabili su file system ed solitamente esportabile come file compresso di
estensione .war. Una volta definita la root (directory principale) di progetto questa, ter-
minato lo sviluppo dellapplicativo, sar deployata sotto la directory webapps di Tom-
cat (ovvero installata nello Application Server). Sotto la root potranno essere presenti
altre directory, tra cui la cartella WEB-INF accessibile, in ottica di sicurezza, solo dallo
Application Server. Il front-end quindi a livello della root, mentre il back-end (che,
ad esempio, contiene la Classe che permette la connessione al DataBase) sotto la
directory WEB-INF. Tra le principali componenti di questultima directory possibile
individuare la cartella classes, che contiene i compilati di classi e Servlet, e la cartella
lib che contiene tutte le librerie usate dallapplicativo che si sta per sviluppare.

14

Manelli creazione WEB.indb 14 11/05/2017 16:47:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

Lo scenario di riferimento

1.4. DataBase
La gestione integrata dei dati e delle informazioni requisito fondamentale nella
realizzazione delle moderne applicazioni. importante accedere costantemente ad
informazioni corrette ed aggiornate, conseguentemente si ha la necessit di lavorare
su un sistema di archiviazione di dati e di informazioni che possa soddisfare le richie-
ste pi stringenti di integrit, di non ridondanza, di sicurezza e di disponibilit dei dati:
questo viene ottenuto attraverso luso dei DataBase e dei sistemi di gestione degli
stessi, ovvero i DBMS (Data Base Management System), che permettono di trattare
grandi quantit di dati con tempestivit, affidabilit e sicurezza. Un DataBase , quin-
di, una raccolta di dati, opportunamente strutturati e collegati tra loro in un insieme
di archivi, a disposizione di utenti e applicazioni. In particolare, i DataBase relazionali
sono particolari strutture di una banca dati in cui i dati sono disposti in maniera bidi-
mensionale in una tabella (similmente ad un foglio di calcolo) dove in ogni riga vi
una struttura dati di tipo record e in ogni colonna sono presenti i campi del record
definiti per quella tabella. La progettazione di un DataBase rappresenta un punto
focale nello sviluppo di una Web Application: individuata da tre fasi (rispettiva-
mente progettazione concettuale, logica e fisica) ed conclusa da una fase finale di
normalizzazione. Inoltre, per poter impartire comandi e istruzioni ad un DataBase si
utilizza il linguaggio SQL (Structured Query Language) il quale opera sui dati tramite
frasi che fanno uso di parole chiave tipiche del linguaggio corrente. Nella seguente
dissertazione verr usato MySQL che un DataBase relazionale (Relational DBMS)
professionale, gratuito, versatile e potente per creare e gestire la base di dati dellap-
plicativo che si vuole implementare.

1.5. Analisi Funzionale del Caso Studio


I requisiti funzionali rappresentano il cosa, ovvero il comportamento dellapplica-
zione, e possono essere individuati schematicamente attraverso un elenco o tramite
lausilio di tabelle. La Web Application che si vuole realizzare deve permettere lin-
serimento, la modifica, la cancellazione, la visualizzazione e la ricerca di una serie di
imprese e dei relativi impiegati. Lesigenza nasce dal fabbisogno interno alla struttura
organizzativa di riferimento di unimpresa di servizi e si rivolge ai suoi funzionari qua-
le applicativo esposto nella intranet aziendale. Di seguito, vengono indicati tabellar-
mente i requisiti funzionali che verranno soddisfatti dalla Web Application. Una volta
soddisfatti, a fine testo, verr anche approfondito il layout dellapplicativo.
possibile notare come unorganizzazione schematica dei requisiti consenta una-
deguata gestione degli stessi funzionalmente e in ottica implementativa (ma anche
per effettuare una stima economica del lavoro). Lanalisi dei requisiti porta alla quindi
necessit di implementare un applicativo per poter gestire imprese e dipendenti, il
cui nome : Company Management.

15

Manelli creazione WEB.indb 15 11/05/2017 16:47:37


Tab. 1.1 Requisiti funzionali della Web Application

16
Codice Titolo Codice Titolo
Descrizione Requisito Note e Vincoli
Macro-Requisito Macro-Requisito Requisito Requisito

Manelli creazione WEB.indb 16


Modulo di inserimento con i seguenti cam-
pi:
Inserimento Telefono non obbligatorio.
Partita IVA / Codice Fiscale (piva/cf);
100 dati Per ogni impresa necessario inserire almeno
Denominazione;
Azienda un impiegato.
Email;
Telefono.
MR01 Inserimento
Modulo di inserimento con i seguenti cam-
pi:
Inserimento
Codice Fiscale (cf);
200 dati
Nome;
Impiegato
Cognome;
Matricola.
CREARE UNA WEB APPLICATION CON JAVA IN 24H

Modulo di modifica con i seguenti campi:


Modifica
Denominazione; Partita IVA invariabile.
100 dati
Email; Modifica attivabile dallelenco delle imprese.
Azienda
Telefono.
MR05 Modifica
Modulo di modifica con i seguenti campi:
Modifica
Nome; Codice Fiscale invariabile.
200 dati
Cognome; Modifica attivabile dallelenco degli impiegati.
Impiegato
Matricola.
Pagine tratte da www.epc.it - Tutti i diritti riservati

Elencare le imprese con tutti i dati presenti.


Elenco imprese con modulo di ricerca sui
Ricerca Possibilit di visionare lelenco degli impiegati
100 seguenti campi:
Azienda di ogni impresa.
Ricerca Denominazione (anche parziale).
MR10 Possibilit di modificare unimpresa dallelenco.
ed Elenchi
Elencare gli impiegati con tutti i dati presenti.
Elenco Elenco impiegati di un impresa, ricavabile
200 Possibilit di cancellare e modificare un impie-
Impiegati dallelenco delle imprese.
gato dallelenco.

11/05/2017 16:47:37
Pagine tratte da www.epc.it - Tutti i diritti riservati

LA TUTELA DEI DATI NEL SETTORE SALUTE

Pagine omesse dallanteprima del volume

Finito di stampare
nel mese di febbraio 2017
presso la Tipografia CSR S.r.l. - Roma
per conto della EPC S.r.l. Socio Unico
Via dellAcqua Traversa 187/189 - Roma 00135

564

TUTELA DATI SANITARIO.indb 564 27/02/2017 12:08:37


Pagine tratte da www.epc.it - Tutti i diritti riservati

capitolo 4
CASO STUDIO: WEB APPLICATION IN JAVA

Giorno 1 Ore 15:00


Questo capitolo rappresenta il cuore del testo, in quanto si studier in maniera appro-
fondita la Web Application e la si implementer nella sua completezza, sviluppando
un giro completo in base alle specifiche richieste, affrontando tutte le eventuali pro-
blematiche e sviluppando le soluzioni migliori e pi semplici da un punto di vista
pratico e didattico.

4.1. Il DataBase
Si parta con la progettazione del DataBase, per giungere alla creazione dello Schema
e delle tabelle di interesse.

4.1.1. Progettazione Concettuale, Logica e Fisica del DataBase


della Web Application

Si scelga di progettare il DataBase di nome company_management, per poter sal-


vare e gestire un certo numero di imprese e i relativi dipendenti. Si parta dalla proget-
tazione ER (Entit-Relazioni), qui non riportata per semplicit. Lanalisi dei requisiti ha
portato a definire due entit fondamentali: impresa ed impiegato, con le condizioni
che ad unimpresa corrispondano da 1 a n impiegati e che un impiegato possa essere
dipendente di una sola impresa. Sar quindi necessario prevedere un legame tra la
entit impiegato e la entit impresa tramite una chiave esterna.

Limpresa (company) avr i seguenti campi:


idcompany: partita iva o codice fiscale (chiave) dellimpresa;
company_name: denominazione dellimpresa;
phone: numero di telefono (non obbligatorio);

65

Manelli creazione WEB.indb 65 11/05/2017 16:47:50


Pagine tratte da www.epc.it - Tutti i diritti riservati

CREARE UNA WEB APPLICATION CON JAVA IN 24H

email: email dellimpresa;


date_ins: data di inserimento.

Limpiegato (employee) avr i seguenti campi:


idemployee: codice fiscale (chiave);
surname: cognome dellimpiegato;
name: nome dellimpiegato;
badge: matricola dellimpiegato;
FK_company: chiave esterna relativa allimpresa di appartenenza;
date_ins: data di inserimento.

Essendo limpiegato dipendente di una sola impresa, lentit employee presenter, qua-
le chiave esterna, il campo FK_company corrispondente allo idcompany dellimpresa
(ovvero dellentit company). La progettazione (semplificata) indicata di seguito in forma
tabellare discende dalla progettazione concettuale e logica non approfondita nel testo.

Schema: company_management

Table: company
Field Name Lenght Type Constraints
idcompany 16 VARCHAR Primary Key-Not null
company_name 45 VARCHAR Not Null
phone 16 VARCHAR
email 45 VARCHAR Not Null
date_ins - DATE Not Null

Table: employee
Field Name Lenght Type Constraints
idemployee 16 VARCHAR Primary Key - Not null
name 45 VARCHAR Not Null
surname 45 VARCHAR Not Null
badge 5 VARCHAR Not Null
FK_company 16 VARCHAR Not Null - Foreign Key: idcompany
date_ins - DATE Not Null

Si pu notare come in entrambe le tabelle sia stato inserito il campo date_ins, in quan-
to sempre importante sapere quando un elemento stato inserito (o eventualmente
modificato). Questultimo campo a carico del sistema e non inseribile dalloperatore.

66

Manelli creazione WEB.indb 66 11/05/2017 16:47:50


Pagine tratte da www.epc.it - Tutti i diritti riservati

Caso studio: web application in java

4.1.2. Implementazione del DataBase per la Web Application


con MySQL

Al tal punto possibile creare lo Schema con le relative tabelle. sufficiente connet-
tersi al Server tramite il Workbench.

Fig. 4.1 Workbench, connessione al DataBase

Successivamente comparir la schermata che chieder conferma del Server cui con-
nettersi. Cliccare su OK e proseguire.

Fig. 4.2 Workbench, parametri base di connessione al DataBase

67

Manelli creazione WEB.indb 67 11/05/2017 16:47:51


Pagine tratte da www.epc.it - Tutti i diritti riservati

CREARE UNA WEB APPLICATION CON JAVA IN 24H

Data la conferma, verr chiesta la password per laccesso. Nel caso analizzato si
indichi root.

Fig. 4.3 Workbench, accesso al DataBase, inserimento password

A questo punto si apre automaticamente la finestra dellapplicativo.

Fig. 4.4 Workbench, schermata di lavoro

Per creare un nuovo Schema sufficiente andare nellarea SCHEMAS, si clicchi sul
tasto destro per aprire il menu contestuale e, successivamente, con il tasto sinistro
selezionare Create Schema.

68

Manelli creazione WEB.indb 68 11/05/2017 16:47:51


Pagine tratte da www.epc.it - Tutti i diritti riservati

Caso studio: web application in java

Fig. 4.5 Workbench, creazione nuovo Schema

Adesso si crei lo Schema company_management. Cliccando su Apply, comparir


la finestra di creazione dello Schema.

Fig. 4.6 Workbench, script di creazione di uno Schema

Cliccando nuovamente su Apply, viene eseguita la query e creato il nuovo Schema.

69

Manelli creazione WEB.indb 69 11/05/2017 16:47:51


Pagine tratte da www.epc.it - Tutti i diritti riservati

CREARE UNA WEB APPLICATION CON JAVA IN 24H

Fig. 4.7 Workbench, esecuzione dello script di creazione nuovo Schema DB

Una volta creato lo Schema, necessario creare le tabelle, che, nel caso analizzato sono:
Company Table.
Employee Table.

Per creare le tabelle sufficiente cliccare con il tasto destro del mouse sulle tabelle
dello Schema company_management e dal menu contestuale selezionare Cre-
ate Table.

Fig. 4.8 Workbench, creazione di una tabella

70

Manelli creazione WEB.indb 70 11/05/2017 16:47:52


Pagine tratte da www.epc.it - Tutti i diritti riservati

Caso studio: web application in java

Aperta la schermata per la creazione di una nuova tabella, possibile inserire i vari
campi, impostando, almeno, i campi chiave (PK) e quelli non nulli (NN). Al momento si
crei la tabella company con campo chiave idcompany e il campo company_name.

Fig. 4.9 Workbench, gestione tabella e campi

Cliccando su Apply, viene lanciato lo script di creazione della tabella company


con i relativi campi.

Fig. 4.10 Workbench, esecuzione dello script di creazione nuova tabella e campi

Una volta creata la tabella possibile modificarla sfruttando licona cacciavite dal
menu di sinistra in corrispondenza della tabella.

71

Manelli creazione WEB.indb 71 11/05/2017 16:47:52


Pagine tratte da www.epc.it - Tutti i diritti riservati

LA TUTELA DEI DATI NEL SETTORE SALUTE

Pagine omesse dallanteprima del volume

Finito di stampare
nel mese di febbraio 2017
presso la Tipografia CSR S.r.l. - Roma
per conto della EPC S.r.l. Socio Unico
Via dellAcqua Traversa 187/189 - Roma 00135

564

TUTELA DATI SANITARIO.indb 564 27/02/2017 12:08:37