creare una web application java in 24h - epc.it · creare una web application con java in 24h...

25
Luciano Manelli Implementazione step by step con Tomcat, MySQL, Eclipse 24h Creare una web application con Java in vai alla scheda del libro l’autore

Upload: phungphuc

Post on 16-Feb-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

Creare una web application con Java in 24hImplementazione step by step con Tomcat, MySQL, Eclipse

Il testo, unico nel suo genere, accompagna il lettore nell’implementazione 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, neofi ti e professionisti che necessitino di una guida unica, esaustiva, chiara, semplice e, soprattutto, pratica che gestisca il ciclo divita di un’applicazione dalla progettazione all’implementazione e alla di-stribuzione, divenendo uno strumento indispensabile per tutti coloro che vogliano introdursi allo studio delle applicazioni professionali per il web in Java ed ambiscano ad ottenere rapidi risultati. Il testo introduce il lettorenello sviluppo step by step di una Web Application, in un crescendo di informazioni armonizzate e coerenti: dall’installazione delle componenti base (MySQL, JDK, Tomcat, Eclipse) alla creazione del DataBase, all’ana-lisi e all’implementazione di un progetto con JSP, Servlet e Classi Java, all’impaginazione grafi ca tramite l’uso di un template gratuito ed, infi ne, alla messa in esercizio sul server Tomcat. Il caso studio completo ed i relativi approfondimenti sono temporalmente cadenzati al fine di far com-prendere come una guida concisa ed affi dabile permetta di ottenere risul-tati concreti su una tecnologia all’apparenza diffi cile, riuscendo a colmarela carenza in un settore in cui i riferimenti non mancano, risultando peròspesso dispersivi o settorializzati.

Luciano Manelli, laureato in Ingegneria Elettronica al Politecnico di Bari. Ha conseguito il Dottorato di Ricerca in Informatica presso il Dipartimen-to di Informatica dell’Università degli Studi di Bari Aldo Moro, lavorando sul Grid Computing e sui Metodi Formali e redigendo articoli scientifi ci 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 l’Università degli Studi di Bari Aldo Moro - Diparti-mento di Informatica per il corso di Programmazione per il Web. Profes-sionista certifi cato, consigliere AICA - Sezione Territoriale Puglia, membrodella commissione ICT dell’Ordine degli Ingegneri di Taranto, componente della commissione Industria 4.0 della delegazione Federmanager Puglia e autore di testi universitari e tecnici, dopo aver lavorato 13 anni per InfoCa-mere S.C.p.A., dal 2014 è impiegato presso l’Autorità di Sistema Portuale del Mar Ionio.

978

8863

1077

22

ISB

N 9

78-8

8-63

10-7

72-2

SEGUICI SU

www.epc.it

€ 18,00

Luciano Manelli

Implementazione step by step con Tomcat, MySQL, Eclipse

CREARE UNA WEB APPLICATION CON JAVA IN 24H

24h

Creare una web application

con Javain

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

vai alla scheda

del libro

l’autore

Page 2: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

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

Page 3: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CREARE UNA WEB APPLICATION CON JAVA IN 24HISBN: 978-88-6310-772-2

Copyright © 2017 EPC S.r.l. Socio Unico

EPC S.r.l. Socio Unico - Via dell’Acqua Traversa, 187/189 - 00135 Romawww.epc.itServizio clienti: 06 33245277 - Fax 06 3313212Redazione: 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 dall’uso dell’in-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

Ai miei figli Sara e Marco,a mia moglie Stefania,

ai miei genitori Anna e Piero.

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

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

Page 4: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

3

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

Page 5: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CREARE UNA WEB APPLICATION CON JAVA IN 24H

4

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 l’inserimento 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

Page 6: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

SOMMARIO

5

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 un’impresa .........................................................130

4.9. Migliorare l’Usabilità ......................................................................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

Page 7: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

7

PREFAZIONE

Il presente testo si prefigge l’obiettivo 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: dall’installazione delle componenti base (MySQL, Eclipse, Tom-cat, JDK) alla creazione del DataBase, allo sviluppo di un progetto con JSP, Servlet e Classi Java, all’impaginazione grafica tramite l’uso 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 all’apparenza 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: [email protected]

