D. Rosaci. Java2 Enterprise Edition



Documenti analoghi
SWIM v2 Design Document

Protocolli e architetture per WIS

Programmazione server-side: Java Servlet

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Laboratorio di Basi di Dati

Application Server per sviluppare applicazioni Java Enterprise

Integration Software S.r.l.

Primi passi con Apache Tomcat. L application server dell Apache group

Concetti base. Impianti Informatici. Web application

Implementazione di MVC. Gabriele Pellegrinetti

Architetture Web: un ripasso

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Panoramica: che cosa è necessario

Server-side Programming: Java servlets Parte II

Capitolo 4 Pianificazione e Sviluppo di Web Part

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

Informatica. Prof. A. Longheu. Introduzione a Java

Il Web Server e il protocollo HTTP

L architettura MVC (Model- View-Controller) Introduzione

Introduzione alle applicazioni di rete

Manuale per la configurazione di AziendaSoft in rete

Componenti Web: client-side e server-side

Progettazione: Tecnologie e ambienti di sviluppo

Istruzioni per l installazione

Database e reti. Piero Gallo Pasquale Sirsi

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Mac Application Manager 1.3 (SOLO PER TIGER)

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Approccio stratificato

Siti interattivi e dinamici. in poche pagine

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

Siti web centrati sui dati (Data-centric web applications)

Lezione 9. Applicazioni tradizionali

EJB Components. Leonardo Mariani Esercitazione di Sistemi Distribuiti. Oggetti Distribuiti

Come funziona internet

CORSO DI PROGRAMMAZIONE JAVA

Protocolli applicativi: FTP

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

MetaMAG METAMAG 1 IL PRODOTTO

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Applicazioni web centrati sui dati (Data-centric web applications)

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

EyesDGTV. Your digital terrestrial television. Soluzioni Informatiche

Programmazione dei socket con TCP #2

Installazione e caratteristiche generali 1

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Comunicazione tra Processi

Comunicazione tra Processi

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

19. LA PROGRAMMAZIONE LATO SERVER

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser.

Istruzioni di installazione di Intel Utilities

Porting Su Hostingjava

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Messa in esercizio, assistenza e aggiornamento di una Piattaform Open Source Liferay plug-in per ARPA

Applicazione: GAS - Gestione AcceSsi

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

InitZero s.r.l. Via P. Calamandrei, Arezzo

FPf per Windows 3.1. Guida all uso

UML Component and Deployment diagram

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

Progetto di Applicazioni Software

JNDI. Massimo Merro Programmazione di Rete 214 / 229

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet

Strumenti per la programmazione

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: sdfonline.unimc.it/info/modulo.jsp;

Framework di Middleware. per Architetture Enterprise

Java Web Services. Uso di Eclipse e Apache Axis

sito web sito Internet

Il web server Apache Lezione n. 3. Introduzione

Tale attività non è descritta in questa dispensa

Architettura MVC-2: i JavaBeans

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

Il Protocollo HTTP e la programmazione di estensioni Web

Manuale LiveBox WEB ADMIN.

Programmazione ad Oggetti. Java Parte I

Introduzione al linguaggio Java: Servlet e JSP

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Moduli di Fatturazione Elettronica

Bibliografia: Utenti e sessioni

Intel One Boot Flash Update Utility Guida dell utente

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

Caratteristiche principali. Contesti di utilizzo

FileMaker Server 14. Guida alla configurazione dell installazione in rete

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Introduzione. Installare EMAS Logo Generator

MANUALE PARCELLA FACILE PLUS INDICE

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Transcript:

D. Rosaci Java2 Enterprise Edition

Cos è J2EE? È una piattaforma per lo sviluppo di applicazioni enterprise, basata su un modello di applicazione distribuito a più livelli (multi-tiered) Per applicazione enterprise intendiamo un applicazione aziendale, orientata a implementare servizi aziendali che coinvolgono diverse figure: consumatori, partner dell'azienda, impiegati dell'azienda La tecnologia J2EE utilizza una struttura tecnologica a livelli, dove ogni livello implementa uno specifico servizio, a partire dal quale può essere implementato il processo aziendale. In pratica J2EE è un raccoglitore di tecnologie che facilitano lo sviluppo di software distribuito orientato al Web. D. Rosaci J2EE 2

