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

Partager le livre
  1. Italian
  2. ePUB (adapté aux mobiles)
  3. Disponible sur iOS et Android
eBook - ePub

Creare una web application con Java in 24h

Implementazione step by step con Tomcat, Mysql, Eclipse

Luciano Manelli

DĂ©tails du livre
Aperçu du livre
Table des matiĂšres
Citations

À propos de ce livre

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.

Foire aux questions

Comment puis-je résilier mon abonnement ?
Il vous suffit de vous rendre dans la section compte dans paramĂštres et de cliquer sur « RĂ©silier l’abonnement ». C’est aussi simple que cela ! Une fois que vous aurez rĂ©siliĂ© votre abonnement, il restera actif pour le reste de la pĂ©riode pour laquelle vous avez payĂ©. DĂ©couvrez-en plus ici.
Puis-je / comment puis-je télécharger des livres ?
Pour le moment, tous nos livres en format ePub adaptĂ©s aux mobiles peuvent ĂȘtre tĂ©lĂ©chargĂ©s via l’application. La plupart de nos PDF sont Ă©galement disponibles en tĂ©lĂ©chargement et les autres seront tĂ©lĂ©chargeables trĂšs prochainement. DĂ©couvrez-en plus ici.
Quelle est la différence entre les formules tarifaires ?
Les deux abonnements vous donnent un accĂšs complet Ă  la bibliothĂšque et Ă  toutes les fonctionnalitĂ©s de Perlego. Les seules diffĂ©rences sont les tarifs ainsi que la pĂ©riode d’abonnement : avec l’abonnement annuel, vous Ă©conomiserez environ 30 % par rapport Ă  12 mois d’abonnement mensuel.
Qu’est-ce que Perlego ?
Nous sommes un service d’abonnement Ă  des ouvrages universitaires en ligne, oĂč vous pouvez accĂ©der Ă  toute une bibliothĂšque pour un prix infĂ©rieur Ă  celui d’un seul livre par mois. Avec plus d’un million de livres sur plus de 1 000 sujets, nous avons ce qu’il vous faut ! DĂ©couvrez-en plus ici.
Prenez-vous en charge la synthÚse vocale ?
Recherchez le symbole Écouter sur votre prochain livre pour voir si vous pouvez l’écouter. L’outil Écouter lit le texte Ă  haute voix pour vous, en surlignant le passage qui est en cours de lecture. Vous pouvez le mettre sur pause, l’accĂ©lĂ©rer ou le ralentir. DĂ©couvrez-en plus ici.
Est-ce que Creare una web application con Java in 24h est un PDF/ePUB en ligne ?
Oui, vous pouvez accĂ©der Ă  Creare una web application con Java in 24h par Luciano Manelli en format PDF et/ou ePUB ainsi qu’à d’autres livres populaires dans Informatik et Programmierung. Nous disposons de plus d’un million d’ouvrages Ă  dĂ©couvrir dans notre catalogue.

Informations

Éditeur
EPC EDITORE
Année
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 des matiĂšres