UNIVERSITÀ DEGLI STUDI DI PARMA REALIZZAZIONE DI UNO STRUMENTO PER LA GESTIONE DI BASI DI DATI IN APPLICAZIONI WEB

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DEGLI STUDI DI PARMA REALIZZAZIONE DI UNO STRUMENTO PER LA GESTIONE DI BASI DI DATI IN APPLICAZIONI WEB"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI PARMA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA REALIZZAZIONE DI UNO STRUMENTO PER LA GESTIONE DI BASI DI DATI IN APPLICAZIONI WEB Relatore Chiar.mo Prof. Ing. A. POGGI Correlatore Dott. Ing. F. BERGENTI Tesi di Laurea di PAOLO ZANI

2 A Francesca

3 Ringraziamenti Innanzitutto vorrei ringraziare il professor Agostino Poggi per avermi dato l opportunità di avvicinarmi al mondo del Java ed in particolare alla programmazione di applicazioni web; un ringraziamento va anche all ing. Federico Bergenti, per la grande disponibilità dimostrata e i tanti consigli che mi hanno permesso di portare a termine il mio lavoro. Nulla comunque sarebbe stato possibile senza l aiuto delle tante persone che in questi mesi mi sono state vicine; in particolare devo menzionare Francesca Ambroggi per il tempo, l attenzione e i mezzi tecnici messi a mia disposizione durante tutto questo periodo, Paolo Pini per avermi assistito nel duro lavoro di revisione linguistica, Paolo Baroncini e Dario Lodi Rizzini per l aiuto che mi hanno dato nel a venire a capo di problemi di configurazione a prima vista insolubili, e, naturalmente, Marco e Chiara, che hanno sempre creduto in me, incoraggiandomi a continuare anche nei momenti di più grossa difficoltà. i

4 Indice Prefazione vi 1 Strumenti per applicazioni web in Java JSTL JavaServer Pages Standard Tag Library 21 3 Miglioramenti alla gestione dei database via JSTL.. 53 Conclusioni 66 Glossario.68 Bibliografia.70 ii

5 Indice delle Figure 1.1 Esecuzione di una pagina JSP Ciclo di vita di una Servlet generata a partire da una pagina JSP Architettura JSP Modello Architettura JSP Modello 2 (MVC) Ambiti di visibilità delle variabili accessibili da una pagina JSP Forwarding delle Request Dinamica del tag include Schema risorse i18n...33 iii

6 Indice delle Tabelle 2.1 EL-based Tag Libraries RT-based Tag Libraries Tag general-purpose Tag condizionali Tag iteratori Tag di supporto agli URL Tag per l internazionalizzazione (i18n) Tag per la formattazione Tag XML di base Tag XML per il controllo di flusso Tag XML per la trasformazione Parametri di <sql:query> Parametri di <sql:update> Parametri di <sql:transaction> Parametri di <sql:setdatasource> Parametri di <sql:param> Parametri di <sql:dateparam>.52 iv

7 Indice dei Listati 2.1 Utilizzo dell EL all interno di un attributo Query su un DB e creazione di una tabella contenente il risultato Transazione contenente aggiornamenti multipli del contenuto un DB Esempio delle modifiche apportate a sql.tld Esempio delle modifiche apportate a sql-rt.tld Esempio di utilizzo del tag <sql:view>...63 v

8 Prefazione Negli ultimi anni abbiamo potuto assistere ad una sempre più rapida espansione delle reti di calcolatori, ed in particolare di Internet: il numero di servizi offerti dal web è in costante crescita, così come lo è la loro complessità. In principio, la maggior parte delle operazioni consisteva nello scambio di posta elettronica (utilizzando protocolli come SMTP e POP3), nel trasferimento di file (attraverso FTP) o nella presentazione di informazioni attraverso pagine HTML statiche, che permettevano, comunque, solo interazioni molto limitate. Col passare del tempo, però, si è iniziata a sentire la necessità di fornire agli utenti la possibilità di avere accesso a contenuti di tipo più dinamico e personalizzato, come quelli offerti, ad esempio, da portali o siti di e-commerce. Per raggiungere questo obiettivo sono state progressivamente sviluppate diverse tecnologie, come ad esempio CGI e Servlet, che permettono ad un server di elaborare le richieste del client e di utilizzare le proprie risorse (dati, capacità di calcolo ecc ) per fornire una risposta adeguata. Uno dei problemi che si presentano quando si vuole realizzare servizi di tipo dinamico è quello di riuscire a separare in modo efficace la fase dell elaborazione dei dati da quella della loro presentazione: la realizzazione un interfaccia userfriendly e dall aspetto gradevole ha assunto oramai una importanza tale da richiedere, specialmente nel caso di prodotti di tipo commerciale, l intervento di personale qualificato, le cui competenze, però, potrebbero esulare da quelle di un programmatore; allo stesso modo, non è detto che chi scrive le routine che si preoccupano di elaborare le richieste (ad esempio accedendo ad un DB) abbia le capacità necessarie a creare un sistema fruibile ed intuitivo anche per un utenza non specializzata. vi