Cos è J2EE? È una piattaforma per lo sviluppo di applicazioni enterprise, basata su un modello di applicazione distribuito a più livelli (multi-tiered) L applicazione è divisa logicamente in componenti, installate su macchine differenti, in base al livello (tier) a cui ogni componente appartiene D. Rosaci J2EE 3

J2EE Tiers Componenti Client-tier: sono eseguiti sulla macchina client. Componenti Web-tier: sono eseguiti sul J2EE server. Componenti Business-tier: sono eseguiti sul J2EE server. Componenti Enterprise Information System (EIS)-tier: sono eseguiti sull EIS server D. Rosaci J2EE 4

J2EE Tiers D. Rosaci J2EE 5

Un architettura Three-tiered In genere le applicazioni J2EE sono considerate applicazioni three-tiered Infatti, esse sono distribuite in parte sui client, in parte sul J2EE server and in parte su database o sistemi legacy situati nel back-end aziendale D. Rosaci J2EE 6

Componenti J2EE Una componente J2EE component è un unità software self-contained che è assemblata in un applicazione J2EE con le sue classi e i suoi files e che comunica con altre componenti Le specifiche J2EE definiscono i seguenti tipi di componenti J2EE: Application clients e applets sono le componenti eseguite sui client. Le componenti Java Servlet e JavaServer Pages (JSP ) sono componenti Web che vengono eseguite sul server. Le componenti Enterprise JavaBeans (EJB ) sono componenti business eseguite sul server. Le componenti J2EE sono scritte in Java e sono compilate come qualunque unità logica Java. La differenza tra le componenti J2EE components e le classi "standard" Java è che le componenti J2EE components vengono assemblate in un applicazione J2EE, è verificata la loro conformità alle specifiche J2EE e sono eseguite e controllate da un J2EE server. D. Rosaci J2EE 7

J2EE Client Abbiamo due tipi di J2EE client Web client Application client D. Rosaci J2EE 8

Web Client Consiste di pagine Web dinamiche contenenti codice di markup (HTML,XML) generate da componenti che risiedono sul Web tier un Web browser che visualizza le pagine Web Un Web client non esegue operazioni ad alto costo computazionale (si dice che è un thin client), come ad es. query su database, demandate alle componenti lato server A volte le pagine Web ricevute dal Web tier possono contenere delle applets, applicazioni java embedded che vengono eseguite dalla JVM installata sul Web browser I Web client rappresentano un modo molto efficace di realizzare applicazioni lato client, perché forniscono un meccanismo per separare il disegno dell applicazione dal codice implementativo D. Rosaci J2EE 9

Application client Un application client è eseguito su una macchina client e fornisce la possibilità agli utenti di gestire task che richiedono un interfaccia più ricca di quella realizzabile attraverso un linguaggio di markup. Esso tipicamente sfrutta una GUI creata dalle API Java Swing o AWT. Gli Application client accedono direttamente agli Enterprise Java Beans che sono eseguiti sul business tier. Tuttavia, se l applicazione lo richiede, essi possono aprire una connessione HTTP connection per stabilite una comunicazione con un servlet in esecuzione sul web tier. D. Rosaci J2EE 10

Le componenti JavaBeans Sia il client tier che il server tier possono includere componenti basati sull architettura JavaBeans, per manipolare i flussi di dati tra un application client o una applet e i componenti lato server, o tra componenti server e un database Le componenti JavaBeans non sono considerate componenti J2EE. Le componenti JavaBeans sono oggetti con proprietà e con metodi get e set per agire su tali proprietà, e quindi rappresentano un modo semplice per realizzare oggetti disegnabili. D. Rosaci J2EE 11

J2EE Server Communication Il client comunica con il business tier eseguito sul J2EE server o drettamente oppure, nel caso di client eseguito all interno di un browser Web, attraverso pagine JSP o servlet eseguite sul Web tier. Nel realizzare un applicazione J2EE, occorre scegliere se spostare le funzionalità maggiormente sul client (thick application client) oppure usare un thin client eseguito nel browser spostando le funzionalità quanto più possibile sul server Quanto più le funzionalità sono distribuite sul server, tanto più facile è distribuire, rendere disponibile e gestire l applicazione Tuttavia, spostare più funzionalità sul client potrebbe portare ad una percezione migliore del software da parte dell utente D. Rosaci J2EE 12

