Università Politecnica delle Marche. Facoltà di Ingegneria. Corso di Laurea Triennale in Ingegneria. Informatica e dell Automazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università Politecnica delle Marche. Facoltà di Ingegneria. Corso di Laurea Triennale in Ingegneria. Informatica e dell Automazione"

Transcript

1 Università Politecnica delle Marche Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria Informatica e dell Automazione Progettazione e implementazione di un sistema web di comunicazione periodica relativa all'imposta di soggiorno per strutture ricettive sviluppato con tecnologie Java. Relatore: Prof. Aldo Franco Dragoni Tesi di: Renzi Enrico Anno Accademico 2011/2012

2 Indice INDICE I NTRODUZIONE CAPITOLO 1 Java EE 1.1 La piattaforma di sviluppo JavaEE 1.2 L Application Server 1.3 Servlet 1.4 JSP (JavaServer Pages) 1.5 JDBC (Java DataBase Connectivity) 1.6 JNDI (Java Naming and Directory Interfaces) 1.7 JavaBean ed Enterprise JavaBean (EJB) 1.8 Struttura delle directory CAPITOLO 2 - APACHE STRUTS 2.1 Design Pattern 2.2 Il paradigma Model 2: il design pattern MVC 2.3 ActionServlet 2.4 struts-config.xml 2.5 Action & DispatchAction 2.7 Tag Library 2.8 Hibernate CAPITOLO 3 PROGETTO 3.1 Analisi dei requisiti 3.2 Progettazione 3.3 Implementazione CONCLUSIONI BIBLIOGRAFIA RINGRAZIAMENTI

3 INTRODUZIONE Con il Decreto Legislativo 23/2011 è stata introdotta in Italia l'imposta di soggiorno, detta anche tassa di soggiorno, è un'imposta di carattere locale applicata a carico delle persone che alloggiano nelle strutture ricettive di territori classificati come località turistica o città d'arte. Per legge l'imposta è destinata a finanziare gli interventi in materia di turismo compresi quelli a sostegno delle strutture ricettive, la manutenzione, fruizione e recupero dei beni culturali ed ambientali, nonché i relativi servizi pubblici locali. Anche se è stata legiferata a livello nazionale è stato però deciso che siano i singoli Comuni a stabilire se e come applicarla, quindi ogni Comune delibera autonomamente sull ammontare del contributo, le esenzioni e il periodo di applicazione nel proprio territorio, con modalità definite dal regolamento comunale. Con questo progetto ho cercato di realizzare un software web-based che consentisse di gestire la procedura per il pagamento di tale imposta in modo informatizzato e sicuro, cercando di rispettare gli standard della tecnologia J2EE. In tale progetto mi sono occupato della parte riguardante la gestione delle strutture ricettive in tutte le sue parti, tralasciando la parte dedicata agli enti comunali.

4 Capitolo 1 Java EE CAPITOLO 1 Java EE In questo capitolo saranno introdotte le tecnologie dello standard Java EE (Java Enterprise Edition) che sono alla base dell applicazione web realizzata durante il tirocinio. Il progetto proposto dall azienda ha richiesto un approfondimento del funzionamento delle specifiche Java Servlet, JSP, JDBC, JNDI, JavaBean. 1.1 Java Enterprise Edition (Java EE) Java Platform, Enterprise Edition (Java EE) è una tecnologia sviluppata da Sun Microsystem per lo sviluppo di software enterprise. Il termine Enterprise sta per impresa, azienda, quindi è facile capire che è un prodotto nato per soddisfare le richieste di quest'ultime, in particolare parliamo di sicurezza, robustezza ed affidabilità in un contesto distribuito. Ed è infatti in un contesto distribuito che soprattutto diventa difficile garantire queste caratteristiche richieste dalle imprese, dove il progettista di sistemi informativi si trova a dover integrare sistemi diversi tra loro con standard differenti, dove spesso l'unico denominatore comune tra le componenti è il protocollo di rete TCP/IP. In loro aiuto Sun ha voluto fornire un ambiente di sviluppo completo di API e metodologie di approccio al problemsolving, sfruttando le caratteristiche che sono proprie della programmazione ad oggetti.

5 Capitolo 1 Java EE Di seguito vengono riportati i quattro strati che raccolgono le specifiche J2EE* : 1) il Client Tier, il quale presenta all utente finale i risultati dell elaborazione del server. Spesso è rappresentato da un browser web, ma può talvolta essere costituito da client specifici, in grado di interagire direttamente con il Business Tier o il Data Tier; 2) il Web Tier, in funzione nel server JEE (o semplicemente in un Web Server), comprende una serie di componenti che riguardano il lato front-end dell applicazione, mediando richieste e risposte del protocollo HTTP tra client e server; 3) il Business Tier, in funzione nel server JEE, dove viene implementata la logica di business dell applicazione, organizzando i dati e l accesso ad essi ed interagendo, ad esempio, con un DBMS. Nelle applicazioni più semplici viene accorpato al Web Tier. 4) L EIS Tier è spesso rappresentato da un DBMS (Database Management System) o più in generale da un EIS (Enterprise Information System). (*)J2EE: Java 2 Enterprise Edition è il nome con cui era conosciuta la piattaforma Java EE prima della versione 5

6 Capitolo 1 Java EE I principali vantaggi derivanti dall uso delle specifiche J2EE per lo sviluppo di applicazioni web sono fondamentalmente quattro: Scalabilità: è possibile aumentare le funzionalità di un software in continua evoluzione, grazie anche alla peculiare proprietà di distribuibilità della tecnologia Java. Portabilità: esigenza fondamentale dell attività di sviluppo software, permette di utilizzare una stessa applicazione JEE in Application Server diversi purché questi implementino le specifiche JEE. Efficienza: una strutturazione così intensa facilita la gestione di progetti anche molto complessi. Inoltre, grazie all utilizzo del multi-threading di Java è possibile

