Professional Documents
Culture Documents
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
vai alla
www.epc.it
scheda
SEGUICI SU del libro
18,00
Luciano Manelli
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.
SOMMARIO
Prefazione..........................................................................................................7
Introduzione........................................................................................................9
capitolo 1
LO SCENARIO DI RIFERIMENTO.......................................................................... 11
1.1. Programmazione ad Oggetti e linguaggio Java........................................... 11
1.4. DataBase...................................................................................... 15
capitolo 2
INSTALLARE E CONFIGURARE LE COMPONENTI .................................................. 17
2.1. Scaricare e installare MySQL 5.7 Community............................................. 17
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
SOMMARIO
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
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
INTRODUZIONE
10
capitolo 1
LO SCENARIO DI RIFERIMENTO
11
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.
12
Lo scenario di riferimento
13
14
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.
15
16
Codice Titolo Codice Titolo
Descrizione Requisito Note e Vincoli
Macro-Requisito Macro-Requisito Requisito Requisito
11/05/2017 16:47:37
Pagine tratte da www.epc.it - Tutti i diritti riservati
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
capitolo 4
CASO STUDIO: WEB APPLICATION IN JAVA
4.1. Il DataBase
Si parta con la progettazione del DataBase, per giungere alla creazione dello Schema
e delle tabelle di interesse.
65
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
Al tal punto possibile creare lo Schema con le relative tabelle. sufficiente connet-
tersi al Server tramite il Workbench.
Successivamente comparir la schermata che chieder conferma del Server cui con-
nettersi. Cliccare su OK e proseguire.
67
Data la conferma, verr chiesta la password per laccesso. Nel caso analizzato si
indichi root.
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
69
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.
70
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.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
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