9 Una tecnologia che consente di realizzare questa separazione in modo abbastanza semplice ed intuitivo è quella delle JSP (JavaServer Pages), che permettono di estendere le possibilità offerte da HTML attraverso l introduzione di tutta una serie di nuovi tag che mettono a disposizione del designer di pagine web gli strumenti necessari a realizzare siti dinamici con un procedimento del tutto simile a quello utilizzato per la creazione di quelli statici. I tag JSP hanno l aspetto di elementi XML, e incapsulano la logica necessaria alla generazione del contenuto delle pagine; l elaborazione, inoltre, può essere svolta da risorse messe a disposizione dal server (come ad esempio dei JavaBean ), a cui i tag presenti sulla pagina accedono. E del tutto evidente che il processo di realizzazione risulta molto velocizzato, e anche la manutenzione diventa più semplice. Un altro vantaggio delle JSP è che il numero di tag disponibile può essere aumentato a piacere, semplicemente scrivendo delle classi Java che ne implementino il comportamento secondo le specifiche fornite da Sun Microsystems, Inc. ; in questo modo risulta possibile soddisfare anche le esigenze di design più particolari o creare strumenti di sviluppo sempre più rapidi e semplici da usare. Basandosi su queste specifiche è stata realizzata una libreria di tag (JSTL, JavaServer Pages Standard Tag Library) che implementa tutta una serie di funzionalità comunemente richieste durante il processo di sviluppo di un sito web. Tra le caratteristiche più sfruttate c è la possibilità di utilizzare dei tag per accedere a database relazionali, presenti ormai in una grandissima varietà di situazioni (e.g. transazioni commerciali, gestione di clienti o personale, operazioni bancarie, controllo magazzini); il sistema impiegato per comunicare coi database presenta però una caratteristica particolare: i risultati delle query vengono restituiti all interno di un oggetto Java. Questo fatto risulta vantaggioso quando si vogliono compiere ulteriori elaborazioni sui dati restituiti dal database, ma appesantisce in modo notevole il codice all interno della pagina JSP quando quello che si desidera è la semplice visualizzazione attraverso una tabella: in questo caso, infatti, oltre ai tag necessari per realizzare la query, ne servono altri per creare un ciclo che scandisca in modo vii

10 progressivo i risultati e li mandi in output con la formattazione desiderata; gli stessi risultati, poi, potrebbero essere in numero tale da rendere molto scomoda la loro consultazione, se mostrati tutti assieme. Queste considerazioni hanno portato all idea di sviluppare un estensione ai tag di gestione delle transazioni sql presenti all interno della JSTL che potesse permettere di realizzare con una sintassi semplice l esecuzione di query e la visualizzazione dei risultati mediante tabelle formattate secondo le necessità del designer della pagina web. Attraverso il nuovo tag sarà possibile specificare come parametri le caratteristiche che la tabella che verrà disegnata dovrà avere (e.g. le dimensioni del bordo e il foglio di stile da utilizzare per il rendering), e quanti saranno i risultati visualizzabili al massimo contemporaneamente: i dati risulteranno quindi divisi in pagine, attraverso cui si potrà navigare grazie ai bottoni visualizzati al di sotto di ogni tabella. Grazie a questo sistema, quindi, non sarà più necessario preoccuparsi di come realizzare l output grafico, ma solo di quale aspetto la pagina finale debba avere e quali siano i dati in essa contenuti. viii

11 Strumenti per applicazioni web in Java 1 Capitolo 1 Strumenti per applicazioni web in Java Questo capitolo tratta di come sia possibile realizzare applicazioni web dinamiche utilizzando tecnologie basate sul linguaggio Java. 1.1 Servlet D a quando si è cominciato ad utilizzare il Web per fornire servizi, i provider hanno avvertito la necessità di inserire, nei loro siti, contenuto dinamico, giacché soltanto in questo modo risulta possibile realizzare applicazioni di una certa complessità; si possono, infatti, presentare diverse situazioni in cui una pagina statica non risulta sufficiente: 1. La pagina web è basata su dati inseriti dall utente ad esempio, le pagine dei risultati nei motori di ricerca, o la pagina di conferma delle ordinazioni in un negozio on-line sono determinate dalle richieste dell utente; 2. La pagina web è basata su dati che cambiano di frequente come le previsioni del tempo o le ultime notizie, per cui si può costruire una pagina aggiornata in tempo reale;

12 Strumenti per applicazioni web in Java 2 3. La pagina web viene costruita basandosi su DB o altre risorse residenti sul server ad esempio, in un sito di e-commerce si potrebbe voler mostrare le disponibilità e i prezzi dei prodotti presenti in magazzino. Uno dei primi tentativi in questa direzione sono state le applet, che utilizzavano la piattaforma client per compiere le elaborazioni richieste; nel contempo, si è cercato un modo di utilizzare i server stessi per ottenere i risultati desiderati: sono nati, così, gli script CGI (Common Gateway Interface), che, pur essendo tuttora largamente utilizzati, hanno un numero considerevole di limiti e svantaggi. La tecnologia Java Servlet si propone di superare i problemi emersi finora e di fornire agli utenti, in maniera portabile, contenuti dinamici e personalizzati. Le Servlet sono programmi che girano su di un server web, agendo come strato intermedio tra la request proveniente da un browser o un altro client http e i database o le applicazioni presenti sul server http. I loro compiti sono: 1. Leggere i dati inviati dall utente di solito questi sono inseriti in un form all interno di una pagina web, ma potrebbero anche provenire da un applet Java o da un qualsiasi altro programma che funga da client HTTP; 2. Controllare ogni altra informazione sulla richiesta che sia stata eventualmente inserita nella request HTTP questi dati aggiuntivi possono comprendere dettagli sulle capacità del browser, cookie, il nome dell host su cui è in esecuzione il client e così via; 3. Generare i risultati questo processo potrebbe richiedere di connettersi ad un database, eseguire una chiamata RMI o CORBA, eseguire un applicazione o generare direttamente una risposta; 4. Inserire i risultati generati all interno di un documento nella maggior parte dei casi questo comporta la creazione di una pagina HTML a partire dai risultati; 5. Settare i parametri opportuni all interno della response HTTP questo significa indicare al browser il tipo di documento restituito, settare i cookie o altri parametri e operazioni del genere; 2

