Università degli studi dell Aquila. Sistemi di elaborazione delle informazioni

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli studi dell Aquila. Sistemi di elaborazione delle informazioni"

Transcript

1 Università degli studi dell Aquila Corsi di studio: I2E, I2I Sistemi di elaborazione delle informazioni 9 C.F.U. Prof. Eliseo Clementini Ing. Gaetanino Paolone

2 Tecnologie per lo sviluppo di Sistemi sul Web 1. Java e ambiente JEE 2. C# e ambiente Microsoft.net

3 Tecnologie per lo sviluppo dei Sistemi sul Web 1. Application Server 2. Servlet 3. JSP

4 Application Server Application server: Infrastruttura architetturale: applicazione che ingloba (o lavora congiuntamente a) un server HTTP (oppure include un server HTTP) che offre servizi per la gestione di applicazioni Web Infrastruttura per la programmazione: (librerie) di applicazioni Web complesse, paradigmi di programmazione

5 Application Server Infrastruttura di programmazione minima offerta: decodifica delle richieste del client (es: decodifica di valori sottomessi con una form) gestione del ciclo di vita delle applicazioni (es: più richieste con una attivazione) gestione delle sessioni (es: utilizzando in modo trasparente i cookie) gestione di informazioni condivise supporto alla produzione della risposta HTTP

6 Application Server Esempi di servizi avanzati offerti da un application server: replicazione e clustering bilanciamento del carico alta affidabilità ( failover ) transazioni distribuite gestione trasparente della persistenza sicurezza servizi Web ( Web services )

7 Application Server Http server presentation layer application logic layer connection to resource mgmt layer resource management layer wide area network (Internet) HTTP browser

8 Piattaforma Java Servlets Java API for XML Processing (JAXP) JavaServer Pages (JSP) JavaMail Java Authentication and Authorization Service (JAAS) Supporto alla comunicazione e alla presentazione Enterprise Java Beans (EJB) Java Message Service (JMS) Java transaction API (JTA) Java Naming and Directory Interface (JNDI) Supporto all'integrazione di applicazioni Java DataBase Connectivity (JDBC) Java 2 Connector Architecture (J2CA) Supporto per l'accesso alle risorse

9 presentation layer application logic layer services (load balancing, pooling, caching, transaction, persistence, ) JDBC Enterprise Java Beans J2CA resource adapter Enterprise Java Beans JNDI JMS J2CA resource adapter Enterprise Java Beans EJB container other adapters administration (management and security) DBMS applications enterprise system 1 enterprise system 2 enterprise system n

10 Servlet: introduzione Classe Java Orientata alla comunicazione client-server riceve messaggi di richiesta produce messaggi di risposta basata su API opportune (javax.servlet.* ) Le istanze di una classe servlet "vivono" nell'application server (/contenitore). In particolare il contenitore si preoccupa di: Istanziare gli oggetti Invocare i metodi di gestione della risposta Distruggere gli oggetti Queste attività corrispondono ad un ciclo di vita

11 Servlet: introduzione Gerarchia: java.lang.object javax.servlet.genericservlet javax.servlet.http.httpservlet Implemented Interfaces: java.io.serializable, Servlet, ServletConfig