J2EE Server Communication D. Rosaci J2EE 13

Componenti Web Le componenti Web J2EE sono o servlet oppure pagine create con la tecnologia JSP (pagine JSP) Le Servlets sono classi Java che dinamicamente processano richieste e costruiscono risposte Le pagine JSP sono documenti testuali che sono eseguiti come le servlet ma che permettono un approccio più naturale per creare contenuti statici. Le pagine HTML e le applets sono assemblate con le componenti Web ma non sono considerate componenti Web dalle specifiche J2EE. Anche il Web tier, così come il client tier, può includere componenti JavaBeans per gestire l input dell utente a inviare quest input agli enterprise beans eseguiti nel business tier D. Rosaci J2EE 14

Componenti Web D. Rosaci J2EE 15

Componenti Business Il codice business, che deve risolvere problemi particolari quali elaborazioni bancarie, finanziarie, commerciali ecc. è incorporato negli enterprise beans eseguiti sul business tierr Un enterprise bean riceve dati dai programmi client, li processa (se necessario) e li invia all EIS tier per l immagazzinamento Un enterprise bean inoltre recupera dati immagazzinati, li processa (se necessario) e li invia al programma client D. Rosaci J2EE 16

Componenti Business Ci sono tre tipi di enterprise beans: session beans, entity beans, e message-driven beans. Un session bean rappresenta una conversazione transiente con un client. Quando il client finisce l esecuzione, il session bean ed i suoi dati vengono rimossi Differentemente, un entity bean rappresenta dati persistenti, immagazzinati in una riga di una tabella di database. Se il client termina o se il server cade, un servizio di sistema provvede a salvare i dati degli entity bean Un message-driven bean combina le caratteristiche di un session bean e di un Java Message Service (JMS) message listener, permettendo ad un componente business di ricevere in modo asincrono messaggi JMS D. Rosaci J2EE 17

Componenti Business D. Rosaci J2EE 18

Enterprise Information System Tier (EIS) L enterprise information system tier gestisce i software EIS e include alcuni enterprise infrastructure systems come l enterprise resource planning (ERP), il mainframe transaction processing, i database systems, e altri legacy information systems. Per esempio, le componenti application hanno bisogno di accedere all EIS per la connettività con i database D. Rosaci J2EE 19

Containers J2EE Le applicazioni thin-client multitiered sono generalmente difficili da scrivere: molti dettagli a basso livello da implementare (transaction handling,multithreading, resource pooling,etc) L architettura J2EE, component-based e platformindependent, facilita la scrittura delle applicazioni perché: La logica business è organizzata in componenti riusabili Il server J2EE fornisce servizi in forma di un container per ogni tipo di componente Il programmatore è quindi libero di concentrarsi sulla soluzione del problema da risolvere, mentre i servizi a basso livello sono forniti dal server D. Rosaci J2EE 20

Servizi Containers I Containers costituiscono l interfaccia tra il componente e le specifiche funzionalità che la piattaforma, a basso livello, fornisce al componente Prima che un Web component, un enterprise bean, o un application client component possano essere eseguiti, essi devono essere assemblati in un modulo J2EE e resi disponibili in un container Il processo di assemblamento implica il settaggio di ogni componente del container e dell applicazione J2EE I settaggi personalizzano i servizi forniti dalla piattaforma alle applicazioni D. Rosaci J2EE 21

Servizi personalizzabili Il security model di J2EE consente di configurare un Web component o un enterprise bean in modo che queste risorse siano accessibili solo da utenti autorizzati. Il transaction model consente di specificare relazioni tra i metodi che vengono utilizzati in una transazione, trattandoli come una singola unità. I JNDI lookup services forniscono un interfaccia unificata per il naming e i directory services. Il J2EE remote connectivity model gestisce le comunicazioni low-level tra client e enterprise beans. Dopo che un enterprise bean è stato creato, un client può invocare metodi su di esso come se fosse sulla stessa virtual machine D. Rosaci J2EE 22

Tipi di Container J2EE server: è la porzione runtime di un prodotto J2EE. Fornisce EJB e Web containers Enterprise JavaBeans (EJB) container: gestisce l esecuzione degli enterprise beans per le applicazioni J2EE. Gli Enterprise beans ed il loro container girano sul J2EE server. Web container: Gestisce l esecuzione delle pagine JSP e delle componenti servlets. Queste componenti Web e i loro container girano sul J2EE server. Application client container: gestisce l esecuzioni delle componenti application client, che insieme al loro container girano sul client. Applet container: gestisce l esecuzione delle apllets. Consiste in un browser Wen e in un Java Plug-in che girano insieme sul client. D. Rosaci J2EE 23