13 Strumenti per applicazioni web in Java 3 6. Inviare il documento al client il contenuto restituito al client può essere in forma di testo (HTML), binario (come immagini JPEG) o persino compresso in qualche formato come gzip Confronto tra Servlet e CGI Le Servlet Java risultano più efficienti, facili da usare, potenti, portabili, sicure ed economiche che i CGI tradizionali e tecnologie simili. 1. Efficienza Con i CGI tradizionali viene creato un nuovo processo per ogni request HTTP ricevuta. Se il programma CGI in sé è relativamente corto il tempo necessario a farlo partire può diventare maggiore di quello necessario all esecuzione. Con le servlet la JVM resta in esecuzione e gestisce ogni richiesta utilizzando un thread Java, molto meno pesante per il sistema di un processo. Infine, quando un programma CGI finisce di servire una richiesta questo termina, rendendo difficile tener traccia delle elaborazioni svolte, lasciare le connessioni ai database aperte e in generale effettuare tutte quelle ottimizzazioni che si basano su dati persistenti; le Servlet, invece, restano in memoria anche dopo aver completato la risposta, rendendo possibile senza difficoltà lo scambio di dati complessi a piacere tra una richiesta e l altra. 2. Facilità d uso Le Servlet contengono tutta una serie di infrastrutture che permettono di analizzare e decodificare i dati contenuti nei form HTML, leggere e settare header HTTP, manipolare cookie, tener traccia di sessioni e svolgere altri compiti simili, il tutto in modo automatico. 3. Potenza Le Servlet offrono diverse caratteristiche che sono difficili o impossibili da ottenere con i CGI tradizionali: sono, infatti, in grado di comunicare direttamente col server su cui risiedono (cosa che i CGI sono in grado di fare soltanto utilizzando API specifiche quando queste siano previste dal 3

14 Strumenti per applicazioni web in Java 4 server stesso), possono condividere dati (come informazioni sulle connessioni a database esistenti) e mantenere informazioni da una richiesta all altra, semplificando la gestione delle sessioni e permettendo di mantenere una cache delle elaborazioni svolte. 4. Portabilità Le Servlet sono scritte in linguaggio Java e seguono una API standard; di conseguenza, una servlet può, in teoria, girare senza alcuna modifica su un qualsiasi server che le supporti in modo diretto oppure attraverso dei plugin. Le Servlet sono diventate parte della J2EE, e quindi il supporto per questa tecnologia sta diventando sempre più ampio. 5. Sicurezza Una delle maggiori vulnerabilità dei CGI tradizionali deriva dal fatto che questi vengono spesso eseguiti all interno di terminali di sistemi operativi, obbligando gli sviluppatori a prestare molta attenzione al trattamento di caratteri particolari, che potrebbero essere interpretati come comandi; questi programmi, inoltre, sono a volte scritti in linguaggi (come C e C++) che non eseguono controlli automatici sulle dimensioni di vettori o stringhe, rendendo possibili attacchi basati su buffer overflow. Le Servlet non presentano questi problemi, dato che non utilizzano terminali per eseguire chiamate di sistema e, essendo scritte in Java, si avvantaggiano di tutti i meccanismi di gestione e protezione della memoria propri di questo linguaggio di programmazione. 6. Economicità Sono disponibili diversi server web gratuiti per siti con un carico di lavoro previsto relativamente basso, e, anche nel caso di prodotti commerciali di un certo calibro, aggiungere il supporto per l utilizzo delle Servlet (ove non sia già previsto) richiede un investimento supplementare minimo. 4