12 Servlet: Struttura di Base import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class NomeServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { // nell'oggetto request abbiamo tutte le informazioni // relative alla richiesta HTTP // tramite l'oggetto response prepariamo la risposta } }

13 SIW: Architettura Java Web server Java server process servlet Java thread middleware server (resource manager) wide area network (Internet) HTTP GET request browser

14 Vantaggi dell Approccio Un unica macchina virtuale Le istanze possono comunicare tra di loro Istanza singola dell'oggetto servlet (o pool) Si evitano i costi di creazione e di inizializzazione delle istanze Gestione delle richiesta con thread thread esecuzione concorrente ed indipendente all'interno di un processo Efficienti: poiché abbiamo molti thread in un solo processo (sempre attivo) i costi sono estremamente ridotti

15 Servlet: Ciclo di Vita Il ciclo di vita di un oggetto servlet è controllato dal contenitore nel quale la classe è stata installata Quando il contenitore riceve una richiesta per un URL al quale è associato una servlet, il contenitore fa i seguenti passi Se non esiste un'istanza della classe, il contenitore: Carica la classe e ne crea un'istanza Inizializza l'istanza chiamando il metodo init() Inovoca il metodo service(), passandogli un oggetto HttpServletRequest e un oggetto HttpServletResponse a sua volta, il metodo service() invoca i metodi doget() o dopost() (a seconda del tipo di richiesta HTTP) Se il contenitore necessita di rimuovere l'istanza della classe (ad esempio perché è stato modificato il codice), allora distrugge l'oggetto chiamando il metodo destroy()

16 Servlet: il ruolo del contenitore Attenzione al ruolo del contenitore istanzia gli oggetti servlet quando la applicazione viene avviata quando riceve una richiesta (URL) da un client invoca sull'oggetto deputato a servire la richiesta il metodo service() di gestione della richiesta crea un oggetto (HttpServletRequest) che incapsula i dati della richiesta e lo passa come parametro a service() crea un oggetto (HttpServletResponse) che incapsula i dati per la gestione della risposta e lo passa come parametro a service() distrugge gli oggetti quando l'applicazione viene fermata Come fa il contenitore a sapere dove si trova il codice delle classi servlet, a quali URL sono associati gli oggetti servelt? le applicazioni Web devono seguire precise convenzioni (vedi in seguito)

17 Operazioni e API Fondamentali Servlet: una classe Java In una classe servlet è consentito tutto quello che è consentito in una classe Java Si possono scrivere nuovi metodi (hanno senso solo metodi privati) per rendere più modulare il codice Si possono usare variabili di istanza Ma attenzione: le variabili di istanza sono condivise da tutti i thread La responsabilità di una classe servlet dovrebbe essere limitata a gestire la richiesta (ma vedremo che possono anche gestire la risposta) Quindi Codice semplice, una sola responsabilità: gestire la richiesta

18 Operazioni e API Fondamentali Le API javax.servlet.* e javax.servlet.http.* sono documentate nel seguito presentiamo schematicamente i metodi principali (ed usiamo semplici esempi) per informazioni su ulteriori metodi, fare riferimento alla documentazione delle API in questione e/o al manuale consigliato

19 Gestione della Richiesta Obiettivo Gestire la richiesta HTTP La richiesta HTTP contiene: Query string Metodo (post, get, etc.) Intestazioni http (es. ip client, user-agent client, presenza cookie, etc.) Queste informazioni devono essere processate per poter decidere come generare la risposta

20 Tecnologia: servlet In definitiva Servlet: classi le cui istanze vivono nel contenitore Ciclo di vita Gestione richiesta Gestione risposta

21 Descrittore dell Applicazione Descrittore dell applicazione web.xml deployment descriptor serve a definire parametri specifici per l applicazione: nomi per i servlet pattern degli URL a cui rispondono file indice standard (es: index.jsp) timeout per le sessioni etc. Non è indispensabile perché il contenitore assegna valori di default Ma il comportamento di default non è standard Inoltre diventa indispensabile per la definizioni di applicazioni complesse quindi impariamo ad utilizzarlo

22 Descrittore dell Applicazione Deployment Descriptor file WEB-INF/web.xml documento xml valido rispetto al DTD Consente di specificare una serie di parametri dell applicazione Web viene caricato all installazione della applicazione

23 Descrittore dell Applicazione web.xml Deve rispettare il DTD gli elementi devono rispettare l ordine fissato dal DTD sono tutti opzionali Template fornito da Tomcat il file con le impostazioni standard è in $TOMCAT_HOME$/conf/web.xml Molto complesso, ci concentriamo sugli elementi principali

24 Descrittore dell Applicazione Elementi principali (per ora): servlet: assegna un alias e dei parametri di inizializzazione ad un servlet servlet-mapping: assegna uno (o più) URL ad un servlet

25 Esempio file web.xml (Tomcat 6) <?xml version="1.0" encoding="iso "?> <web-app xmlns=" xmlns:xsi=" xsi:schemalocation=" version="2.5"> <servlet> <servlet-name>es1</servlet-name> <servlet-class>mostraparametri</servlet-class> </servlet> <servlet-mapping> <servlet-name>es1</servlet-name> <url-pattern>/prova</url-pattern> </servlet-mapping> </web-app>

26 URL delle Risorse Servlet: URL virtuale specificato in web.xml con l elemento servlet-mapping /<nomeappl>/valore-servlet-mapping es: /siw-esempi/mostraparametri Attenzione ai riferimenti relativi esempio: il riferimento images/code.gif prodotto da una classe servlet dell applicazione siw-esempi viene espanso in: /siw-esempi/images/code.gif

27 Installazione ( Deployment ) Per essere accessibile: l applicazione deve essere visibile al contenitore (collocata nella cartella webapps ) inoltre l applicazione deve essere installata nel contenitore (deployed) Differenza con il server HTTP ordinario non basta la visibilità sul file system operazione aggiuntiva di installazione: serve ad inizializzare il ciclo di vita di tutti i componenti gestiti dal contenitore

28 .war: Web Application Archive Un'intera applicazione può essere salvata (e installata) in un unico file: una Web Application Archive (.war) Un file WAR (Web ARchive) è un file generato utilizzando il tool JAR contenuto nel JDK, ma con estensione modificata in modo da differenziare la tipologia del contenuto. Per generare un file WAR è sufficiente aprire una finestra di console, posizionarsi all'interno della root directory della Web Application e lanciare il comando: jar cvf myapp.war. In questo modo si dice al tool JAR di costruire un file jar a partire dalla posizione corrente e con il nome indicato (myappl, nell'esempio). Al termine dell'elaborazione, se non si sono verificati problemi, troveremo sul file system il file richiesto Con Tomcat, se vogliamo installare una applicazione.war sarà sufficiente copiare il file.war all'interno della cartella webapps e far partire il contenitore

29 Servlet: esempio import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletSemplice extends HttpServlet { } public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<body>"); out.println("<head>"); out.println("<title>servlet Semplice</title>"); out.println("</head>"); out.println("<body><p>"); out.println("questa servlet contiene tanto codice HTML"); out.println(. "); out.println("e un piccolo elemento dinamico: + new java.util.date()); out.println( </p></body>"); out.println("</html>"); }