7 Capitolo 1 Java EE ottenere elevate performance per l interazione tra Client e Server Sicurezza: assicurata dall elevata stratificazione dell architettura e dalle proprietà intrinseche della tecnologia Java. Queste proprietà rappresentano le esigenze dell azienda che lavora con ambienti composti da tipologie di risorse differenti e distribuite, assicurando una buona robustezza software. Inoltre, attraverso il modello proposto, si rende facile l'accesso ai dati e la loro rappresentazione in diverse forme (un browser web, un applet, un dispositivo mobile, un sistema esterno, ecc). 1.2 L Application Server L Application Server implementando le specifiche J2EE, costituisce uno strato software che fornisce l'infrastruttura per la comunicazione tra tutte le componenti dell'applicazione ed integra funzionalità che ne facilitano il supporto permettendo all applicazione di funzionare correttamente in un contesto distribuito. Un Application Server è costituito da un insieme di moduli realizzati secondo standard ben definiti ed in questo modo riunisce diversi servizi orientati alla realizzazione di applicazioni multi-layer ed enterprise. I componenti Java gestiti sono Servlet, JSP (Java Server Pages), JDBC (Java DataBase Connectivity) e JNDI (Java Naming and Directory Interface). Un Application Server può fornire, inoltre, un ambiente detto EJB-Container (Enterprise JavaBeans Container) che contiene la logica di business dell applicazione. Elementi fondamentali di questo ambiente sono gli Enterprise JavaBeans, le cui specifiche sono state introdotte per la prima volta da IBM nel 1997 e successivamente accorpate nelle API standard di Sun Microsystem. Il compito di un EJB-container è quello di gestire sicurezza, dettagli di persistenza e integrità delle

8 Capitolo 1 Java EE transazioni, lasciando agli sviluppatori maggior concentrazione riguardo i problemi core business. Un Application Server è composto di solito da: contenitore di componenti server-side; gestore transazioni; gestione accesso a database; gestore accessi degli utenti e sicurezza; connection pool,caching,ecc. Nel mondo Java gli application server compatibili con le specifiche della Sun sono detti application server J2EE. La scelta di quale Application Server utilizzare dipende da numerosi fattori tra cui: Portabilità: uno degli aspetti fondamentali del successo di Java per gli application Server J2EE. Questa tecnologia permette di integrare componenti molto diverse tra loro, favorendo economie di scala. Tecnologie preesistenti: alcune software house dei principali DBMS in commercio propongono i propri Application Server per facilitare l integrazione tra le componenti, aumentando l efficienza. Costo delle licenze: aspetto importante anche se i costi delle licenze dell'application Server da solo sono ridotti rispetto ai costi del DBMS. Comunità di sviluppo e supporto: Application Server molto diffusi comportano una maggior quantità di informazioni in rete, con una maggior possibilità di reperire soluzioni. I principali Application Server disponibili sono: JBOSS: Recentemente acquistato da Red-Hat è uno dei più conosciuti Application

9 Capitolo 1 Java EE Server OpenSource. Apache Tomcat: funziona solo da Web-Container. Gestisce Java Servlet e Java Server Pages. Sun GlassFish Enterprise Server: essendo gestito direttamente da Sun implementa nel modo più completo e fedele le specifiche dello standard J2EE; le versioni seguono di pari passo i nuovi rilasci delle specifiche J2EE. BEA Weblogic: soluzione commerciale proposta da Oracle. IBM WebSphere.

10 Capitolo 1 Java EE 1.3 Servlet Le servlet sono particolari classi Java in grado di estendere funzionalità di un server web. Una Servlet gestisce le richieste del client, effettua elaborazioni e fornisce una