15 Strumenti per applicazioni web in Java JavaServer Pages La tecnologia JavaServer Pages permette di creare con facilità contenuti web che comprendano sia componenti statici che dinamici. Le JSP mettono a disposizione tutte le potenzialità della tecnologia Java Servlet fornendo nel contempo un approccio più naturale alla creazione delle parti di contenuto statiche. Le caratteristiche principali di questa tecnologia sono: 1. un linguaggio per sviluppare pagine JSP, che sono documenti di testo che descrivono come elaborare una request e costruire una response; 2. un Expression Language per accedere ad oggetti sul lato server; 3. meccanismi per definire estensioni al linguaggio JSP Una pagina JSP tipicamente risulta composta da componenti HTML/XML statici, tag JSP e, opzionalmente, parti di codice scritte in Java chiamate scriptlet. Le specifiche che definiscono JSP ne fanno un estensione standard costruita sulla base dell API prevista per le Servlet, ereditandone tutti i vantaggi. Ci sono tuttavia delle considerevoli differenze tra queste due tecnologie: a differenza delle Servlet, le JSP non richiedono grosse capacità di programmazione e si rivolgono quindi ad un pubblico più vasto, comprendente oltre agli sviluppatori anche i designer di pagine web, che quindi possono assumere un ruolo di maggiore importanza nel processo di sviluppo. Un altro vantaggio delle JSP è la separazione della presentazione dal contenuto resa ancora più semplice dalla tecnologia, dal momento che questa si basa su componenti riutilizzabili come i JavaBeans Confronto tra JSP e Servlet Con le Servlet la logica per la generazione del contenuto dinamico è parte della servlet stessa ed è intimamente legato ai modelli responsabili per la generazione dell interfaccia utente, così anche un cambiamento minimo all interfaccia richiede tipicamente di ricompilare il codice. Con le JSP invece la logica necessaria a generare il contenuto dinamico viene tenuta separata dai modelli di presentazione, 5

16 Strumenti per applicazioni web in Java 6 incapsulandola all interno di componenti JavaBeans che vengono poi creati e utilizzati dalla pagina JSP mediante tag speciali e scriptlet. Quando il designer cambia in qualche modo il modello per la presentazione la pagina viene ricompilata in modo automatico e ricaricata all interno del server web dal motore JSP. Questa tecnologia permette inoltre di trasferire le pagine tra server e piattaforme diverse senza richiedere modifiche. Il contenuto dei modelli statici che compongono una pagina JSP possono essere di qualunque tipo; questo permette di realizzare applicazioni per i più svariati campi di impiego, da pagine scritte in linguaggi che vanno dall HTML/DHTML al WML, fino all XML impiegato in certe soluzioni commerciali Confronto tra JSP e ASP ASP (Active Server Pages) è una tecnologia concorrente proposta da Microsoft ; nonostante le caratteristiche offerte da JSP e ASP possano apparire simili, tra le due esistono notevoli differenze. JSP può girare su tutti i server web più popolari, come Apache, Netscape ed anche IIS, mentre ASP è legata all ultimo (o a prodotti specifici realizzati da terze parti); JSP è indipendente dalla piattaforma su cui gira, purché questa fornisca una JVM, invece ASP ha bisogno del supporto di Windows e il porting su altri sistemi risulta molto difficoltoso; JSP utilizza componenti riutilizzabili e multipiattaforma come JavaBeans, Enterprise JavaBeans e tag library personalizzate, ASP si basa sul modello di componenti COM tipico di Win32; JSP utilizza per lo scripting Java e JavaScript, ASP VBScript e JScript; per quanto riguarda la sicurezza, JSP si basa sul modello Java, mentre il suo concorrente utilizza l architettura prevista per Windows NT; per l accesso ai database il primo utilizza JDBC mentre il secondo ADO (Active Data Object); JSP infine risulta estensibile mediante l utilizzo di tag library personalizzate, ASP no Confronto tra JSP e JavaScript JavaScript, che è completamente distinto dal linguaggio di programmazione Java, viene di norma utilizzato per generare contenuto HTML direttamente sul 6

17 Strumenti per applicazioni web in Java 7 Figura 1.1. Esecuzione di una pagina JSP client, costruendo parti della pagina mentre il browser la sta caricando. Questa è una caratteristica utile, ma permette di affrontare unicamente situazioni in cui le informazioni dinamiche sono basate soltanto sull ambiente del client. A parte i cookie, i dati inseriti nella request HTTP non sono disponibili alle routine JavaScript e, dato che questo linguaggio non prevede strumenti per la programmazione di rete, il codice presente sul client non può accedere a risorse presenti sul server come database, cataloghi, listini prezzi e simili. JavaScript può essere utilizzato anche sul lato server (come per Netscape e IIS) Architettura JSP Lo scopo delle JSP è di fornire un metodo dichiarativo e incentrato sulla presentazione per sviluppare delle servlet. Come è stato già evidenziato le JSP sono un estensione basata sull API Servlet, è quindi naturale che queste due tecnologie abbiano molto in comune. Tipicamente le pagine JSP sono soggette ad una fase di traduzione, in seguito alla quale acquistano la capacità di elaborare le richieste che gli vengono sottoposte. La compilazione viene effettuata soltanto una volta (a meno che la 7

18 Strumenti per applicazioni web in Java 8 Figura 1.2. Ciclo di vita di una Servlet generata a partire da una pagina JSP pagina stessa non venga modificata); se la pagina non contiene errori il risultato sarà una classe Java, che implementa l interfaccia Servlet, rappresentante la pagina JSP di partenza. La fase di traduzione viene di solito portata a termine dal motore JSP stesso la prima volta che riceve una richiesta indirizzata alla pagina; le specifiche JSP 1.1 prevedono comunque che i file contenenti le classi già compilate possano essere generati anche in precedenza, in modo da ridurre i tempi morti iniziali. Il file compilato finale che implementa la pagina JSP estende la classe HttpJspBase, che a sua volta implementa l interfaccia Servlet; all interno di esso è presente il metodo _jspservice(), che è responsabile della formulazione di una risposta alle richieste inviate dal client. Gli sviluppatori inoltre possono indicare il comportamento che il sistema dovrà avere nelle fasi di avvio e arresto attraverso i metodi jspinit() e jspdestroy(), come si può vedere nella figura 1.2. Una volta che la classe è stata caricata all interno del contenitore che si occuperà della sua esecuzione, il metodo _jspservice() può elaborare le richieste 8

