Creare una web application con Java in 24h
eBook - ePub

Creare una web application con Java in 24h

Implementazione step by step con Tomcat, Mysql, Eclipse

Luciano Manelli

Share book
  1. Italian
  2. ePUB (mobile friendly)
  3. Available on iOS & Android
eBook - ePub

Creare una web application con Java in 24h

Implementazione step by step con Tomcat, Mysql, Eclipse

Luciano Manelli

Book details
Book preview
Table of contents
Citations

About This Book

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, neofiti e professionisti che necessitino di una guida unica, esaustiva, chiara, semplice e, soprattutto, pratica che gestisca il ciclo di vita di un'applicazione dalla progettazione all'implementazione e alla distribuzione, 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 lettore nello 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'analisi e all'implementazione 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 caso studio completo ed i relativi approfondimenti sono temporalmente cadenzati al fine di far comprendere come una guida concisa ed affidabile permetta di ottenere risultati concreti su una tecnologia all'apparenza difficile, riuscendo a colmare la carenza in un settore in cui i riferimenti non mancano, risultando però spesso dispersivi o settorializzati.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is Creare una web application con Java in 24h an online PDF/ePUB?
Yes, you can access Creare una web application con Java in 24h by Luciano Manelli in PDF and/or ePUB format, as well as other popular books in Informatique & Programmation. We have over one million books available in our catalogue for you to explore.

Information

Publisher
EPC EDITORE
Year
2017
ISBN
9788863107999
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. Conseguentemente, 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 funzionale 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 conseguenza, 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 impacchettare i dati proteggendoli da interferenze esterne e si basa sul principio di information 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 funzionalità in base al modo in cui viene chiamato). L’astrazione viene usata per decomporre 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’interno della Classe stessa e dall’esterno ove presente una sua istanza), protected (accedibile, 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 sviluppi 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 linguaggio 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 Development Environment) gratuiti, quali Eclipse, per facilitare e migliorare il compito degli sviluppatori. Contestualmente si sono evoluti gli Application Server (quali JBoss e Tomcat) 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 programmazione standard. È possibile, infatti, considerare il Web una collezione di risorse fisicamente sparse nel mondo e accedibili attraverso un particolare sistema di indirizzamento (principalmente URL - Uniform Resource Locator) e mediante opportuni protocolli (principalmente HTTP - HyperText Transfer Protocol). L’interazione tra i vari componenti si basa sull’architettura Client-Server dove il Server fornisce un servizio (eseguendo le elaborazioni, reindirizzando le richieste dell’utente e generando le risposte) e il Client richiede un servizio (individuando l’interfaccia dell’applicazione 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 progettazione 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 (legato 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. Questo livello di separazione è fondamentale per motivi di stabilità e coerenza dell’applicazione 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 container (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 elementi 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 mette 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 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, corrisponde 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’applicazione. Volendo illustrare semplicemente il funzionamento di una Web Application: un Client invia una richiesta (request) ad una Servlet (su un Application Server), 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 associato 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 (HttpServletRequest 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 directory memorizzabili su file system ed è solitamente esportabile come file compresso di estensione .war. Una volta definita la root (directory principale) di progetto questa, terminato lo sviluppo dell’applicativo, sarà deployata sotto la directory webapps di Tomcat (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.
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 richieste 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 è, quindi, 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 bidimensionale 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 (rispettivamente 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’applicativo che si vuole implementare.
1.5. Analisi Funzionale del Caso Studio
I requisiti funzionali rappresentano il “cosa”, ovvero il comportamento dell’applicazione, e possono essere individuati schematicamente attraverso un elenco o tramite l’ausilio di tabelle. La Web Application che si vuole realizzare deve permettere l’inserimento, 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 quale applicativo esposto nella intranet aziendale. Di seguito, vengono indicati tabellarmente 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’adeguata 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”.
Tab. 1.1 - Requisiti funzionali della Web Application
capitolo 2
INSTALLARE E CONFIGURARE LE COMPONENTI
Giorno 1 – Ore 10:00
Il primo passo si configura nello scarico e nell’installazione delle componenti che serviranno all’applicazione. Si farà riferimento alle versioni presenti al momento della scrittura del testo, ma si potranno scaricare anche le versioni più recenti, se il lavoro dovesse iniziare in momenti successivi (in quanto, oltre ad essere retro-compatibili, solitamente risolvono bug ed ottimizzano le librerie). Potranno anche essere scaricate versioni precedenti (purché tra loro compatibili) se, ad esempio, si volesse lav...

Table of contents