11 Capitolo 1 Java EE risposta al client, mediante il protocollo HTTP. I package javax.servlet e javax.servlet.http definiscono le interfacce e le classi necessarie all implementazione di servlet: queste devono necessariamente implementare l interfaccia Servlet che definisce quelli che sono i metodi del ciclo di vita della servlet stessa. La struttura di base di una Servlet è rappresentata di seguito: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Servlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { //Overriding del metodo doget public void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { //Overriding del metodo dopost

12 Capitolo 1 Java EE Ciclo di vita di una Servlet: 1. Un client invia la request per una servlet ad un web application server; 2. Se è la prima richiesta, il server istanzia e carica la servlet in questione avviando un thread che gestisca la comunicazione con la servlet stessa. Nel caso, invece, in cui la Servlet sia già stata caricata in precedenza allora verrà creato un ulteriore thread che sarà associato al nuovo client, senza la necessità di ricaricare ancora la Servlet; 3. Il server invia alla servlet la richiesta pervenutagli dal client ; 4. La servlet costruisce ed imposta la risposta (response) e la inoltra al server ; 5. Il server invia la risposta al client. La classe HttpServlet fornisce due metodi per la comunicazione: doget e dopost, che corrispondono alle due request piu comuni in http.

13 Capitolo 1 Java EE 1.4 JSP (JavaServer Pages) Tecnologia Java per lo sviluppo di pagine web che fornisce contenuti dinamici. JSP si basa su un insieme di tag attraverso cui vengono richiamate funzioni predefinite. 1.Il client richiede l accesso al file con esten-sione.jsp; 2.Il file.jsp viene processato dal server web che lo trasforma in un file Java; 3.Sempre il server web lo compila e lo esegue come una Servlet; I principali tag JSP sono: <% statement %> all'interno di questo tag viene scritto codice, per lo più Java, che verrà interprato dalla Java Virtual Machine; <%= espressione %> all'interno del quale viene calcolata l'espressione indicata e ne viene restituito il valore; <%! dichiarazione %> all'interno di questo tag sono presenti frammenti di codi-ce che vengono riportati al di fuori del metodo principale di gestione della richie-sta, ovvero a livello di classe; <%-- commento --%> quello che è racchiuso da questo tag rappresenta un commento al codice; <!-- commento --> questo rappresenta un commento HTML. Nella pagina JSP, i commenti HTML vengono comunque processati e fanno parte del flusso di rispo-sta. Sarà quindi possibile scrive un commento dinamico. Questa possibilità è sfruttata nelle applicazioni per scrivere codice JavaScript, che viene eseguito dal

14 Capitolo 1 Java EE Client, in modo dinamico a seconda dello stato dell'applicazione Web; <jsp:usebean > serve ad identificare (o eventualmente istanziare, in caso non esistesse) un oggetto per utilizzarlo nella pagina; <jsp:setproperty > permette di assegnare un valore ad una proprietà di un oggetto; <jsp:getproperty > serve ad ottenere il valore della proprietà di un oggetto; <jsp:include > esegue un altra pagina JSP e ne include l'output; <jsp:forward > inoltra il controllo di richiesta e risposta ad un'altra pagina JSP. Sono inoltre presenti tre differenti tipi di direttive per la traduzione e la compilazione di una pagina JSP, in particolare page che serve a specificare alcune caratteristiche della pagina JSP; taglib che serve ad importare una libreria di tag esterna (trattati in 2.8); include che serve ad importare, senza l esecuzione preventiva, una porzione di codice di un file. Un importante caratteristica degli oggetti di una pagina JSP si chiama Scope. Lo Scope di un oggetto rappresenta la visibilità che questo ha all interno dell applicazione web. Il seguente grafico riassume i possibili valori per lo Scope dal piu visibile al meno visibile (i piu utilizzati sono il Request ed il Session ):

15 Capitolo 1 Java EE 1.5 JDBC (Java DataBase Connectivity) JDBC rappresentano le API di J2EE per poter lavorare con database relazionali. JDBC sono modellati partendo dallo standard ODBC di Microsoft (il quale è basato su specifiche X/Open CLI). A differenza di OBDC, JDBC fornisce uno strato di accesso verso database completo e sopratutto completamente ad oggetti. Vi sono fondamentalmente quattro diversi tipi di Driver JDBC: JDBC-ODBC bridge: Questo tipo di driver implementano le specifiche traducendo le operazioni JDBC in operazioni specifiche ODBC per connettersi alla base di dati. Il problema principale di questi driver è caratterizzato dalle prestazioni. JDBC Native Bridge: Driver che traduce le chiamate JDBC in chiamate native per il DBMS specifico. Driver caratterizzati dalla scarsa portabilità. JDBC Net Bridge: Driver ad architettura multi-tier, si connette al DBMS attraverso un middleware(gateway, server di rete) connesso fisicamente al database, questo middleware ha funzioni di proxy.

16 Capitolo 1 Java EE Driver JDBC Java: Driver completamente scritto in Java e compatibile con il modello descritto da JDBC. 1.6 JNDI (Java Naming and Directory Interfaces) JNDI sono API che offrono servizi per identificare degli oggetti, o in generale, delle risorse con un nome, detto nome JNDI. Le risorse possono anche appartenere a Java Virtual Machine diverse. Le interfacce offrono nel loro insieme servizi di naming usando il paradigma Client/Server: il server offre i servizi JNDI e il client ne usufruisce per recuperare le risorse di cui ha bisogno. Il servizio è in esecuzione sull Application Server JEE, il quale deve implementare le interfacce SPI (Service Provider Interface). 1.7 RMI (Remote Method Invocation) La Remote Method Invocation (RMI) è il primo strumento nativo Java per la creazione di software distribuito. La sua introduzione, risalente alla versione 1.1 del linguaggio, è stata effettuata per risolvere il problema di far comunicare tra loro oggetti non residenti sulla stessa macchina. La tecnologie introdotta in RMI, inoltre, rappresenta la base del paradigma Java per oggetti distribuiti, e pertanto è utilizzata anche in altri elementi dell architettura J2EE, in particolare negli Enterprise JavaBeans. Nella versione 1.3 del linguaggio Java RMI è stato modificato al fine di integrare, come strumento di trasporto, il protocollo IIOP (Inter Internet ORB Protocol) nativo dell architettura CORBA e maggiormente aderente agli standard internazionali. Per questo motivo dalla versione 1.3 in poi RMI diventa RMI-IIOP.

17 Capitolo 1 Java EE 1.7 JavaBean ed Enterprise JavaBean (EJB) Queste componenti sono elementi importantissimi per un applicazione complessa che utilizzi tecnologie Java, non solo per quelle orientate al web. Un JavaBean ha la funzione principale di contenere e manipolare le informazioni ed è rappresentata da una classe Java con determinati requisiti: lo stato dell istanza deve avere proprietà accessibili solo all interno della classe stessa (visibilità privata); devono esservi metodi pubblici specifici per poter ottenere (getproperty()) e manipolare (setproperty(value)) le informazioni; il suo costruttore non deve avere argomenti; può comunicare i propri cambiamenti di stato con altre componenti mediante la generazione di eventi; l istanza deve essere serializzabile (implementando l interfaccia Serializable). I paradigmi principali su cui si basano Gli Enterprise JavaBean sono l'architettura distribuita e quello di componente (secondo un'ottica OO). Gli EJB implementano la logica di business dell applicazione. Le caratteristiche principali sono: Possono essere scritti solo in Java (massima portabilità); Presenza di un Application Server che contiene l'ejb e si occupa del suo ciclo vita; Netta distinzione tra interfacce (cosa fa) ed implementazione (come lo fa); Essendo componenti server-side e non oggetti, gli EJB sono microsistemi autonomi che espongono una sola interfaccia i cui metodi possono essere chiamati da qualsiasi client.

18 Capitolo 1 Java EE Vi sono tre tipi di EJB: Session EJB: Il loro nome deriva dal fatto che il loro ciclo vita è legato alla sessione di lavoro. Il suo scopo principale è quello di fornire un interfaccia semplice per tutti i client che richiedono di accedere a determinate informazioni; una strutturazione di questo tipo impedisce che modifiche alla struttura dati di controllo comportino correzioni alle applicazioni client. Gli EJB di sessione possono essere divisi in due categorie: 1. Session Statefull: sono quei bean il cui stato viene salvato fra una richiesta e l altra del client. 2. Session Stateless: sono quei bean che non mantengono alcun stato e vengono utilizzati per modellare quelle elaborazioni che si completano con una sola richiesta. Entity EJB: La loro caratteristica è fornire un meccanismo di persistenza di oggetti all'architettura J2EE. Dal momento che il più comune strumento di gestione di entità organizzate e persistenti è rappresentato dai database relazionali, possiamo affermare che gli Entity EJB rappresentano il meccanismo J2EE per virtualizzare l accesso ai database relazionali rendendoli il più possibile conformi allo standard della programmazione ad oggetti ( ad esempio un Entity Ejb diventa la rappresentazione ad oggetti di una tabella mentre una sua istanza diviene invece la rappresentazione di una tupla). Si mappa quindi nel modello ad oggetti il modello relazionale. Si occupano quindi della persistenza dei dati ovvero gestione della sincronizzazione tra i valori presenti sul database e la loro rappresentazione nel bean: ogni nuova istanza di un bean deve generare un nuovo record nella tabella, così come ad ogni modifica dei valori delle variabili del bean deve corrispondere una update dei dati sul database.