19 Strumenti per applicazioni web in Java 9 Figura 1.3. Architettura JSP Modello 1 del client e costruire le risposte da inviare; di default questo metodo viene eseguito in un thread separato per ogni richiesta. Le prime specifiche introdotte per le JSP prevedevano due approcci strutturali differenti (noti come architetture Modello 1 e Modello 2) per impiegare questa tecnologia all interno delle applicazioni web; questi differiscono essenzialmente per il punto in cui viene eseguita l elaborazione della request, e forniscono un utile paradigma per la progettazione. Come si può vedere nella figura 1.3 nell architettura Modello 1 la richiesta proveniente da un browser web viene inviata direttamente alla pagina JSP, che è quindi incaricata di elaborarla e di fornire la risposta al client; c è comunque separazione tra presentazione e contenuto, perché ai dati si accede sempre attraverso dei JavaBean. Nonostante questo tipo di architettura sia indicata per piccole applicazioni, potrebbe rivelarsi inadatta a progetti su larga scala. Un uso indiscriminato di questa architettura di solito porta ad avere grandi quantità di script o codice Java 9

20 Strumenti per applicazioni web in Java 10 Figura 1.4. Architettura JSP Modello 2 (MVC) all interno delle pagine, specialmente quando è necessario operare una notevole quantità di elaborazioni sulla richiesta del client. Nonostante questo possa sembrare un problema di poco conto per chi è abituato a sviluppare codice Java, può diventare un ostacolo considerevole se le pagine JSP devono essere create o mantenute da designer (come succede di norma in progetti di un certo rilievo). Un altro svantaggio di questo approccio nello sviluppo è che ogni singola pagina JSP deve gestire lo stato corrente dell applicazione e controllare autenticazioni e sicurezza. L architettura Modello 2, illustrata nella figura 1.4, è una implementazione del popolare design pattern MVC (Model View Controller): qui l elaborazione è suddivisa tra componenti di presentazione e di controllo. I primi sono pagine JSP che generano la risposta HTML/XML che costituirà l interfaccia utente una volta che sia stata disegnata dal browser. I restanti componenti (che possono essere servlet o pagine JSP) invece non si occupano degli aspetti della rappresentazione, ma piuttosto elaborano tutte le request HTTP: sono quindi loro a decidere quali 10

21 Strumenti per applicazioni web in Java 11 oggetti o bean creare, e a decidere, in base alle azioni dell utente, a quale pagina JSP indirizzare il risultato. Il vantaggio di questo tipo di architettura è che non c è alcuna elaborazione all interno dei componenti di presentazione, che hanno semplicemente il compito di recuperare gli oggetti o i bean creati dai componenti di controllo e di estrarre da essi il contenuto dinamico per poterlo poi inserire all interno dei propri modelli statici; di conseguenza questa netta separazione tra presentazione e contenuto porta ad una chiara divisione dei ruoli e delle responsabilità dei programmatori da quelle dei designer all interno del team di sviluppo. Una ultima caratteristica positiva di questo tipo di approccio è che essendoci un unico punto di contatto con l esterno lo stato, la sicurezza e l aspetto dell applicazione risultano più semplici da gestire Elementi di scripting Gli elementi di scripting JSP permettono di inserire codice Java all interno della servlet che verrà generata a partire dalla pagina JSP, e possono assumere tre forme: 1. espressioni, nella forma <%= espressione %>, che vengono valutate e poi inserite nell output; 2. scriptlet, nella forma <% codice %>, che vengono inserite nel metodo _jspservice() della servlet; 3. dichiarazioni, nella forma <%! codice %>, che vengono inserite nel corpo della classe che costituisce la servlet, al di fuori di qualsiasi metodo già esistente. Quando si utilizzano le espressioni JSP il risultato della loro valutazione viene convertito in una stringa e incluso nella pagina di output. Tipicamente le espressioni vengono utilizzate per mostrare semplici valori di variabili invocando il metodo get di un bean, oppure per mostrare lo stato di uno degli oggetti predefiniti. Le espressioni JSP sono incluse nel tag <%= %> e non prevedono l utilizzo del punto e virgola per terminare le istruzioni. 11