Tipi di Container D. Rosaci J2EE 24

Supporto ai Web services I Web services sono applicazioni enterprise web-based che usano XML-based protocolli di trasporto per scambiare dati con i client La piattaforma J2EE platform fornisce le API XML e i tool necessari per disegnare, sviluppare testare e rendere disponibili Web services capaci di interagire con client ed altri Web services anche appartenenti ad altre piattaforme non Java-based Per scrivere Web services e client che operano con essi non c è bisogno di far altro che passare parametri a procedure e ritornare risultati. La conversione dei dati in stream XML e i protocolli di comunicazione sono gestiti da J2EE La conversione dei dati in XML streams è ciò che rende i Web services e i client J2EE completamente interoperabili D. Rosaci J2EE 25

Applicazioni Packaging Un applicazione J2EE è distribuita atraverso un Enterprise Archive (EAR) file, ovvero uno standard Java Archive (JAR) file con estensione.ear extension. Usando EAR files e moduli è possibile assemblare un gran numero di differenti applicazioni J2EE che usano alcune componenti uguali. Basta impaccare vari moduli J2EE in J2EE EAR files. D. Rosaci J2EE 26

Ear Files Un EAR file contiene moduli J2EE e deployment descriptors, ovvero un documento xml che contiene i settings relativi al deployment Un modulo J2EE consiste di uno o più componenti dello stesso container type e di un component deployment descriptor di quel tipo. Abbiamo: Moduli EJB, disponibili in archivi JAR, che contengono i file delle classi per enterprise beans ed un EJB deployment descriptor. Moduli Web, che contengono servlet class files, JSP files, GIF e HTML files, e un web application deployment descriptor. I moduli Web sono forniti come archivi JAR con estensione.war. Moduli Application client, forniti come archivi JAR, che contengono files di classi e un application client deployment descriptor.. Moduli Resource adapter, che contengono tutte le interfacce Java, le librerie native, ed un resource adapter deployment descriptor.. D. Rosaci J2EE 27

Ear Files D. Rosaci J2EE 28

Le API J2EE: EJB Enterprise JavaBeans Technology Una componente Enterprise JavaBeans (EJB ), o enterprise bean, è un corpo di codice con campi e metodi che implementa moduli di logica business. Lo si può pensare come un mattone che può essere usato da solo o insieme ad altri EJB per eseguire logiche business logic su J2EE server. Tre tipi di enterprise beans: session beans, entity beans, e message-driven beans. Gli Enterprise beans spesso interagiscono con i database. Uno dei benefici degli entity beans è che non c è bisogno di scrivere codice SQL o di usare API JDBC direttamente per connettersi col database (questi dettagli sono gestiti dall EJB container) D. Rosaci J2EE 29

Le API J2EE: Servlets Java servlet technology: consente di definire classi servlet HTTP-specific. Una classe servlet class estende le capacità dei server che ospitano le applicazioni che sono accedute attraverso il modello di programmazione request-response. D. Rosaci J2EE 30

Le API J2EE: Java Server Pages La tecnologia JavaServer Pages (JSP) consente di inserire pezzi di codice servlet direttamente in documenti testuali. Una pagina JSP page è un documento testuale che contiene due tipi di dati: dati statici (espressi in HTML o XML) e elementi JSP, che determinano come la pagina costruisce dinamicamente il suo contenuto. D. Rosaci J2EE 31

Altre API J2EE Java Message Service (JMS) API: è uno standard per i messaggi che permette ai componenti delle applicazioni J2EE di mandare, ricevere e leggere messaggi. Permette la comunicazione distribuita, affidabile e asincrona. Java Transaction API (JTA): fornisce un interfaccia standard per gestire le transazioni. JavaMail API: usata per gestire messaggi email tra i componenti di un applicazione. JavaBeans Activation Framework (JAF) usata come supporto per JavaMail. e molte altre D. Rosaci J2EE 32

API J2EE: un quadro D. Rosaci J2EE 33