19 Capitolo 1 Java EE Nella specifica 2 dello standard EJB, la gestione della persistenza veniva suddivisa in due tipologie: 1. CMP (Container Managed Persistence): in questo caso è l'ejb-container che si occupa automaticamente della persistenza. Nella fase di configurazione si deve comunicare al container le corrispondenze tra bean ed attributi delle tabelle. Il container si occupa inoltre della estrazione ottimizzata di dati; 2. BMP (Bean Managed Persistence): il meccanismo di persistenza è delegato allo sviluppatore, che implementa nel bean il sistema di memorizzazione e recupero dei dati esplicitamente attraverso codice SQL. Dalla versione 3 delle specifiche EJB sono state introdotte nuove API per la gestione della persistenza, chiamate JavaPersistence API (JPA) che, mediante il servizio object-relational mapping (ORM)4, denotano il processo di mapping dei dati, fra gli oggetti e le tabelle di un database. Un esempio di persistence provider è rappresentato dal framework Hibernate. Message Driven EJB (MDB): I Message Driven Bean sono EJB a tutti gli effetti potendo quindi godere di tutti i servizi forniti dal container, ma sono dei trasportatori di messaggi quindi non ci sono interfacce da definire di alcun tipo c è un solo metodo da implementare onmessage(). I vincoli da seguire per onmessage() sono: il metodo deve essere pubblico (e non dichiarato final o static), il tipo di ritorno deve essere void, non deve lanciare eccezioni specifiche della applicazione (ma solo eventualmente quelle EJB), non deve gestire le transazioni di per sé (questo viene fatto settando il parametro corretto nel descriptor file). Session EJB e Message Driven EJB possono gestire le transazioni in due differenti

20 Capitolo 1 Java EE modi. Nel primo, la gestione è delegata all EJB-Container che si prende carico di iniziare una nuova transazione e concluderla con un commit o un rollback, tutto questo seguendo la configurazione del file ejb-jar.xml. Nel secondo modo, le transazioni sono gestite all interno del bean, e viene implementata direttamente dallo sviluppatore tramite l uso dell interfaccia javax.ejb.ejbcontext e i metodi begin(), commit() e rollback(), che permettono all EJB di comunicare con l Application Server. Implementazione di un Entity Bean CMP Struttura dei nomi dei file: Nome file Nome.java NomeHome.java NomeBean.java NomeRemote.java NomeRemoteHome.java Tipo di file Interfaccia Local Interfaccia localhome Sorgente del Bean vero e proprio Interfaccia Remote Interfaccia remotehome -L'interfaccia Local deve estendere javax.ejb.ejblocalobject; -Linterfaccia Remote deve estendere javax.ejb.ejbobject; -L'interfaccia localhome deve estendere javax.ejb.ejblocalhome; -L'interfaccia remotehome deve estendere javax.ejb.ejbhome; -Il Bean vero e proprio deve implementare EntityBean. Implementazione di un Session Bean L implementazione di un Session Bean prevede la realizzazione delle seguenti componenti:

21 Capitolo 1 Java EE La classe di Bean: specifica la logica di business, implementando l interfaccia javax.ejb.sessionbean; La interface Remote: deve estendere l interfaccia javax.ejb.ejbobject; La interface Home: deve estendere l interfaccia javax.ejb.ejbhome; Il deployment descriptor; Eventuali interface locali.

22 Capitolo 2 Apache Struts Capitolo 2 - Apache Struts In questo capitolo introcuciamo il framework utilizzato nella realizzazione del progetto : Struts (1.3.10) della Apache Software Foundation. 2.1 Design Pattern Un importante fase nella progettazione di applicazioni software è quella della scelta di un opportuna architettura, che definisce le linee guida allo sviluppo del progetto. Definire bene tale processo è utile sia per standardizzare il modello di sviluppo del progetto corrente, sia per le applicazioni future. L impiego di un adeguato pattern porta numerosi vantaggi tra cui: 1. Incrementa il riutilizzo del codice. 2. Facilita il lavoro in team e la pianificazione del progetto, dividendo quest ultimo in componenti indipendenti delegabili a gruppi di lavoro differenti. 3. Aiuta la manutenzione del codice, grazie anche all abbassamento della curva di apprendimento (per i progetti più complessi). 4. Aumenta la flessibilità delle applicazioni e incrementa della scalabilità. Per applicazioni semplici, il codice che gestisce i dati da memorizzare o da visualizzare può essere incluso direttamente nelle pagine JSP. Similmente è possibile delegare alle classi Servlet anche la parte di presentazione dei dati e la gestione delle richieste dell utente. Questo modello è definito dal paradigma Model 1, schematizzato in figura 2.1; è importante ribadire che tale modello può essere utilizzato solo nel caso in cui l applicazione possieda scarsa complessità di interazione tra client e server, funzioni limitate e poche pagine. Molti linguaggi HTML-based, come PHP e ASP, utilizzano unicamente questo

23 Capitolo 2 Apache Struts paradigma sfruttando la sua semplicità, in quanto, le tecnologie utilizzate richiedono minor conoscenze tecniche e minor tempo per il rilascio delle versioni. La scelta impropria di questo paradigma all interno dei propri progetti può portare, però, ad alcuni inconvenienti: Eccessivo codice di controllo all interno delle pagine JSP Eccessivo codice di presentazione all interno delle Servlet Scarsa efficienza complessiva 2.2 Model 2 : Il pattern architetturale MVC Il modello più utilizzato in ambito delle applicazioni orientate al web (ma non solo) è il pattern Model-View-Controller (MVC). Fu introdotto per la prima volta nella progettazione del linguaggio SmallTalk, nel Questo pattern permette una maggiore strutturazione del codice, con un aumento della manutenibilità software e una suddivisione dell applicazione in sottosistemi. Per comprendere la filosofia del modello, in figura 2.2, è riportata la schematizzazione delle tre componenti in cui si divide. Le componenti sono: la vista (view) dove viene gestita la presentazione dei dati. E rappresentata da tutto quel codice di presentazione che permette all utente3di operare le richieste. All interno di questo livello lavorano sia programmatori che grafici che curano la parte estetica della presentazione; il modello (model) che rappresenta e gestisce i dati, tipicamente persistenti su database; il controllore (controller) che veicola i flussi di interazione tra vista e modello, organizzando il comportamento dell applicazione e tracciando la navigazione con meccanismi che creano uno stato associato all utente. Nello specifico, intercetta le