Ringraziamenti

Ringrazio il Prof. Giuseppe Mastronardi del Politecnico di Bari e Presidente AICA, quale mio mentore nell’esperienza di docente di Fondamenti di Informatica. Rin-grazio il Prof. Sebastiano Pizzutilo e il Prof. Alessandro Bianchi del dipartimento di Informatica dell’Università 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

Page 8: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CREARE UNA WEB APPLICATION CON JAVA IN 24H

8

Grigoletto e Fabrizio Notarnicola, riferimenti per l’analisi 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

Page 9: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

9

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. L’obiettivo 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 l’analisi funzionale del caso studio che si implementerà.

Il secondo capitolo è dedicato allo scarico, all’installazione 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 un’applicazione 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à l’inserimento, 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 dell’applicazione. 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

Page 10: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CREARE UNA WEB APPLICATION CON JAVA IN 24H

10

Il tempo verrà cadenzato su tre giorni lavorativi e lo sviluppo sarà supportato da screenshot con spiegazioni puntuali che semplificheranno e velocizzeranno l’appren-dimento e, in ultimo, sarà fornito tutto il codice dell’applicativo sviluppato. Al termine del testo il lettore avrà appreso tutte le nozioni fondamentali per sviluppare un’appli-cazione web in Java con salvataggio su DataBase ed incorniciata in un layout grafico avvincente.

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

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

Page 11: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

11

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 un’esigenza 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 l’elaborazione 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, l’obiettivo è 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 l’analisi funzio-nale del caso studio che si andrà ad implementare.

1.1. Programmazione ad Oggetti e linguaggio Java

La programmazione 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 l’uso di messaggi. Il programma viene realizzato progettando e scrivendo il codice sotto forma di “classi” che durante l’esecuzione vengono invocate per creare l’oggetto relativo che si andrà ad usare. La Classe rappresenta, di conse-guenza, una categoria di oggetti (con metodi ed attributi) ed un particolare oggetto, che appartiene ad una Classe, costituisce un’istanza della Classe stessa. 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

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

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

Page 12: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CREARE UNA WEB APPLICATION CON JAVA IN 24H

