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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dettagli

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

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

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

Architettura MVC-2: i JavaBeans

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

Dettagli

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

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

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

Dettagli

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

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

Il Web Server e il protocollo HTTP

Il Web Server e il protocollo HTTP Corso PHP Parte 2 Il Web Server e il protocollo HTTP E un programma sempre attivo che ascolta su una porta le richieste HTTP. All arrivo di una richiesta la esegue e restituisce il risultato al browser,

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

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

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

Antonio d Acierno 13/01/2006

Antonio d Acierno 13/01/2006 Introduzione alle Servlet Corso di Sistemi Web e Basi Dati Prof. Antonio d Acierno Servlet Alternativa Java ai CGI-BIN Classi java che estendono le funzionalità di un server Web generando dinamicamente

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

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

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

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

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

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

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

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

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

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

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

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l. Progetto SITI Manuale Utente SITI-Reports ABACO S.r.l. ABACO S.r.l. C.so Umberto, 43 46100 Mantova (Italy) Tel +39 376 222181 Fax +39 376 222182 www.abacogroup.eu e-mail : info@abacogroup.eu 02/03/2010

Dettagli

XML e PHP. Gestire XML con PHP. Appendice

XML e PHP. Gestire XML con PHP. Appendice Appendice XML e PHP Tra tutti i linguaggi di programmazione esistenti PHP è tra quelli che meglio si adattano all elaborazione di documenti XML. PHP è un linguaggio di programmazione che consente di arricchire

Dettagli

Web Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work

Web Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work Web Programming Lezione 4: Cookie e Sessioni Giulio Rossetti Guru@Work 14/04/2011 Contatti Materiale Tutto il materiale del corso sarà reso disponibile sul sito: www.guruatwork.com (e su blog.giuliorossetti.net)

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

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

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

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

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

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

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

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

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

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

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

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

Programmazione Java Avanzata Spring - JDBC

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

Dettagli

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

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

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

Visualizzazione ordini in MyShopDB

Visualizzazione ordini in MyShopDB Visualizzazione ordini in MyShopDB Risolviamo gli esercizi della lezione scorsa, scrivendo una pagina ordini.jsp che visualizzi le intestazioni di ogni ordine (numero d ordine, data, nome, cognome, indirizzo,

Dettagli

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

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: http:// sdfonline.unimc.it/info/modulo.jsp; JAVA SERVER PAGES Una pagina JSP (Java Server Pages), richiesta da un utente (client), viene eseguita dal server web nella propria memoria; generalmente il prodotto dell elaborazione è una pagina html

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

Corso di Amministrazione di Reti A.A. 2002/2003

Corso di Amministrazione di Reti A.A. 2002/2003 Struttura di Active Directory Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm

Dettagli

Stampe in rete Implementazione corretta

Stampe in rete Implementazione corretta NETWORK PRINT SERVERS Articolo Stampe in rete Implementazione corretta Created: June 3, 2005 Last updated: June 3, 2005 Rev:.0 INDICE INTRODUZIONE 3 INFRASTRUTTURA DELLE STAMPE IN RETE 3. Stampa peer-to-peer

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Product Shipping Cost Guida d'installazione ed Utilizzo

Product Shipping Cost Guida d'installazione ed Utilizzo Guida d'installazione ed Utilizzo Installazione Per installare il modulo è sufficiente copiare la cartella app del pacchetto del modulo nella cartella principale dell'installazione di Magento dove è già

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

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication

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

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

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente

Dettagli

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica Installatore LAN Progetto per le classi V del corso di Informatica Active Directory 26/02/08 Installatore LAN - Prof.Marco Marchisotti 1 Agli albori delle reti...... nelle prime LAN era facile individuare

Dettagli

Lezione 1 Introduzione

Lezione 1 Introduzione Lezione 1 Introduzione Ingegneria dei Processi Aziendali Modulo 1 Servizi Web Unità didattica 1 Protocolli Web Ernesto Damiani Università di Milano I Servizi Web Un Servizio Web è un implementazione software

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

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

Test di unità con JUnit4

Test di unità con JUnit4 Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso

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

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

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

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

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione

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

XML: extensible Markup Language

XML: extensible Markup Language XML: extensible Markup Language Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino laura.farinetti@polito.it L. Farinetti - Politecnico di Torino 1 Introduzione XML: extensible Markup

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

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

Client - Server. Client Web: il BROWSER

Client - Server. Client Web: il BROWSER Client - Server Client Web: il BROWSER Il client Web è un applicazione software che svolge il ruolo di interfaccia fra l utente ed il WWW, mascherando la complessità di Internet. Funzioni principali Inviare

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Messaggi volatili. Matteo Zignani. 10 gennaio 2015

Messaggi volatili. Matteo Zignani. 10 gennaio 2015 UNIVESITÁ DEGLI STUDI DI MILANO LAUREA TRIENNALE IN COMUNICAZIONE DIGITALE PROGETTO LABORATORIO DI RETI DI CALCOLATORI Messaggi volatili Matteo Zignani 10 gennaio 2015 1 PRESENTAZIONE DEL PROBLEMA Lo studente

Dettagli