24 Capitolo 2 Apache Struts richieste HTTP del client e traduce ogni singola richiesta in una specifica ope-razione per il model; in seguito può eseguire lui stesso l operazione oppure dele-gare il compito ad un'altra componente. In ultima, seleziona la corretta vista da mostrare al client ed inserisce, eventualmente, i risultati ottenuti. All interno di un architettura 2-tier, dove vi è interazione diretta con il database, è possibile E basato sulle tecnologie Servlet, JSP e XML e le principali componenti sono: ActionServlet RequestProcessor struts-config.xml Action ActionForm

25 Capitolo 2 Apache Struts ActionMessage 2.3 ActionServlet Le ActionServlet costituiscono il controller nel pattern MVC, è il componente principale che gestisce le richieste client e decide quale Action processerà la richiesta pervenuta. ActionServlet è una servlet ed anch'essa estende javax.servlet.http.httpservlet e quindi implementa init(), doget(), dopost() e destroy(). La versione standard dell'actionservlet viene configurata tramite I seguenti parametri, I quali vengono specificati nel deployment descriptor ( /WEB- INF/web.xml ) : config : una lista di percorsi relativi separati da virgola a file XML contenenti informazioni sulla configurazione ( nel nostro caso /WEB-INF/strutsconfig.xml ); configfactory : il nome della classe java ModuleConfigFactory usata per creare un'implementazione dell'interfaccia ModuleConfig; convertnull : modifica il comportamento di Struts 1.0 quando vengono popolati i forms, se posta a true i tipi numerici incapsulati come java.lang.integer vengono posti a null (invece che zero);

26 Capitolo 2 Apache Struts 2.4 struts-config.xml Come detto nel paragrafo precedente, il file di configurazione struts-config.xml, determina l azione da intraprendere durante la richiesta di una risorsa. E possibile però definire ulteriori elementi di configurazione: form-beans: serve a specificare le classi del tipo ActionForm che si occupano dell incapsulamento dei parametri provenienti da una richiesta, attraverso un form HTML. <form-beans> <form-bean name= form-autenticazione type= AuthenticationForm /> </form-beans> global-forward: si occupa di definire la corrispondenza tra un nome fittizio e un azione. In questo modo, anche una richiesta di tipo GET o POST non conterrà il nome effettivo della classe e i riferimenti globali a tale risorsa potranno essere gestiti tutti qui. <global-forward> <forward name= login path= AuthenticationAction > </globalforward> action-mappings: è la parte più importante del file di configurazione. Definisce la corrispondenza tra la richiesta HTTP e l Action corrispondente. All interno sono definiti degli elementi action con attributi diversi.

27 Capitolo 2 Apache Struts 2.5 Action & DispatchAction La classe Action (org.apache.struts.action.action) è un adattatore tra il contenuto della richiesta http e la corrispondente logica di business che dovrebbe essere eseguita per processare tale richiesta. Per ogni richiesta viene creata un'istanza e chiamato il metodo execute(). La classe astratta DispatchAction (org.apache.struts.action.dispatchaction) estende la classe Action ed anziché avere un singolo metodo execute() si ha un metodo per ciascuna azione logica semplicemente inserendo il parametro method nella request. 2.7 Struts Tag Library La tag library di Struts è costituita da cinque gruppi principali che sono: html, bean, logic, nested e template. Volendole utilizzare nelle nostre pagine jsp dobbiamo includerle, se ad esempio vogliamo usare le librerie html dobbiamo importale in questo modo : taglib uri="http://struts.apache.org/tags-html" prefix="html" %> Risulta utile utilizzare questo tag perchè ci permette di realizzare il front end in maniera più agile. Tutti i tag di questa libreria saranno richiamati utilizzando <html:nome_tag>

28 Capitolo 2 Apache Struts 2.8 Hibernate Hibernate è un software middleware per lo sviluppo di applicazioni Java che fornisce un servizio di Object-relational mapping (ORM), ovvero che gestisce la rappresentazione e il mantenimento su basi di dati relazionali di un sistema di oggetti Java.

29 Capitolo 3 - Progetto Durante il tirocinio che ho svolto presso l'azienda Omicron s.r.l. di Teramo, sono stato coinvolto nella progettazione di un'applicazione web oriented per la comunicazione periodica dell'imposta di soggiorno da parte delle strutture ricettive verso gli enti istituzionali di riscossione delle imposte. Tale piattaforma nella sua versione completa è costituita da due moduli software a se stanti che comunicano tra di loro: I. Un modulo dedicato alle strutture ricettive; II. Un modulo dedicato all'ufficio di riscossione imposte. Il secondo modulo prevede una serie di informazioni sensibili degli enti istituzionali a cui non sono potuto accedere essendo io un tirocinante, è per tale motivo che mi sono occupato della parte riguardante le sole strutture ricettive, pur prevedendo in fase di analisi un'espansione futura della mia applicazione, che sarà resa possibile e semplificata grazie alle tecniche dell'architettura distribuita della quale abbiamo parlato nei capitoli precedenti. 3.1 Analisi dei requisiti L'obiettivo che ci poniamo è quello di realizzare un'applicazione web oriented per la gestione dell'imposta di soggiorno da parte delle strutture ricettive. L'applicazione permetterà all'utente titolare di una struttura ricettiva non registrata di

Framework di Middleware. per Architetture Enterprise

Framework di Middleware. per Architetture Enterprise Framework di Middleware per Architetture Enterprise Corso di Ingegneria del Software A.A.2011-2012 Un po di storia 1998: Sun Microsystem comprende l importanza del World Wide Web come possibile interfaccia

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Corso Online. We Train Italy info@wetrainitaly.it

Corso Online. We Train Italy info@wetrainitaly.it Corso Online Programmatore Java New Edition We Train Italy info@wetrainitaly.it Programma Generale del Corso Programmatore Java New Edition 1. Introduzione al corso Java da 0 al web Presentazione del corso