12

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 l’attitudine di un oggetto a presentare diversi comportamenti per una singola funzio-nalità in base al modo in cui viene chiamato). L’astrazione 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 dall’in-terno della Classe stessa e dall’esterno ove presente una sua istanza), protected (acce-dibile, utilizzabile e richiamabile dall’interno della Classe stessa e dall’esterno solo dalle classi del package di appartenenza o dalle classi che la estendono), private (accedibile, utilizzabile e richiamabile solo dall’interno 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 l’implementazione e l’organizzazione 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 l’estensione .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

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

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

Page 13: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

LO SCENARIO DI RIFERIMENTO

13

protocolli (principalmente HTTP - HyperText Transfer Protocol). L’interazione tra i vari componenti si basa sull’architettura Client-Server dove il Server fornisce un servi-zio (eseguendo le elaborazioni, reindirizzando le richieste dell’utente e generando le risposte) e il Client richiede un servizio (individuando l’interfaccia dell’applicazio-ne con l’utente 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 l’utente 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 dell’ap-plicazione e comporta una maggiore sicurezza in quanto consente la distribuzione delle componenti su differenti Server, con differenti policy di accesso. Nell’ambito 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 l’uso 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 all’interno di un con-tainer (Application Server) il quale lavora su un’assegnata 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 all’interno 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 un’estensione delle Servlet e sono caratterizzate da un misto di codice statico (HTML) e dinamico (Java). Quest’ultimo è contenuto nei tag “<%%>” e viene precompilato prima di inviare la risposta al Client. Lo Application Server è una piattaforma software su cui deployare un’applicazione 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

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

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

Page 14: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CREARE UNA WEB APPLICATION CON JAVA IN 24H

14

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 all’esterno. 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 all’interno 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 l’accesso ad un DataBase o l’interfaccia standard per gestire la comunicazione col Client. Può essere usata una sola Servlet che gestisca differenti comportamenti o possono essere presenti più Servlet all’interno di un’ap-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 quest’ultima 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 all’interno, ma questo viene demandato alle classi con cui la stessa si interfaccia. Request e Response sono gestiti dalle relative interfacce (HttpServletRe-quest e HttpServletResponse). L’interfaccia 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 dell’applicazione stessa. Tra le innovazioni apportate dalle Servlet 3.X si introduce l’uso 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 dell’applicativo, 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 quest’ultima directory è possibile individuare la cartella classes, che contiene i compilati di classi e Servlet, e la cartella lib che contiene tutte le librerie usate dall’applicativo che si sta per sviluppare.

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

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

Page 15: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

LO SCENARIO DI RIFERIMENTO

15

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 l’uso 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 dell’ap-plicativo che si vuole implementare.

1.5. Analisi Funzionale del Caso Studio

I requisiti funzionali rappresentano il “cosa”, ovvero il comportamento dell’applica-zione, e possono essere individuati schematicamente attraverso un elenco o tramite l’ausilio di tabelle. La Web Application che si vuole realizzare deve permettere l’in-serimento, la modifica, la cancellazione, la visualizzazione e la ricerca di una serie di imprese e dei relativi impiegati. L’esigenza nasce dal fabbisogno interno alla struttura organizzativa di riferimento di un’impresa 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 dell’applicativo.

È possibile notare come un’organizzazione schematica dei requisiti consenta un’a-deguata gestione degli stessi funzionalmente e in ottica implementativa (ma anche per effettuare una stima economica del lavoro). L’analisi dei requisiti porta alla quindi necessità di implementare un applicativo per poter gestire imprese e dipendenti, il cui nome è: “Company Management”.

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

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

Page 16: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CREARE UNA WEB APPLICATION CON JAVA IN 24H

16

Tab

. 1.1

− R

equ

isit

i fu

nzi

on

ali d

ella

Web

Ap

plic

atio

n

Codi

ce

Mac

ro-R

equi

sito

Tito

lo

Mac

ro-R

equi

sito

Codi

ce

Requ

isito

Tito

lo

Requ

isito

Des

criz

ione

Req

uisi

toN

ote

e Vi

ncol

i

MR

01In

serim

ento

100

Inse

rimen

to

dati

Azi

enda

Mod

ulo

di in

serim

ento

con

i se

guen

ti ca

m-

pi:

• Pa

rtita

IVA

/ C

odic

e Fi

scal

e (p

iva/

cf);

• D

enom

inaz

ione

;•

Em

ail;

• Te

lefo

no.

Tele

fono

non

obb

ligat

orio

.

Per o

gni i

mpr

esa

è ne

cess

ario

inse

rire

alm

eno

un im

pieg

ato.

200

Inse

rimen

to

dati

Impi

egat

o

Mod

ulo

di in

serim

ento

con

i se

guen

ti ca

m-

pi:

• C

odic

e Fi

scal

e (c

f);

• N

ome;

• C

ogno

me;

• M

atric

ola.

MR

05M

odifi

ca

100

Mod

ifica

dati

Azi

enda

Mod

ulo

di m

odifi

ca c

on i

segu

enti

cam

pi:

• D

enom

inaz

ione

;•

Em

ail;

• Te

lefo

no.

P art

ita IV

A in

varia

bile

.

Mod

ifica

att

ivab

ile d

all’e

lenc

o de

lle im

pres

e.

200

Mod

ifica

dati

Impi

egat

o

Mod

ulo

di m

odifi

ca c

on i

segu

enti

cam

pi:

• N

ome;

• C

ogno

me;

• M

atric

ola.

Cod

ice

Fisc

ale

inva

riabi

le.

Mod

ifica

at t

ivab

ile d

all’e

lenc

o de

gli i

mpi

egat

i.

MR

10R

icer

ca

ed E

lenc

hi

100

Ric

erca

Azi

enda

Ele

nco

impr

ese

con

mod

ulo

di r

icer

ca s

ui

segu

enti

cam

pi:

• D

enom

inaz

ione

(anc

he p

arzi

ale)

.

Ele

ncar

e le

impr

ese

con

tutt

i i d

ati p

rese

nti.

Poss

ibili

tà d

i vis

iona

re l’

elen

co d

egli

impi

egat

i di

ogn

i im

pres

a.

Poss

ibili

tà d

i mod

ifica

re u

n’im

pres

a da

ll’el

enco

.

200

Ele

nco

Impi

egat

iE

lenc

o im

pieg

ati d

i un

impr

esa,

ric

avab

ile

dall’

elen

co d

elle

impr

ese.

Ele

ncar

e gl

i im

pieg

ati c

on tu

tti i

dat

i pre

sent

i.

Poss

ibili

tà d

i can

cella

re e

mod

ifica

re u

n im

pie-

gato

dal

l’ele

nco.

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

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

Page 17: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

LA TUTELA DEI DATI NEL SETTORE SALUTE

564

Finito di stamparenel mese di febbraio 2017

presso la Tipografia CSR S.r.l. - Romaper conto della EPC S.r.l. Socio Unico

Via dell’Acqua Traversa 187/189 - Roma 00135

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

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

Pagine omesse dall’anteprima del volume

Page 18: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

65

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à. L’analisi dei requisiti ha portato a definire due entità fondamentali: impresa ed impiegato, con le condizioni che ad un’impresa 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.

L’impresa (company) avrà i seguenti campi:

• idcompany: partita iva o codice fiscale (chiave) dell’impresa;

• company_name: denominazione dell’impresa;

• phone: numero di telefono (non obbligatorio);

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

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

Page 19: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CREARE UNA WEB APPLICATION CON JAVA IN 24H

66

• email: email dell’impresa;

• date_ins: data di inserimento.

L’impiegato (employee) avrà i seguenti campi:

• idemployee: codice fiscale (chiave);

• surname: cognome dell’impiegato;

• name: nome dell’impiegato;

• badge: matricola dell’impiegato;

• FK_company: chiave esterna relativa all’impresa di appartenenza;

• date_ins: data di inserimento.

Essendo l’impiegato dipendente di una sola impresa, l’entità employee presenterà, qua-le chiave esterna, il campo FK_company corrispondente allo idcompany dell’impresa (ovvero dell’entità 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). Quest’ultimo campo è a carico del sistema e non inseribile dall’operatore.

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

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

Page 20: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CASO STUDIO: WEB APPLICATION IN JAVA

67

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

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

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

Page 21: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CREARE UNA WEB APPLICATION CON JAVA IN 24H

68

Data la conferma, verrà chiesta la password per l’accesso. Nel caso analizzato si indichi “root”.

Fig. 4.3 − Workbench, accesso al DataBase, inserimento password

A questo punto si apre automaticamente la finestra dell’applicativo.

Fig. 4.4 − Workbench, schermata di lavoro

Per creare un nuovo Schema è sufficiente andare nell’area “SCHEMAS”, si clicchi sul tasto destro per aprire il menu contestuale e, successivamente, con il tasto sinistro selezionare “Create Schema…”.

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

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

Page 22: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CASO STUDIO: WEB APPLICATION IN JAVA

69

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.

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

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

Page 23: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CREARE UNA WEB APPLICATION CON JAVA IN 24H

70

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

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

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

Page 24: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

CASO STUDIO: WEB APPLICATION IN JAVA

71

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 l’icona cacciavite dal menu di sinistra in corrispondenza della tabella.

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

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

Page 25: Creare una web application Java in 24h - epc.it · Creare una web application con Java in 24h Implementazione step by step con Tomcat, My SQL, Eclipse Il testo, unico nel suo genere,

LA TUTELA DEI DATI NEL SETTORE SALUTE

564

Finito di stamparenel mese di febbraio 2017

presso la Tipografia CSR S.r.l. - Romaper conto della EPC S.r.l. Socio Unico

Via dell’Acqua Traversa 187/189 - Roma 00135

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

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

Pagine omesse dall’anteprima del volume