Sun Java System Application Server Platform Edition 8 E fully compliant con la piattaforma J2EE 1.4 Oltre alle API J2EE, mette a disposizione due tecnologie addizionali JavaServer Pages Standard Tag Library (JSTL), che incapsula funzionalità comuni a molte applicazioni JSP. Consente di usare un insieme standard di tag, invece di mescolare i vari tag delle numerose applicazioni sistenti in commercio JavaServer Faces: Uno user interface framework per costruire applicazioni Web D. Rosaci J2EE 34

J2EE Application Server: Running e Stopping Digitare da riga di comando: asadmin start-domain --verbose domain1 Un domain è un insieme di una o più istanze di Application Server gestite da un administration server. Associati ad un domain ci sono: Il numero di porta dell Application Server. Per default è 8080. Il numero di porta dell administration server's port number. Per default è 4848. user name and password dell amministratore. Questi valori vengono specificati in fase di installazione dell Application Server. Qui assumiamo di avere scelto le porte di default. Senza argomenti, il comando start-domain command inizializza il domain di default, ovvero domain1. Il flag --verbose fa sì che tutti gli output di logging e debugging appaiano sulla finestra di terminale o sul command prompt (e saranno salvati anche sul server log, memorizzato in <J2EE_HOME>/domains/domain1/logs/server.log). D. Rosaci J2EE 35

J2EE Application Server: Running e Stopping Oppure si può scegliere su Windows: Programmi->Sun Microsystems->J2EE 1.4 SDK-> Start Default Server Quando il server partirà, si vedrà in output: Domain domain1 started Per fermare l Application Server, aprire un terminal window o command prompt ed eseguire: asadmin stop-domain domain1 Oppure su Windows scegliere: Programmi-> Sun Microsystems-> J2EE 1.4 SDK-> Stop Default Server Quando il server sarà stato fermato verrà visualizzato: Domain domain1 stopped. D. Rosaci J2EE 36

J2EE Admin Console Per amministrare l Application Server e gestire utenti, risorse a applicazioni J2EE applications, si usa l Admin Console tool. Dopo aver fatto partire l Application Server, aprire il browser alla seguente URL: http://localhost:4848/asadmin/ On Windows, from the Start menu, choose Programs Sun Microsystems J2EE 1.4 SDK Admin Console Su Windows, scegliere: Programmi-> Sun Microsystems-> J2EE 1.4 SDK-> Admin Console D. Rosaci J2EE 37

J2EE deploytool Utility Per impaccare applicazioni J2EE, specificare deployment descriptors, e rendere disponibili applicazioni sull Application Server, si usa il deploytool utility. Per lanciare il deploytool, si apra un terminal window o command prompt e si esegua: deploytool Su Windows, si scelga: Programmi-> Sun Microsystems-> J2EE 1.4 SDK->Deploytool D. Rosaci J2EE 38

Lanciare il Derby Database Server Derby Database Server è un database server open source incluso con J2EE Application Server 8 Per lanciare il Derby database server: asadmin start-database Per fermarlo: asadmin stop-database D. Rosaci J2EE 39

Realizzare Applicazioni Web con J2EE Una applicazione Web è un estensione dinamica di un Web o di un Application Server. Esistono 2 tipi di applicazioni Web: Presentation-oriented: Una applicazione Web presentation-oriented genera pagine Web interattive contenenti vari tipi di linguaggi di markup (HTML, XML,etc.) e contenuto dinamico in risposta a richieste Service-oriented: Una applicazione Web serviceoriented implementa un endpoint di un web service. Le applicazioni presentation-oriented sono spesso client di applicazioni serviceoriented. D. Rosaci J2EE 40

Meccanismo di richiesta ad applicazioni Web Le componenti Web forniscono un estensione delle capacità del Web server. Le componenti Web sono o Java Servlet o pagine JSP Il client manda una richiesta HTTP ad un Web server Il Web server, che implementa Java Servlet e JavaServer Pages converte la richiesta in un oggetto HTTPServletRequest. Questo oggetto è inviato ad una componente Web, che può interagire con componenti JavaBeans o Database per generare contenuto dinamico. La componente Web può quindi generare un oggetto HTTPServletResponse oppure passare una richiesta ad un altra componente Web Il Web server converte l oggetto di risposta in una risposta HTTP che viene ritornata al client. D. Rosaci J2EE 41

Meccanismo di richiesta ad applicazioni Web D. Rosaci J2EE 42