Dettagli

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP EVOLUZIONE DEL WEB: PAGINE STATICHE vs PAGINE DINAMICHE Il Web è nato a supporto dei fisici, perché potessero scambiare tra loro le informazioni inerenti le loro sperimentazioni. L HTTP è nato inizialmente

Dettagli

Programmazione server-side: Java Servlet

Programmazione server-side: Java Servlet Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos

Dettagli

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

J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser. Il Pattern MVC J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser. Il famework Sun J2EE Component, Container e Connector:

Dettagli

Java Enterprise Edition - JEE. Autore: Agostino Sorbara ITIS M. M. Milano

Java Enterprise Edition - JEE. Autore: Agostino Sorbara ITIS M. M. Milano Java Enterprise Edition - JEE Autore: Agostino Sorbara ITIS M. M. Milano Indice Introduzione 2 Il modello Client Server. 2 La piattaforma di sviluppo JEE... 3 Application Server... 3 Servlet. 4 JSP (Java

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

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

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013 e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento

Dettagli

Applicazioni web con tecnologia Java

Applicazioni web con tecnologia Java Università degli Studi di Padova FACOLTÀ DI INGEGNERIA Applicazioni web con tecnologia Java Relazione finale di Tirocinio Laureando: Luca Falcon Relatore: Prof. G.Clemente Dipartimento di Ingegneria dell

Dettagli

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Ivan Scagnetto Dipartimento di Matematica e Informatica http://www.dimi.uniud.it/scagnett scagnett@dimi.uniud.it Laboratorio di Tecnologie Lato

Dettagli

Framework. Impianti Informatici. Web application - tecnologie

Framework. Impianti Informatici. Web application - tecnologie Framework Web application - tecnologie Web Application: tecnologie 2 Java-based (J2EE) Sviluppata inizialmente da Sun Cross-platform e open source Gestire direttamente le funzionalità dell applicazione

Dettagli

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Sviluppo di Applicazioni Web con Java 2 Enterprise Edition Ivan Scagnetto Dipartimento di Matematica e Informatica http://www.dimi.uniud.it/scagnett scagnett@dimi.uniud.it Laboratorio di Tecnologie Lato

Dettagli

Corso Analista Programmatore Java Corso Online Analista Programmatore Java

Corso Analista Programmatore Java Corso Online Analista Programmatore Java Corso Analista Programmatore Java Corso Online Analista Programmatore Java Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Java Tematiche Trattate Modulo Uno

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

Dettagli

Laboratorio di reti II: Java Server Pages

Laboratorio di reti II: Java Server Pages Laboratorio di reti II: Java Server Pages Stefano Brocchi brocchi@dsi.unifi.it 6 aprile, 2009 Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, 2009 1 / 34 JSP - Java Server Pages Le

Dettagli

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

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

SERVLET & JSP DISPENSE

SERVLET & JSP DISPENSE SERVLET & JSP DISPENSE PROGRAMMAZIONE LATO SERVER Un server deve rispondere alle richieste del client e permettere di visualizzare le pagine Web. Questo compito è svolto da un software ben definito, il

Dettagli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli UNIVERSITA DI FIRENZE Facoltà di Ingegneria Persistenza Applicazioni Enterprise Uso dei modelli 1 IL problema della persistenza APPLICAZIONE (programmi) (oggetti) DATI PERSISTENTI (file, record) (basi

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Un ambiente di esecuzione che gestisce o naming di oggetti, sicurezza, concorrenza, transazioni, persistenza, distribuzione oggetti (location

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS ed Applicazioni Motivazioni DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

Programmazione Java Avanzata Spring - JDBC

Programmazione Java Avanzata Spring - JDBC Programmazione Java Avanzata Spring - JDBC Ing. Gianluca Caminiti Riferimenti Spring http://www.springsource.org/ (scaricate il reference) Beginning Spring 2 - From Novice to Professional. APress. 2008

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet: e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino e : estensioni del Java API permettono di scrivere

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori

Dettagli

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

Dettagli

Introduzione al mondo della persistenza. Dott. Doria Mauro doriamauro@gmail.com

Introduzione al mondo della persistenza. Dott. Doria Mauro doriamauro@gmail.com Hibernate Introduzione al mondo della persistenza Dott. Doria Mauro doriamauro@gmail.com La questione della persistenza Il modo dei database è complesso e le tecniche e le tecnologie sono molte. Per anni

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli

UNIVERSITA DI FIRENZE Facoltà di Ingegneria. Persistenza Applicazioni Enterprise Uso dei modelli UNIVERSITA DI FIRENZE Facoltà di Ingegneria Persistenza Applicazioni Enterprise Uso dei modelli 1 IL problema della persistenza APPLICAZIONE (programmi) (oggetti) DATI PERSISTENTI (file, record) (basi

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Accesso ai Dati Ing. Giuseppe D'Aquì Testi Consigliati Eclipse In Action Core J2EE Patterns - DAO [http://java.sun.com/blueprints/corej2eepatterns/patterns/dataaccessobject.html]

Dettagli

Introduzione alla programmazione Http lato server in Java

Introduzione alla programmazione Http lato server in Java Introduzione alla programmazione Http lato server in Java Tito Flagella Laboratorio Applicazioni Internet - Università di Pisa Slide API Java Titleper il Protocollo Http Programmazione Client java.net.url

Dettagli

Corso analista programmatore Java. Corso analista programmatore Java Programma

Corso analista programmatore Java. Corso analista programmatore Java Programma Corso analista programmatore Java Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

POLITECNICO DI TORINO III Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica TESI DI LAUREA

POLITECNICO DI TORINO III Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica TESI DI LAUREA POLITECNICO DI TORINO III Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica TESI DI LAUREA Architetture Web basate su Enterprise JavaBeans in ambiente Open Source Relatori Ing. Fulvio Corno

Dettagli

CORSO DI PROGRAMMAZIONE JAVA

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

Dettagli

Laboratorio di sistemi Prima Web Application JSP [Java]

Laboratorio di sistemi Prima Web Application JSP [Java] Vogliamo scrivere la nostra prima web application che legga da tastiera il nostro nome e fornisca un messaggio di saluto. Per costruire la nostra applicazione creiamo con NetBeans un nuovo progetto. File

Dettagli

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

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

Architetture per le applicazioni web-based. Mario Cannataro Architetture per le applicazioni web-based Mario Cannataro 1 Sommario Internet e le applicazioni web-based Caratteristiche delle applicazioni web-based Soluzioni per l architettura three-tier Livello utente

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Struttura dell Applicazione versione 2.4 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

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 2 0 1 2 / 2 0 1 3

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 2 0 1 2 / 2 0 1 3 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 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell

Dettagli

APPENDICE A Servlet e Java Server Page

APPENDICE A Servlet e Java Server Page APPENDICE A Servlet e Java Server Page A.1 Cosa è una Servlet e come funziona Una servlet è un particolare tipo di applicazione Java, in grado di essere eseguita all'interno di un web server e di estenderne

Dettagli

Architetture Web parte 2

Architetture Web parte 2 Architetture Web parte 2 Programmazione in Ambienti Distribuiti A.A. 2004-05 Sessione Un insieme di richieste, provenienti dallo stesso browser e dirette allo stesso server, confinate in un dato lasso

Dettagli

Software per la gestione di musei di arte contemporanea1

Software per la gestione di musei di arte contemporanea1 Software per la gestione di musei di arte contemporanea1 Identificativo del progetto: CA Nome documento: System Design(SD) Identificativo del documento: 6 CA_SD_E1_R1 Data del documento: 21/05/2012 Prima

Dettagli

NETSHOP: un centro commerciale virtuale

NETSHOP: un centro commerciale virtuale Seconda Università degli Studi di Napoli Facoltà di Ingegneria Tesi di Laurea in Ingegneria Informatica NETSHOP: un centro commerciale virtuale Relatore: Candidato: Ch.mo Prof. Luigi Luongo Antonio d Acierno

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 8 Java Server Pages Java Server Pages è essenzialmente un modo più comodo per il programmatore dell applicazione web di scrivere una Servlet.

Dettagli

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni)

Progettazione di Sistemi Interattivi. Gli strati e la rete. Struttura e supporti all implementazione di applicazioni in rete (cenni) Progettazione di Sistemi Interattivi Struttura e supporti all implementazione di applicazioni in rete (cenni) Docente: Daniela Fogli Gli strati e la rete Stratificazione da un altro punto di vista: i calcolatori

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org

1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org 1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org Applicazione J2EE sul SAP WAS con SAP NWDS. Il SAP Web Application Server fornisce un framework integrato per lo sviluppo e l

Dettagli

MODEL-VIEW-CONTROLLER PROBLEMA

MODEL-VIEW-CONTROLLER PROBLEMA MODEL VIEW CONTROLLER DESIGN PATTERN MODEL-VIEW-CONTROLLER INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it

Dettagli

Architettura Tecnica i. Architettura Tecnica

Architettura Tecnica i. Architettura Tecnica i Architettura Tecnica ii Copyright 2005-2011 Link.it s.r.l. iii Indice 1 Scopo del documento 1 1.1 Abbreviazioni..................................................... 1 2 Overview 1 2.1 La PdD........................................................

Dettagli

Java Server Pages. Corso di Applicazioni Telematiche. A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico

Java Server Pages. Corso di Applicazioni Telematiche. A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico Java Server Pages Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Java Server Pages (JSP) Java Server

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE Framework per il Modello 2 it.unibas.pinco versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 27 Marzo 2012 Architetture Architetture Web Protocolli di Comunicazione Il Client Side

Dettagli

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo PROGETTAZIONE E SVILUPPO DI UN SIMULATORE ECONOMICO FISCALE Relatore: Studente: Paolo Merialdo Valerio Barbagallo Sommario il problema: gestione e ottimizzazione del bilancio piattaforma J2EE e framework

Dettagli

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 10 - J2EE 25/05/2015

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 10 - J2EE 25/05/2015 Web Container vs. EJB Container Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T - J2EE Home Page del corso: http://www-db.deis.unibo.it/courses/tw/ Versione

Dettagli

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet API Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet Interfaccia Java che modella il paradigma richiesta/elaborazione/risposta tipico delle applicazioni lato server Presuppone l esistenza

Dettagli

Svantaggi delle servlet

Svantaggi delle servlet Svantaggi delle servlet Le servlet sono la tecnologia principale di J2EE per comunicare con i browser dei client. Tuttavia ci sono degli inconvenienti per gli sviluppatori di applicazioni web: le servlet

Dettagli

Componenti Web: client-side e server-side

Componenti Web: client-side e server-side Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente

Dettagli

ALCAINI MARCO 667032 Modellazione concettuale di applicazioni Web basate su architettura MVC Indice

ALCAINI MARCO 667032 Modellazione concettuale di applicazioni Web basate su architettura MVC Indice INDICE ALCAINI MARCO 667032 Modellazione concettuale di applicazioni Web basate su architettura MVC Indice 1 Introduzione... 3 2 MVC Model 2 e Apache Jakarta Struts... 6 2.1 Modello MVC (Model View - Controller)...

Dettagli

Accesso Web a Data Base

Accesso Web a Data Base Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Accesso Web a Data Base Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei -

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 1 Aprile 2014 Architetture Web I Server Web e gli Standard della Comunicazione Il Server

Dettagli

Note pratiche sullo sviluppo di servlet (I)

Note pratiche sullo sviluppo di servlet (I) Note pratiche sullo sviluppo di servlet (I) Nel caso in cui sulla macchina locale (PC in laboratorio/pc a casa/portatile) ci sia a disposizione un ambiente Java (con compilatore) e un editor/ambiente di

Dettagli

Architetture Web: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

Dettagli

L architettura MVC (Model- View-Controller) Introduzione

L architettura MVC (Model- View-Controller) Introduzione L architettura MVC (Model- View-Controller) Introduzione Architettura MCV L architettura MVC è un insieme di regole per strutturare un sito-web dinamico. Queste regole complicano la struttura del sito,

Dettagli

Le tecnologie software Internet

Le tecnologie software Internet Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B B2_1 V1.7 Le tecnologie software Internet Standard aperti / Sun Java Il contenuto del documento è liberamente utilizzabile dagli studenti,

Dettagli

Università degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web L-A A.A. 2014 2015. Esercitazione 08 DAO e Hibernate

Università degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web L-A A.A. 2014 2015. Esercitazione 08 DAO e Hibernate Università degli Studi di Bologna Facoltà di Ingegneria Tecnologie Web L-A A.A. 2014 2015 Esercitazione 08 DAO e Hibernate Agenda Pattern DAO e framework Hibernate progetto d'esempio relativo alla gestione

Dettagli

Tener traccia del client

Tener traccia del client Tener traccia del client Raramente un applicazione web è costituita da una singola pagina (risorsa). E utile quindi tener traccia dei client che si collegano per rendere più semplice lo sviluppo dell applicazione.

Dettagli

Applicazione: OIL Online Interactive helpdesk

Applicazione: OIL Online Interactive helpdesk Riusabilità del software - Catalogo delle applicazioni: Gestione ICT Applicazione: OIL Online Interactive helpdesk Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi

Dettagli

Corso di Informatica Modulo T3 B2 - Database in rete

Corso di Informatica Modulo T3 B2 - Database in rete Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual

Dettagli

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet 1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet Controllo dell utente connesso al sito tramite JSP, Java Beans e Servlet. Ciò che ci proponiamo di fare è l accesso

Dettagli

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

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni Tomcat & Servlet Programmazione in Ambienti Distribuiti V 1.2 Marco Torchiano 2005 Contenuti Tomcat Applicazioni Web Struttura Sviluppo Deployment Servlet JSP Uso delle sessioni 1 Tomcat Tomcat è un contenitore

Dettagli

UNIVERSITÀ DEGLI STUDI DI TRENTO Facoltà di Scienze Matematiche, Fisiche e Naturali.

UNIVERSITÀ DEGLI STUDI DI TRENTO Facoltà di Scienze Matematiche, Fisiche e Naturali. UNIVERSITÀ DEGLI STUDI DI TRENTO Facoltà di Scienze Matematiche, Fisiche e Naturali. Corso di laurea triennale in Informatica Elaborato finale QUAESTIO: UN APPLICAZIONE WEB PER IL MONITORAGGIO DELLA SODDISFAZIONE

Dettagli

Politecnico di Milano

Politecnico di Milano 1 Politecnico di Milano Facoltà di Ingegneria dell Informazione Progetto di Ingegneria del Software 2: SWIMv2 Prof.ssa Mirandola Raffaella A.A 2012/2013 SWIMv2: Small World hypotesis Machine v2 Realizzato

Dettagli

Le tecnologie software Internet

Le tecnologie software Internet Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B2_1 V1.7 Le tecnologie software Internet Standard aperti / Sun Java Il contenuto del documento è liberamente utilizzabile

Dettagli

Database e reti. Piero Gallo Pasquale Sirsi

Database e reti. Piero Gallo Pasquale Sirsi Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente

Dettagli

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Applicazioni web Parte 2 JSP Michele Tomaiuolo tomamic@ce.unipr.it Sommario JSP: sintassi di

Dettagli

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

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java

Dettagli

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

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

Flavio De Paoli depaoli@disco.unimib.it

Flavio De Paoli depaoli@disco.unimib.it Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato

Dettagli

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Laurea Magistrale in Ingegneria Informatica Tesi di Laurea Sistema informativo per la gestione dei processi

Dettagli

Applicazione: GAS - Gestione AcceSsi

Applicazione: GAS - Gestione AcceSsi Riusabilità del software - Catalogo delle applicazioni Gestione ICT Applicazione: GAS - Gestione AcceSsi Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei sistemi informativi Nome

Dettagli

Configurazione di base. Dott. Doria Mauro doriamauro@gmail.com

Configurazione di base. Dott. Doria Mauro doriamauro@gmail.com Hibernate Configurazione di base Dott. Doria Mauro doriamauro@gmail.com I file di configurazione Hibernate prevede l uso dei file di configurazione formato XML. I principali file sono: Un file di configurazione

Dettagli

DD - Design Document

DD - Design Document Politecnico di Milano Progetto di Ingegneria del Software 2 DD - Design Document Autori: Claudia Foglieni Giovanni Matteo Fumarola Massimo Maggi Professori: Elisabetta Di Nitto Raffaela Mirandola 1 gennaio

Dettagli

Session tracking Session tracking HTTP: è stateless, cioè non permette di associare una sequenza di richieste ad un dato utente. Ciò vuol dire che, in generale, se un browser richiede una specifica pagina

Dettagli

Applicazione: SIPER Servizi In linea per il PERsonale

Applicazione: SIPER Servizi In linea per il PERsonale Riusabilità del software - Catalogo delle applicazioni Gestione Personale Applicazione: SIPER Servizi In linea per il PERsonale Amministrazione: Consiglio Nazionale delle Ricerche (CNR) Responsabile dei

Dettagli

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz

Breve introduzione allo sviluppo WEB. a cura di Ciro Attanasio - ciro.attanasio@email.cz Breve introduzione allo sviluppo WEB a cura di Ciro Attanasio - ciro.attanasio@email.cz Partiamo (1 di 1) Come funziona il WEB e quali tecnologie lo compongono Cos è un Client (1 di 2) Un client, in informatica,

Dettagli

JUG Ancona Italy Spring Framework

JUG Ancona Italy Spring Framework JUG Ancona Italy Spring Framework Andrea Del Bene Jug Marche Spring: perché e nato e perché lo voglio imparare? Quando si decide di investire in un nuova tecnologia è indispensabile capire il valore aggiunto

Dettagli

Strutture di accesso ai dati

Strutture di accesso ai dati Strutture di accesso ai dati 1 A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Gestore dei metodi di accesso 2 E il modulo del DBMS che trasforma il piano di esecuzione

Dettagli

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

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA. Elaborato di Tecnologie del Software per Internet UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTA DI INGEGNERIA DIPARTIMENTO DI SISTEMI E INFORMATICA Elaborato di Tecnologie del Software per Internet JMSWEB 2 SISTEMA PER LO SCAMBIO DI MESSAGGI TRA APPLICAZIONI

Dettagli

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke Capitoli 8 e 9 Applicazioni tradizionali Applicazioni Internet SQL embedded SQL nel codice applicativo I comandi SQL possono essere chiamati dall interno di un programma in un linguaggio ospite (ad esempio

Dettagli