22 Strumenti per applicazioni web in Java 12 Se diventa necessario svolgere azioni più articolate rispetto al semplice inserimento del valore di una espressione, le scriptlet JSP permettono di inserire codice Java arbitrario all interno della servlet che verrà generata per costruire la pagina; in generale le scriptlet possono svolgere molti compiti impossibili con il solo uso di espressioni, come ad esempio settare header e codici di stato all interno della response, scrivere nei log del server o aggiornare un database, o anche eseguire codice che contiene espressioni condizionali o cicli; le variabili accessibili sono quelle predefinite rese disponibili anche per le espressioni. Si può inserire qualsiasi frammento di codice Java valido, anche più di una riga alla volta; una scriptlet è racchiusa nel tag <% %>. Le dichiarazioni JSP (inserite nel tag <%! %>) permettono di definire variabili visibili all interno di tutta la pagina per memorizzare informazioni, e anche di definire metodi che saranno utili al resto del programma; bisogna fare attenzione perché utilizzando sia le espressioni che le dichiarazioni diventa semplice inserire una grande quantità di istruzioni Java direttamente all interno della pagina JSP, rendendo in seguito la manutenzione molto difficoltosa. Per questa ragione, e per rendere il codice maggiormente riutilizzabile, è opportuno inserire la logica responsabile delle elaborazioni principali all interno di componenti JavaBean Ambiti di visibilità e variabili predefinite Gli oggetti cui si può accedere all interno di una pagina JSP possono essere creati in diversi modi: implicitamente utilizzando le direttive JSP, oppure in modo esplicito attraverso le azioni o, in rari casi, direttamente con lo scripting. Gli oggetti istanziati possono essere associati con un attributo che ne definisca l ambito di visibilità (scope), in modo da stabilire quando sia possibile accedervi e quando invece questi debbano risultare non disponibili. I vari scope possibili sono illustrati nella figura

23 Strumenti per applicazioni web in Java 13 Figura 1.5. Ambiti di visibilità delle variabili accessibili da una pagina JSP Per semplificare il codice presente all interno delle pagine JSP sono state introdotte delle variabili predefinite, a volte chiamate oggetti impliciti: 1. request (scope: request) questa variabile rappresenta l HttpServletRequest associata alla request ricevuta; permette di accedere ai parametri della request, al suo tipo (GET oppure POST), e agli header associati (e.g. i cookie); 2. response (scope: pagina) questa variabile rappresenta l HttpServletResponse associata alla response inviata. Dal momento che l output di norma viene inserito in un buffer prima di essere inviato, risulta possibile inserire header HTTP e codici della response anche nel mezzo di una pagina JSP (cosa non concessa invece nelle servlet una volta che sia stato prodotto un qualunque output); 3. out (scope: pagina) questo è l oggetto PrintWriter utilizzato per inviare l output al client; per rendere utilizzabile l oggetto response questa risulta in realtà una versione con buffer di PrintWriter chiamata 13

24 Strumenti per applicazioni web in Java 14 JspWriter; è possibile stabilire le dimensioni di questo buffer attraverso l attributo buffer nella direttiva page; 4. session (scope: sessione) questa variabile rappresenta l oggetto HttpSession associato alla request; 5. application (scope: applicazione) questa variabile è il ServletContext ottenuto chiamando getservletconfig().getcontext(). Sia le servlet che le pagine JSP possono inserire dati all interno dell oggetto ServletContext (che infatti prevede i metodi setattribute() e getattribute()) in modo da renderli persistenti e disponibili a tutte le servlet presenti all interno del motore Servlet (o dell applicazione web); 6. config (scope: pagina) questa variabile rappresenta l oggetto ServletConfig associato alla pagina corrente; 7. pagecontext (scope: pagina) la classe PageContext è stata introdotta dalle JSP per fornire un punto di accesso unico per molti degli attributi relativi alla pagina, e un posto in cui inserire i dati condivisi; 8. page (scope: pagina) sinonimo di this, non è molto utile quando si programma in Java, è stato inserito per compatibilità con altri linguaggi di scripting; 9. exception (scope: pagina) rappresenta l oggetto Throwable non gestito che ha portato al caricamento della pagina di errore Direttive Le direttive sono messaggi per il motore JSP: non producono alcun output visibile, ma forniscono indicazioni su come andrà trattato il resto della pagina; vengono incluse all interno del tag %>, e possono essere principalmente di due tipi: page e include (anche se JSP 1.1 prevede anche la direttiva taglib, che permette di utilizzare librerie di tag personalizzate, come la JSTL). Tipicamente la direttiva page si trova all inizio della pagina JSP, e può comparire anche più di una volta, purché le coppie nome-valore indicate risultino 14

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

JavaServer Pages: Introduzione

JavaServer Pages: Introduzione JavaServer Pages: Introduzione Gianluca Moro gianluca.moro@unibo.it Dipartimento di Elettronica, Informatica e Sistemistica Università di Bologna Sistemi reali in JSP!! ofoto.com: stampa e gestisce foto

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

Corso basi di dati Introduzione alle ASP

Corso basi di dati Introduzione alle ASP Corso basi di dati Introduzione alle ASP Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Web statico e Web interattivo In principio il Web era una semplice collezione di pagine

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

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

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

Introduzione a JSP (Java Server Pages) MC 2005

Introduzione a JSP (Java Server Pages) MC 2005 Introduzione a JSP (Java Server Pages) MC 2005 Cosa è JSP JSP è una tecnologia per lo sviluppo di pagine web con contenuti dinamici Miglioramento rispetto alle CGI (modello multithread) Indipendenza dalla

Dettagli

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client

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

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

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

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

JUG Ancona Italy. JSP 2.0: Tag Library. Matteo Piccinini Web Developer