Il ciclo di vita di un applicazione Web Un applicazione Web consiste di componenti Web, di file di risorse (es. immagini), di classsi e di librerie di supporto Il Web container fornisce molti servizi di supporto che aumentano le capacità delle componenti Web e ne rendono semplice lo sviluppo Il processo per creare, rendere disponibili (deploying) ed eseguire un applicazione Web può essere così riassunto: Sviluppare il codice della componente Web. Sviluppare il deployment descriptor dell applicazione. Compilare le componenti Web dell applicazione e le classi di supporto usate dalle componenti Opzionalmente, impaccare (packaging) l applicazione in una deployable unit. Deploy dell applicazione in un Web container. Accedere ad un URL che referenzi l applicazione Web. D. Rosaci J2EE 43

Esempio: il classico Hello World: Greetings D. Rosaci J2EE 44

Esempio: il classico Hello World: Response D. Rosaci J2EE 45

Esempio: il classico Hello World L applicazione Hello contiene due componenti Web che generano il messaggio di benvenuto e la risposta. Daremo due versioni dell applicazione: Versione JSP, chiamata hello1, in cui le componenti sono implementate per mezzo di due pagine JSP (index.jsp e response.jsp) Versione servlet chiamata hello2, in cui le componenti sono implementate per mezzo di due classi servlet (GreetingServlet.java e ResponseServlet.java). Installare il tutorial unzippando il file nella cartella principale di j2ee D. Rosaci J2EE 46

Moduli Web In J2EE, i componenti Web e le risorse statiche sono chiamate risorse Web Un modulo Web è la più piccola unità di risorse utilizzabile e deployable Oltre a componenti Web, un modulo Web può contenere anche: classi Server-side (database beans, shopping carts, etc.) Classi Client-side (applets e classi di utilità). D. Rosaci J2EE 47

Struttura di un modulo Web Struttura a directory. Il nodo top-level è il documento root dell applicazione Nel documento root vengono immagazzinate le pagine JSP, le classi e gli archivi client-side e le risorse statiche La root contiene una subdirectory chiamata /WEB-INF/, che contiene i seguenti files e directory: web.xml: Il deployment descriptor dell applicazione Tag library descriptor files classes: una directory che contiene classi server-side: servlets, utility classes, e componenti JavaBeans tags: una directory che contiene file di tag, implementazioni di tag libraries lib: una directory che contiene archivi JAR di librerie chiamate dalle classi serverside E possibile creare anche specifiche subdirectory di applicazioni sia nel document root che nella cartella /WEB-INF/classes/ directory. Un modulo Web può essere deployed o come una struttura di file o impaccato in un file JAR con estensione.war. In questo modo il modulo Web sarà portabile, e si potrà renderlo disponibile in qualunque Web container D. Rosaci J2EE 48

Deployment di un modulo Web Per rendere disponibile un WAR sull Application Server, il file deve anche contenere un runtime deployment descriptor, ovvero un xml file che contiene informazioni quali la root dell applicazione Wen e il mapping dei nomi portabili delle risorse dell applicazione alle risorse dell Application Server's. Questo deployment descriptor è chiamato sun-web.xml ed è contenuto in /WEB-INF/ insieme al deployment descriptor dell applicazione.. D. Rosaci J2EE 49

Struttura di un modulo Web D. Rosaci J2EE 50

Packaging di un modulo Web Es: modulo hello1 Aprire un terminal window, e andare in <INSTALL>/j2eetutorial14/examples/web/hello1/. Eseguire asant build. Saranno eseguite tutte le compilazioni necessarie e i file saranno copiati in <INSTALL>/j2eetutorial14/examples/web/hello1/build/. Per fare il package dell applicazione in un WAR chiamato hello1.war usando asant, eseguire: asant create-war Questo comando utilizza i file web.xml e sun-web.xml contenuti in <INSTALL>/j2eetutorial14/examples/web/hello1 ATTENZIONE: tutto funzionerà solo se nel file build.properties contenuto nella cartella COMMON del tutorial sarà stata settata la proprietà jeee.home al nome della cartella principale di jeee (es. c:/sun/jsdk) D. Rosaci J2EE 51

Deploy di un modulo Web D. Rosaci J2EE 52

Accedere ad un modulo Web deployed D. Rosaci J2EE 53