30 JSP: introduzione Il codice di una classe servlet che deve gestire (produrre) la risposta è composto soprattutto da istruzioni di stampa out.println() Questa soluzione è poco efficace e molto costosa Le pagine JSP possono essere viste come una soluzione per scrivere servlet partendo dal codice HTML L idea è quella di scrivere codice HTML e di includervi (attraverso speciali marcatori) istruzioni A partire da questo codice viene generata una servlet

31 Esempio: semplice.jsp <html> <head> <title>servlet Semplice</title> </head> <body> <p>questa servlet contiene tanto codice HTML... <h1>e un piccolo elemento dinamico: <%= new java.util.date() %> </p> </body> </html>

32 Pagine JSP e Servlet Una JSP corrisponde ad un modo diverso di scrivere una classe servlet L idea e quella di immergere nel codice HTML codice Java e di lasciare al sistema l onere di tradurre la pagina in una classe servlet La traduzione avviene alla prima richiesta della pagina JSP Alla traduzione segue la compilazione e il caricamento della classe nel contenitore

33 JSP: ciclo di vita Quando il contenitore riceve la richiesta di una JSP, ne cerca la classe corrispondete: se la classe non esiste il contenitore traduce automaticamente il codice JSP nel codice Java di una classe servlet, lo compila, carica la classe e ne crea un istanza alla quale invia la richiesta alle richieste successive il contenitore verifica la versione del codice (il programmatore potrebbe aver aggiornato il codice JSP): se non ci sono stati aggiornamenti ogni richiesta corrisponde a invocare la classe dell ultima servlet generata; se ci sono stati aggiornamenti la servlet viene rigenerata e ricaricata

34 Riassumendo Una JSP assume tre forme diverse: Il file sorgente.jsp contenente il codice HTML e gli elementi JSP Il codice sorgente Java di una classe servlet (NOTA: questo codice, in Tomcat è nella directory work\catalina\localhost) La classe Java compilata JSP o Servlet? JSP si focalizza sulla produzione delle pagine HTML da inviare al client NOTA: Scrivere applicazioni Web usando solo JSP è molto simile a scrivere applicazioni Web che adottano altre tecnologie (ad es. Php o MS asp)

35 JSP: sviluppo e installazione Sviluppo: abbastanza semplice (se la JSP è usata correttamente: per gestire prevalentemente la presentazione) Installazione: è sufficiente copiare la pagina JSP in una directory della applicazione Web. Non sono necessarie operazioni di configurazione (come ad esempio la scrittura di informazioni nel descrittore della applicazione web.xml)

36 File sorgente: semplice.jsp <html> <head> <title>servlet Semplice</title> </head> <body> <p>questa servlet contiene tanto codice HTML... e un piccolo elemento dinamico: <%= new java.util.date() %> </p> </body> </html>

37 JSP e Servlet Il codice JSP viene tradotto in una classe servlet (Tomcat: nella cartella work) La classe servlet generata da una pagina JSP ha un metodo speciale, _jspservice(), che viene invocato dal metodo service(), dentro il quale viene copiato il codice Java immerso nell HTML attraverso gli scripting element