JUG Ancona Italy. JSP 2.0: Tag Library. Matteo Piccinini Web Developer JUG Ancona Italy JSP 2.0: Tag Library Matteo Piccinini Web Developer Servlet Codice Java che viene eseguito nel server per produrre un contenuto Logica applicativa del programmatore Gestione grafica passa

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

Protocolli e architetture per WIS

Protocolli e architetture per WIS Protocolli e architetture per WIS Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi Le architetture moderne dei WIS

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

INDICE. Indice. Introduzione

INDICE. Indice. Introduzione V Indice Introduzione XIII Capitolo 1 La programmazione multithread 1 1.1 Cosa sono i thread 2 Utilizzare i thread per dare una possibilità ad altri task 9 Avvio ed esecuzione dei thread 10 Esecuzione

Dettagli

Siti interattivi e dinamici. in poche pagine

Siti interattivi e dinamici. in poche pagine Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata

Dettagli

Tipi fondamentali di documenti web

Tipi fondamentali di documenti web Tipi fondamentali di documenti web Statici. File associati al web server il cui contenuto non cambia. Tutte le richieste di accesso conducano alla visualizzazione della stessa informazione. Dinamici. Non

Dettagli

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_1 V1.7. JSP parte A

Università di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_1 V1.7. JSP parte A Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B6_1 V1.7 JSP parte A Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e

Dettagli

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet Java Server Pages (JSP) Introduzione alle JSP Linguaggio di scripting lato server HTML-embedded Una pagina JSP contiene sia HTML sia codice Il client effettua la richiesta per la pagina JSP La parte HTML

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Server-side Programming: Java servlets Parte II

Server-side Programming: Java servlets Parte II Corso di Laurea Specialistica in Ingegneria Informatica Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Corso di Reti di Applicazioni Telematiche a.a. 2009-2010 Server-side Programming:

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

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

Il Protocollo HTTP e la programmazione di estensioni Web

Il Protocollo HTTP e la programmazione di estensioni Web Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);

Dettagli

Corso di Informatica Modulo T3 B1 Programmazione web

Corso di Informatica Modulo T3 B1 Programmazione web Corso di Informatica Modulo T3 B1 Programmazione web 1 Prerequisiti Architettura client/server Elementi del linguaggio HTML web server SQL server Concetti generali sulle basi di dati 2 1 Introduzione Lo

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

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

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

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

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

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

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

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Architetture versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

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

Introduzione all elaborazione di database nel Web

Introduzione all elaborazione di database nel Web Introduzione all elaborazione di database nel Web Prof.ssa M. Cesa 1 Concetti base del Web Il Web è formato da computer nella rete Internet connessi fra loro in una modalità particolare che consente un

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

Corso di Web programming Modulo T3 A2 - Web server

Corso di Web programming Modulo T3 A2 - Web server Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto

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

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1)

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1) Pagina 1 di 10 Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1) Nel corso della lezione precedente abbiamo analizzato le caratteristiche dell'architettura CGI.

Dettagli

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

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 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 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. LA PROGRAMMAZIONE LATO SERVER 19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici

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

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

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

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo Come funziona il WWW Il funzionamento del World Wide Web non differisce molto da quello delle altre applicazioni Internet Anche in questo caso il sistema si basa su una interazione tra un computer client

Dettagli

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione Evoluzione del Web Direzioni di sviluppo del web a) Multimedialità b) Dinamicità delle pagine e interattività c) Accessibilità d) Separazione del contenuto dalla forma di visualizzazione e) Web semantico

Dettagli

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso

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

Come funziona internet

Come funziona internet Come funziona internet Architettura client server URL/URI Richiesta (Request) Risposta (Response) Pagina url e uri Uno Uniform Resource Identifier (URI, acronimo più generico rispetto ad "URL") è una stringa

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

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

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

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

Corso Android Corso Online Programmatore Android

Corso Android Corso Online Programmatore Android Corso Android Corso Online Programmatore Android Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso Modulo Uno - Programmazione J2ee 1) Programmazione

Dettagli

Programmazione di sistemi distribuiti

Programmazione di sistemi distribuiti Programmazione di sistemi distribuiti I Sistemi Distribuiti, per loro natura, prevedono che computazioni differenti possano essere eseguite su VM differenti, possibilmente su host differenti, comunicanti

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

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

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page» Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti

Dettagli

Indice. Introduzione. PARTE PRIMA PHP: i fondamenti 1

Indice. Introduzione. PARTE PRIMA PHP: i fondamenti 1 Indice Introduzione XV PARTE PRIMA PHP: i fondamenti 1 Capitolo 1 Perché PHP e MySQL? 3 1.1 Cos è PHP? 3 1.2 Cos è MySQL? 4 1.3 La storia di PHP 5 1.4 La storia di MySQL 6 1.5 Le ragioni per amare PHP

Dettagli

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

Applicazioni web centrati sui dati (Data-centric web applications) Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento

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

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

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

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

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

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 "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

Sme.UP Web Application

Sme.UP Web Application Sme.UP Web Application Web Application Web.UP Una interfaccia web per i vostri dati gestionali Il modulo applicativo Web.UP fornisce al progettista di siti Internet una serie di potenti strumenti per l'integrazione

Dettagli

Corso Programmazione Java Android. Programma

Corso Programmazione Java Android. Programma Corso Programmazione Java Android 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

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E.

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E. Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E. Università di Bologna Facoltà di Ingegneria Bologna, 08/02/2010 Outline Da applicazioni concentrate a distribuite Modello

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali

Dettagli

Indice. Introduzione PARTE PRIMA PHP: I FONDAMENTI

Indice. Introduzione PARTE PRIMA PHP: I FONDAMENTI 00som_PHP_4320_2 12-03-2003 20:59 Pagina V Indice Introduzione XV PARTE PRIMA PHP: I FONDAMENTI Capitolo 1 Perché PHP? 3 1.1 Cos è PHP? 3 1.2 La storia di PHP 4 1.3 Le ragioni per amare PHP 5 1.4 Sommario

Dettagli

10.7 La classe BitSet... 555 Esercizi di autovalutazione... 558 Risposte agli esercizi di autovalutazione... 559 Esercizi 559

10.7 La classe BitSet... 555 Esercizi di autovalutazione... 558 Risposte agli esercizi di autovalutazione... 559 Esercizi 559 Sommario PREFAZIONE... XI Il nostro approccio didattico... xi Una panoramica del libro... xiv Ringraziamenti... xvii Gli autori... xix Deitel & Associates, Inc.... xx CAPITOLO 1 LA GRAFICA E JAVA2D...

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

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

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

WEBsfa: l automazione della forza vendita via Web

WEBsfa: l automazione della forza vendita via Web WEBsfa: l automazione della forza vendita via Web White Paper 1 Gennaio 2005 White Paper Pag. 1 1/1/2005 L automazione della Forza Vendita Le aziende commerciali che che sviluppano e alimentano il proprio

Dettagli

Applicazioni web. Sommario. Parte 7 Java Server Pages. Applicazioni web - JSP. Alberto Ferrari 1 JSP. JavaBeans JSTL. Architettura e sintassi di base

Applicazioni web. Sommario. Parte 7 Java Server Pages. Applicazioni web - JSP. Alberto Ferrari 1 JSP. JavaBeans JSTL. Architettura e sintassi di base Applicazioni web Parte 7 Java Server Pages Alberto Ferrari 1 Sommario JSP JavaBeans JSTL Architettura e sintassi di base Concetti fondamentali Beans in pagine JSP Linguaggio di espressione Azioni principali

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

Programmazione Web. Introduzione

Programmazione Web. Introduzione Programmazione Web Introduzione 2014/2015 1 Un'applicazione Web (I) 2014/2015 Programmazione Web - Introduzione 2 Un'applicazione Web (II) 2014/2015 Programmazione Web - Introduzione 3 Un'applicazione

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più

Dettagli

Scheda 15 Accedere ai DataBase con JDBC

Scheda 15 Accedere ai DataBase con JDBC Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali

Dettagli

Progettazione di Applicazioni Web

Progettazione di Applicazioni Web 1 Argomenti della lezione Progettazione di Applicazioni Web Sviluppo delle applicazioni Processo di sviluppo Formalismi grafici di supporto diagrammi UML (cenni) Scelta dell architettura Sviluppo di applicazioni

Dettagli

Server web e protocollo HTTP

Server web e protocollo HTTP Server web e protocollo HTTP Dott. Emiliano Bruni (info@ebruni.it) Argomenti del corso Cenni generali sul web IIS e Apache Il server web Micsosoft Internet Information Server 5.0 Il server web Apache 2.0

Dettagli

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che

corrispondente server Web (l applicazione server) viene inviata una richiesta, alla quale il server normalmente risponde inviando la pagina HTML che Prefazione In questo volume completiamo l esplorazione del linguaggio Java che abbiamo iniziato in Java Fondamenti di programmazione. I due testi fanno parte di un percorso didattico unitario, come testimoniano

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

Contenuti. Applicazioni di rete e protocolli applicativi

Contenuti. Applicazioni di rete e protocolli applicativi Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Tecnologie delle reti di calcolatori Servizi Internet (come funzionano

Dettagli

Punti fondamentali sulla tecnologia del sistema ABScard

Punti fondamentali sulla tecnologia del sistema ABScard Punti fondamentali sulla tecnologia del sistema ABScard Architettura ABSCARD Pagina 1 di 13 INDICE GENERALE 1 Architettura...3 1.1 Introduzione...3 1.1.1 Sicurezza...4 1.1.2 Gestione...5 1.1.3 ABScard

Dettagli

sito web sito Internet

sito web sito Internet Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile

Dettagli

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Informazioni sul copyright 2004 Copyright Hewlett-Packard Development Company, L.P. Sono vietati la riproduzione, l'adattamento e la

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

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato SCP: SCHEDULER LAYER a cura di Alberto Boccato PREMESSA: Negli ultimi tre anni la nostra scuola ha portato avanti un progetto al quale ho partecipato chiamato SCP (Scuola di Calcolo Parallelo). Di fatto

Dettagli

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea Università degli studi Roma Tre Dipartimento di informatica ed automazione Tesi di laurea Reingegnerizzazione ed estensione di uno strumento per la generazione di siti Web Relatore Prof. P.Atzeni Università

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

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