38 package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import org.apache.jasper.runtime.*; public class Semplice_Jsp extends HttpJspBase { public void _jspservice(httpservletrequest request, HttpServletResponse response) throws java.io.ioexception, ServletException { JspWriter out = pagecontext.getout(); out.println( <html> ); out.println( <head> ); out.println( <title>servlet Semplice</title> ); out.println( </head> ); out.println( <body> ); out.println( <p>questa servlet contiene tanto codice HTML ); out.println(... ); out.println( e un piccolo elemento dinamico: ); out.println(new java.util.date() ); out.println( </p></body> ); out.println( </html> ); } } public void service(httpservletrequest request, HttpServletResponse response) { _jspservice(request, response);

39 Struttura di una pagina JSP Elementi principali Template Text Codice HTML Commenti Commenti HTML e commenti JSP Scriptlet Istruzioni Java, oggetti predefiniti Espressioni Espressioni Java (che producono un risultato "stampabile") Dichiarazioni Java Metodi e dichiarazioni di variabili Direttive Java Specifiche che influenzano la costruzione della classe servlet

40 Struttura Pagina JSP: Template Text Nella maggior parte dei casi una larga percentuale del codice di una pagina JSP dovrebbe essere codice HTML Questo codice HTML deve seguire le regole normale dell'html (rispettare il DTD) Il codice HTML viene stampato nel corpo della risposta Con riferimento al codice Java della classe servlet generata a partire dal codice JSP, corrisponde sequenze di istruzioni out.print(codicehtml) in _jspservice()

41 Struttura Pagina JSP: commenti Due tipi di commenti commenti HTML <!-- testo commento HTML --> commenti JSP <%-- testo commento JSP --%> I commenti HTML sono riportati nella risposta (viene generata una istruzione out.print("<! testo commento HTML-->") in _jspservice()) I commenti JSP NON sono riportati nella risposta (non generano nessuna istruzione)

42 Scriptlet Sono vere e proprie sequenze di istruzioni Java che possono essere arbitrariamente immerse nel codice HTML attraverso un opportuno marcatore sintassi: <% istruzioni %> in sostanza compongono (con le stampe del template HTML) il metodo _jspservice() della classe servlet generata dalla JSP è possibile specificare qualsiasi operazione ammessa nei metodi doget() e dopost() di una classe servlet Negli scriplet sono visibili una serie di oggetti predefiniti

43 Oggetti Predefiniti Oggetti predefiniti visibili negli scriptlet e nelle espressioni HttpServletRequet request rappresenta il parametro HttpServletRequest del metodo service() HttpServletResponse response rappresenta il parametro HttpServletResponse del metodo service() HttpSession session rappresenta l'oggetto HttpSession che si otterebbe con request.getsession() ServletContext application rappresenta l'oggetto ServletContext che si otterrebbe con getservletcontext() JspWriter out rappresenta l'oggetto PrintWriter su cui stampare il corpo della risposta; è in qualche modo equivalente all'oggetto che si ottiene con l'istruzione response.getwriter(). JspWriter estende PrintWriter: è una versione bufferizzata di PrintWriter

44 Oggetti predefiniti In sintesi: Abbiamo a disposizione oggetti che ci facilitano nella produzione del codice Questi oggetti sono visibili solo negli scriplet e nelle espressioni Non è necessario creare questi oggetti

45 Oggetti Predefiniti In pratica nel metodo _jspservice() abbiamo una struttura predefinita public void _jspservice(httpservletrequest request, throws java.io.ioexception, ServletException { HttpServletResponse response) } ServletContext application =getservletcontext(); HttpSession session =request.getsession(); JspWriter out = response.getwriter(); response.setcontenttype( text/html );...

46 Scriptlet Il codice degli scriptlet viene aggiunto al metodo _jspservice() Esempio: <html> <body> <% String nome=(string)request.getparameter( nome ); session.setattribute( nome, nome); %> <p>benvenuto, <% out.print(nome);%>. La data di oggi e : <% Date d= new java.util.date(); out.print(d); %> </p> </body> </html>

47 Scriptlet public void _jspservice(httpservletrequest request, HttpServletResponse response) throws java.io.ioexception, ServletException { } ServletContext application =getservletcontext(); HttpSession session =request.getsession(); JspWriter out = response.getwriter(); response.setcontenttype( text/html ); out.println( <html> ); out.println( <body> ); String nome=(string)request.getparameter( nome ); session.setattribute( nome, nome); out.println( <p>benvenuto, ); out.print( nome"); out.print( La data di oggi e : ); Date d= new java.util.date(); out.print(d); out.println( </p> ); out.println( </body> ); out.println( </html> );

48 Scriptlet E possibile immergere i tag nelle strutture di controllo Esempio: <% String nome=(string)request.getparameter( nome ); if (nome==null) { %> <p>benvenuto, immetti il tuo nome</p> <form action=... method=... >...</form> <% } else { %> <p>benvenuto, <% out.print(nome);%> </p> <% } %>

49 Scriptlet Traduzione in _jspservice() String nome=(string)request.getparameter( nome ); if (nome==null) { out.println( <p>benvenuto, immetti il tuo nome</p> ); out.println( <form action=\...\ method=\...\ > );... out.println( </form> ); } else { out.println( <p>benvenuto, ); out.print(nome); out.print( </p> ); }

50 Scriplet <html> <body> <h1>tavola pitagorica</h1> <table> <% for (int i = 1; i<= 10; i++) { %> <tr> <% for (int j=1; j<= 10; j++) { %> <td> <% out.print(i*j); %> </td> <% }%> </tr> <% }%> </table> </body> </html>

51 Espressioni Sono espressioni Java marcate con un opportuna sintassi: il risultato dell'espressione viene convertito in una stringa e stampato Sostanzialmente possono essere usati come una forma rapida per la stampa di stringhe sintassi: <%= espressione %> Es.: <%= new java.util.date() %> semantica: il risultato dell espressione convertito in stringa viene stampato su out del tutto equivalente a <% out.print(espressione.tostring()); %> Es: <% out.print( (new java.util.date()).tostring()); %>

52 Espressioni Motivazione: Il metodo print() dovrebbe essere usato il meno possibile nelle pagine JSP Quando possibile dovrebbe essere sostituito da espressioni Esempio <html> <body> <% String nome=(string)request.getparameter( nome ); %> <p>benvenuto, <%= nome %>. La data di oggi e : <%= new java.util.date() %> </p> </body> </html>

53 Espressioni e Scriplet <html> <body> <h1>tavola pitagorica</h1> <table> <% for (int i = 1; i<= 10; i++) { %> <tr> <% for (int j=1; j<= 10; j++) { %> <td> <%= i*j %> </td> <% }%> </tr> <% }%> </table> </body> </html>

54 Dichiarazioni Ricordiamo che ad ogni JSP corrisponde una classe servlet Tutti gli scriplet e il template producono istruzioni che compongono il metodo _jspservice Ma in una classe è possibile definire anche metodi e variabili Le dichiarazioni JSP servono a definire metodi e variabili al di fuori di _jspservice variabili della classe associata alla pagina metodi della classe associata alla pagina Attenzione: nelle dichiarazioni non sono visibili gli oggetti predefiniti (visibili solo in _jspservice(), e quindi solo negli scriplet e nelle espressioni)

55 Dichiarazioni variabile della classe servlet associata alla pagina Esempio: metodo della classe servlet associata alla pagina <%! private int numero; private int numerocasuale() { return Math.abs(new Random().nextInt() % 100) + 1; } %>

56 Dichiarazioni <%! private int numero = 0; private int numerocasuale() { return Math.abs(new Random().nextInt() % 100) + 1; } %> <html> <head> </head> <body> <h1>esempio Dichiarazioni</h1> <h2>valore della variabile <tt>numero</tt>: <%= ++numero %> </h2> <h2>un numero casuale: <%= numerocasuale() %> </body> </html>

57 Dichiarazioni Due metodi particolari: public void jspinit() public void jspdestroy() Il metodo jspinit() (ereditato da HttpJspBase) viene eseguito la prima volta che l'istanza della classe associata alla pagina viene caricata dal contenitore Il metodo jspdestroy() (ereditato da HttpJspBase) viene eseguito quando l'istanza della classe associata alla pagina viene rimossa dal contenitore

58 Direttive Una direttiva JSP influisce sulla struttura complessiva della classe servlet che verrà costruita a partire dal codice JSP Abbiamo tre principali direttive: page include taglib Ad ogni direttiva è associato un insieme di coppie attributo-valore Sintatticamente, la forma generale di una direttiva è direttiva att1="val1" attn="valn" %>

59 Direttiva page page attr1= val1, attr2= val2, %> Attributi principali (ce ne sono altri) import content-type session errorpage iserrorpage

60 Direttiva page, attributo import Attributo import specifica i package e le classi da importare può essercene più di una normalmente all inizio della pagina Esempio: Nella pagina JSP: page import="java.util.*" %> Nella classe servlet corrispondente: import="java.util.*; E' prevista anche una forma abbreviata per importare più package con un unica direttiva page import="java.util.*, java.sql.*" %> Importazioni automatiche (quindi non necessarie) javax.servlet.* javax.servlet.http.* javax.servlet.jsp.*

61 Direttive Nota normalmente sono visibili tutte le classi nella cartella WEB-INF/classes è necessario importare esplicitamente le classi con la direttiva page e l attributo import Suggerimento è opportuno organizzare i componenti in package e importare i package

62 Direttiva page, attributo content-type Attributo content-type specifica il content-type della risposta Se non specificato il default è text/html normalmente all inizio della pagina Esempio: Nella pagina JSP: page contenttype="application/vnd.ms-excel" %> Nel metodo _jspservice() della classe servlet corrispondente: response.setcontenttype( application/vnd.ms-excel );

63 Direttiva page, attributo session Attributo session Controlla se alla pagina è associata una sessione Assume una delle due forme page session="true" %> page session="false" %> La prima forma è il default Comporta la presenza o meno nel metodo _jspservice() dell'istruzione HttpSession session=response.getsession();

64 Direttiva page attributo errorpage Attributo errorpage serve a specificare l URL di una pagina (HTML o JSP) a cui reindirizzare il browser in caso di errori nell esecuzione della pagina Esempio page errorpage="errore.jsp" %> in caso di errore la risposta viene reindirizzata alla pagina errore.jsp

65 Direttiva page attributo iserrorpage Attributo iserrorpage serve a specificare che la pagina può essere utilizzata come pagina di errore valore true o false Esempio page iserrorpage="true" %> Con riferimento all'esempio precedente questa direttiva deve essere specificata nella pagina errore.jsp

66 Direttiva include include file= nome-file %> Direttiva include Un unico attributo: file Valore dell'attributo file: URL di una pagina JSP o HTML Esempio: include file= intestazione.jsp %> Consente di includere a tempo di traduzione il codice della pagina specificata nel servlet generato L inclusione avviene nella posizione in cui si trova la direttiva include Ce ne può quindi essere più di una Le direttive include possono occorrere in qualsiasi posizione nella pagina JSP

67 Direttiva include ATTENZIONE: l'inclusione viene fatta a tempo di traduzione (JSP servlet) quando il codice della pagina JSP inclusa viene modificato il contenitore NON è obbligato a rigenerare e ricompilare la classe servlet Suggerimento: limitare l uso di questa direttiva

68 Gestione della Sessione L'oggetto associato alla sessione è una istanza della classe HttpSession Per ottenerlo dalla richiesta esistono due metodi (di HttpRequest): HttpSession getsession() HttpSession getsession(boolean mode)

69 Gestione della Sessione In pratica il server gestisce una mappa: ogni entry rappresenta una sessione di lavoro distinta La chiave della mappa è un identificatore per la sessione Il valore della mappa è un oggetto che contiene informazioni associate a quella specifica sessione In tutte le risposte al client il server aggiunge automaticamente e in maniera trasparente un cookie che contiene l'identificatore di sessione Attraverso questo identificatore, ad ogni richiesta il server è in grado di recuperare l'oggetto con le informazioni associate alla sessione

70 Gestione della sessione I contenitori JEE mettono a disposizione del programmatore infrastruttura e API per una gestione trasparente di questo meccanismo Nel processare una richiesta, il programmatore deve semplicemente chiedere all'oggetto HttpRequest l'oggetto associato alla sessione Il contenitore, in maniera trasparente, estrae dalla richiesta l'identificatore di sessione e lo usa per recuperare dalla mappa delle sessioni, l'oggetto associato a quell'identificatore Se nella richiesta non viene trovato nessun identificatore (presumibilmente è la prima richiesta) allora un identificatore (e una relativa entry nella mappa delle sessioni) vengono creati automaticamente

71 Ottenere l'oggetto associato alla sessione HttpSession getsession() restituisce la sessione a cui appartiene la richiesta oppure crea una nuova sessione HttpSession getsession(boolean mode) getsession(true) è equivalente a getsession() getsession(false) restituisce la sessione a cui appartiene la richiesta oppure null; non inizializza una nuova sessione nel caso in cui la richiesta non sia già associata ad una sessione

72 La classe HttpSession Offre metodi per Gestione sessione Gestione informazioni associate alla sessione Metodi la gestione della sessione: invalidate(): chiude la sessione di lavoro boolean isnew(): verifica se la sessione è nuova o meno (vedi comportamento metodo getsession()) setmaxinactiveinterval(int interval) getmaxinactiveinterval() getlastaccessedtime() getcreationtime() Vedi documentazione

73 La classe HttpSession Metodi per manipolare le informazioni associate alla sessione Le informazioni sono memorizzate nell'oggetto istanza di HttpSession come attributi (coppie nomevalore) Il nome è una stringa Il valore un oggetto Abbiamo quindi metodi per prendere, aggiungere, togliere attributi (oggetti) associati alla sessione Object getattribute(string name) void setattribute(string name, Object value) void removeattribute(string name)

74 Gestione della Sessione Non sempre l implementazione delle sessioni basata su cookie funziona: le impostazione del browser potrebbero richiedere di rifiutare i cookie JEE offre una valida alternativa Ricordiamo il "trucco" dei cookie per mantenere traccia della sessione: nascondere una informazione nella richiesta e nella risposta La soluzione alternativa consiste nella cosiddetta riscrittura degli URL ( URL rewriting ): si aggiunge un identificatore della sessione agli URL nel codice HTML Anche in questo caso, la soluzione è trasparente al programmatore

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

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

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

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

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

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

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

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

Gestire le sessioni con le Servlet

Gestire le sessioni con le Servlet PROGETTO Gestire le sessioni con le Servlet Con il termine sessione si intende un insieme di attività correlate, con una o alcune di queste che sono preliminari ad altre. Si pensi, per esempio, a un qualsiasi

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

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

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1 I file WAR WAR è una contrazione di Web ARchive. I file WAR consentono di archiviare un intera applicazione web in un unico file. Tomcat fornisce (tramite il Tomcat Manager) un interfaccia grafica per

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

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

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

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

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

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

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

Laboratorio di reti II: Servlet

Laboratorio di reti II: Servlet Laboratorio di reti II: Servlet Stefano Brocchi brocchi@dsi.unifi.it 16 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 1 / 34 Le servlet Una servlet è una classe Java eseguita

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

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

Tomcat. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

Tomcat. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1 Tomcat E uno dei servlet engine più diffusi. Può funzionare sia come prodotto standalone, sia come modulo del web server Apache. Disponibile gratuitamente (per molti sistemi operativi tra cui Linux e Windows)

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

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

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

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

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

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

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

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

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

Tomcat struttura delle directory

Tomcat struttura delle directory Tomcat struttura delle directory $CATALINA_HOME (oppure $TOMCAT_HOME): rappresenta la directory radice dell installazione di Tomcat e contiene le seguenti directory: bin common (lib nelle versioni più

Dettagli

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie

Dettagli

Tutorial web Application

Tutorial web Application Tutorial web Application Installazione della JDK: Java viene distribuito con la jdk e il jre acronimi di Java Development Kit e Java Runtime Environment rispettivamente. La jdk è l'ambiente di sviluppo

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

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 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

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

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

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

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone

Database & WWW. Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone Database & WWW Capitolo 4 Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone 1 Sommario Protocollo HTTP CGI Java Servlet Server-side scripting

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

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB.

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

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

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

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

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

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

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

Corso di Applicazioni Telematiche

Corso di Applicazioni Telematiche Corso di Applicazioni Telematiche A.A. 2008-09 Lezione n.12 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Una Servlet è un componente software scritto in Java,

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

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

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1 MODULO 1 PARTE 3 Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni Goy - a.a. 2012/2013 Programmazione Web 1 Cookie - I Cookie = variabili che il server salva (*) sul client come file

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

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 6 Servlet Servlet: classi java che estendono le funzionalità di un server Web generando dinamicamente le pagine Web. Riferimento: http://java.sun.com/products/servlets

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

Laboratorio di Basi di dati

Laboratorio di Basi di dati Laboratorio di Basi di dati Docente: Alberto Belussi Lezione 6 Servlet Servlet: classi java che estendono le funzionalità di un server Web generando dinamicamente le pagine Web. Riferimento: http://www.oracle.com/technetwork/java/javaee/servlet/index.html

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

Introduzione. Capitolo 9

Introduzione. Capitolo 9 Introduzione Capitolo 9 Applicazioni Internet Internet: Concetti di base Formati di dati per il Web HTML, XML, DTD Introduzione alle architetture a tre livelli Il livello di presentazione Moduli HTML:

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

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

Simulazione seconda prova Esame di Stato Sito Web - Gestione di un centro agroalimentare all ingrosso (Parte seconda)

Simulazione seconda prova Esame di Stato Sito Web - Gestione di un centro agroalimentare all ingrosso (Parte seconda) Simulazione seconda prova Esame di Stato Sito Web - Gestione di un centro agroalimentare all ingrosso (Parte seconda) Il candidato realizzi inoltre il sito Internet del centro che deve permettere, tra

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

Java: la libreria delle classi

Java: la libreria delle classi Java: la libreria delle classi Applet anatomia di un applet cenni di html La libreria JDBC per l accesso ai database il package java.sql 213 Applet Un applet è una applicazione Java che ha una forma particolare

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

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

Sessioni Applicative in Http. Tito Flagella tito@link.it

Sessioni Applicative in Http. Tito Flagella tito@link.it Sessioni Applicative in Http Tito Flagella tito@link.it Perché le sessioni Solitamente le transazioni http sono anonime e indipendenti Le applicazioni hanno bisogno di correlarle tra di loro User1: http://bank.com/prelievo?amount=10000$

Dettagli

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

Primi passi con Apache Tomcat. L application server dell Apache group Primi passi con Apache Tomcat L application server dell Apache group 2 J2EE Direttive Sun Microsystem Che cos è un application server EJB Maggiori application server open source 3 Tomcat Open Source e

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

JAVA SERVLET: I filtri

JAVA SERVLET: I filtri JAVA SERVLET: I filtri INTRODUZIONE Quest oggi vedremo una particolarità delle servlet che è stata introdotta nelle servlet API versione 2.3. I filtri sono un potente meccanismo che è in grado di fare

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

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

3 ServletContext. Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005

3 ServletContext. Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 3 ServletContext Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 ServletContext I interfaccia ServletContext fornisce alla web application (ed i suoi servlet) una serie di funzionalità

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

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

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Maria Vittoria Avolio avoliomv@unical.it Dott.ssa Adriana Pietramala a.pietramala@unical.it Riferimenti Manuale PHP http://www.php.net/download-docs.php

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

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

31/05/2013. Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

31/05/2013. Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano /28 Sistemi Web Distribuiti (parte 2) - Indice dei Contenuti - Naming 3 Sincronizzazione 4 Consistenza e Replica 5 Replica di sistemi

Dettagli

PHP e Structured Query Language

PHP e Structured Query Language Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian loregian@disco.unimib.it www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)

Dettagli

Servizi web in LabVIEW

Servizi web in LabVIEW Servizi web in LabVIEW Soluzioni possibili, come si utilizzano. 1 Soluzioni possibili WEB SERVER Dalla versione 5.1 di LabVIEW è possibile implementare un Web server che consente di operare da remoto sul

Dettagli

Argomenti della lezione JSP Introduzione Introduzione Architettura Ciclo di vita

Argomenti della lezione JSP Introduzione Introduzione Architettura Ciclo di vita 1 Argomenti della lezione JSP [1] Concetti Fondamentali Preliminari Architettura Ciclo di Vita Sintassi JSP: elementi principali Blocchi di Istruzioni ( Scriptlet ) Oggetti Predefiniti Espressioni Dichiarazioni

Dettagli

Application Server per sviluppare applicazioni Java Enterprise

Application Server per sviluppare applicazioni Java Enterprise Application Server per sviluppare applicazioni Java Enterprise Con il termine Application Server si fa riferimento ad un contenitore, composto da diversi moduli, che offre alle applicazioni Web un ambiente

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

Osservazioni. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2005/06-1

Osservazioni. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2005/06-1 Osservazioni Nell esempio della precedente lezione del contatore di accessi persistente il nome del file in cui memorizzare il numero di hit ed il valore iniziale del contatore sono codificati direttamente

Dettagli

RMI Remote Method Invocation

RMI Remote Method Invocation RMI Remote Method Invocation [Pagina intenzionalmente vuota] (1 12 2004) slide 4:1/18 (p.106) Un applicazione RMI è un applicazione distribuita ad oggetti. Applicazione RMI tipica, strutturata in: server:

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

AA 2003-2004 Esame di Tecnologie Informatiche per il Web - Prof. Piero Fraternali Prova straordinaria del 19 marzo 2004 Esercizio 1 (6 punti)

AA 2003-2004 Esame di Tecnologie Informatiche per il Web - Prof. Piero Fraternali Prova straordinaria del 19 marzo 2004 Esercizio 1 (6 punti) AA 2003-2004 Esame di Tecnologie Informatiche per il Web - Prof. Piero Fraternali Prova straordinaria del 19 marzo 2004 Esercizio 1 6 punti) Si descriva il formato della richiesta e della risposta HTTP,

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

Progetto di Gestione Documenti in Ambiente Web

Progetto di Gestione Documenti in Ambiente Web Progetto di Gestione Documenti in Ambiente Web Sessione Febbraio 2013 Marco Taddei 726523 Federico Valentini 726584 Il progetto SharesShop simula un portale web di una banca che mette a disposizione dei

Dettagli

1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages

1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages 1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages Le JSP DynPages sono un utile strumento, fornito da SAP Netweaver, per una gestione più evoluta di event handling e session

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

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

Messa in esercizio, assistenza e aggiornamento di una Piattaform Open Source Liferay plug-in per ARPA Messa in esercizio, assistenza e aggiornamento di una Piattaform Open Source Liferay plug-in per ARPA Pag. 1 di 16 Redatto da F. Fornasari, C. Simonelli, E. Croci (TAI) Rivisto da E.Mattei (TAI) Approvato

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

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

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Programmazione in Rete e Laboratorio Comunicazione distribuita Port1 Java VM1 Java VM2 Port 2 Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino

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

JSP - Caso di studio 1 Una galleria di immagini

JSP - Caso di studio 1 Una galleria di immagini JSP - Caso di studio 1 Una galleria di immagini Le classi dell applicazione Il file di configurazione La pagina indice Il caricamento di una nuova immagine Eliminazione di un immagine Visualizzazione di

Dettagli