Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia"

Transcript

1 Java Enterprise Edi.on Gabriele Tolomei DAIS Università Ca Foscari Venezia

2 Programma del Corso 09/01 Introduzione 10/01 Java Servlets 16-17/01 JavaServer Pages (JSP) 23-24/01 Lab: Applicazione AffableBean 30-31/01 Enterprise JavaBeans (EJB) + Lab

3 Modulo 2: Java Servlets Tecnologie web server- side Applicazioni client/server su Web (HTTP) Java Servlets Ruolo all interno della pia\aforma Java EE Esercitazione Creazione di un proge\o web dinamico su Eclipse

4 Il Web Il Web nasce per consen.re la condivisione di risorse distribuite su hosts collega. tra loro tramite Internet Definisce 2 ruoli: Client à esegue richieste di accesso alle risorse Server à memorizza le risorse ed evade le richieste verso i clients

5 Stru\ura del Web Si basa sul noto stack di protocolli di rete TCP/IP e su di esso definisce 3 concea fondamentali: un sistema per l iden.ficazione univoca di risorse distribuite (URL) un protocollo di richiesta/risposta tramite cui le risorse vengono trasferite tra il client ed il server (HTTP) un linguaggio (HTML) per la rappresentazione di par.colari risorse: pagine Web connesse tra loro da hyperlinks (grafo del Web)

6 URL: Uniform Resource Locator Ogni URL è composto da: protocollo (ad es.: HTTP, FTP, telnet, etc.) user/password (opzionali per accedere al server) indirizzo del server Web so\oforma di IP (ad es.: ) Nome (ad es.: porta del servizio TCP a cui conne\ersi (opzionale) i server Web acce\ano richieste di connessione sulla porta 80 (default) path della risorsa richiesta (ad es.: /index.html) eventuali parametri della richiesta (opzionali) u.li nelle applicazioni Web per lo scambio di da. tra il browser ed il server (ad es., form HTML)

7 HTTP: HyperText Transfer Protocol Stabilisce le regole con cui client e server comunicano Definisce un formato standard (IETF RFC 2616) dei messaggi di richiesta/risposta Client: apre connessione con il server Web specificato nell URL ed invia ad esso una richiesta HTTP Server: evade la richiesta ed invia la risposta HTTP sulla connessione aperta dal Cliente e la chiude

8 HTTP: Richiesta Client Request method HTTP Request Request headers Empty line Request body (op.onal)

9 HTTP: Metodi di Richiesta HTTP definisce i seguen. metodi di richiesta: GET, POST, PUT, DELETE, HEAD GET e POST sono le più u.lizzate Eventuali parametri della richiesta possono essere specifica.: nella query string (URL) se si usa il metodo GET h\p://example.com/sayhello?param1=val1&param2=val2 nel corpo della richiesta se si usa il metodo POST in combinazione con form HTML

10 HTTP GET (senza parametri) h\p:// GET /index.html HTTP/1.1 Host: Empty line

11 HTTP GET (con parametri) h\p:// GET /sayhello?param1=val1&param2=val2 HTTP/1.1 Host: Empty line

12 HTTP POST h\p:// POST /sayhello HTTP/1.1 Host: Content- Type: applica.on/x- www- form- urlencoded Empty line param1=val1&param2=val2

13 HTTP: URL- Encoding I parametri invia. tramite form HTML nel corpo della richiesta HTTP POST devono essere opportunamente codifica. Lista di coppie (chiave, valore) Esempio: name: Jonathan Doe, age: 23, func: a + b == 10%! sono codifica. come name=jonathan+doe&age=23&func=a+%2b+b+%3d %3D+10%25%21

14 HTTP: Risposta Server Response status code HTTP Response Response headers Empty line Response body (op.onal)

15 HTTP: Codici di Risposta 2xx = Successo 200 OK à la richiesta ha avuto successo GET: l en.tà corrispondente alla richiesta viene inviata nella risposta POST: l en.tà corrispondente al risultato dell azione richiesta viene inviata nella risposta 3xx = Redirezione 4xx = Errore Client 401 Bad Request, 404 Not Found, etc. 5xx = Errore Server 500 Internal Server Error, 503 Service Unavailable, etc.

16 HTTP 200 OK HTTP/ OK Date: Server: Apache Content- Type: text/html; charset=utf- 8 Empty line <html> <head> <.tle> </.tle> </head> <body> </body> </html> HTTP Response

17 HTML: HyperText Markup Language Linguaggio di markup (tag) con cui vengono scria i documen. Web Viene interpretato e renderizzato dai browsers Definisce alcuni tag standard <html> à inizio del file HTML <body> à inizio del contenuto da renderizzare <a href= URL > à hyperlink ad un altra risorsa <form ac.on= URL > à form invio da. al server

18 HTML: Form Sono u.lizza. per inviare i da. dal client (utente tramite browser) al server Web All interno con.ene tag specifici che definiscono i parametri da inviare <input name=nome type=.po value=valore> type può avere i seguen. valori: text à campo di testo di 1 riga password à campo password hidden à campo nascosto submit à pulsante di invio del form

19 Java EE: Archite\ura Mul.-.er Java EE Applica.on Server Web Client Web Tier Connector/ Messaging Tier Legacy Tier B2B Client Business Tier Data Access Tier Data Tier Client Tier Middle Tier Data Tier

20 Contenu. web dinamici Necessari per andare oltre le solite pagine web HTML sta.che Una pagina web dinamica varia il proprio contenuto a seconda dei parametri forni. dal client al momento della richiesta Il sorgente HTML della pagina viene generato dal server web in modo dinamico prima di essere res.tuito al browser e renderizzato Client- vs. Server- side scrip.ng

21 Client- side scrip.ng La dinamicità riguarda la singola pagina web Cambiamen. in risposta ad azioni specifiche (mouse, tas.era, etc.) Il contenuto dinamico è generato da codice in esecuzione sul client Principale linguaggio di scrip.ng client- side: JavaScript

22 Server- side scrip.ng La dinamicità riguarda più di una singola pagina web Il contenuto dinamico è generato da codice in esecuzione lato (web) server Ges.sce sessioni utente e controlla il flusso dell applicazione HTML form, parametri nella URL di richiesta,.po di browser usato, ecc. Principali linguaggi server- side: Perl, PHP, Java, ASP Estensioni server- side: CGI, JSP, ASP.NET

23 Tecnologie web server- side

24 CGI: Common Gateway Interface Interfaccia tra il server web e i programmi (script CGI) usa. per generare i contenu. dinamici Ogni richiesta al server provoca l esecuzione del corrispondente script CGI so\oforma di un nuovo processo Vantaggi: semplice, diffuso, indipendente dal linguaggio (Perl e Python più u.lizza.) Svantaggi: altamente inefficiente

25 ColdFusion ColdFusion Markup Language (CFML) Sviluppato e controllato da Macromedia Potente e di facile u.lizzo Ancora piu\osto diffuso

26 PHP PHP Hypertext Preprocessor Spesso u.lizzato all interno di server web Apache Ideale per lo sviluppo di piccole applicazioni web facile e potente Molto popolare nella comunità open source LAMP (Linux Apache MySQL PHP)

27 ASP: Ac.ve Server Pages Sviluppato e controllato da Microso Estensione per server web Microso IIS Linguaggi supporta. per la creazione di contenu. dinamici: VBScript JavaScript VisualBasic C# (ASP.NET)

28 Java Servlet/Java Server Pages (JSP) Sviluppato da Java Community Process Parte dello standard Java EE OO, pla~orm- independent, efficiente, scalabile, Consente la separazione tra il livello di presentazione (interfaccia) e la logica applica.va

29 CGI vs. Servlet/JSP

30 CGI vs. Servlet/JSP CGI 1 richiesta client è 1 processo server Servlet/JSP 1 richiesta client è 1 thread all interno dello stesso processo server JVM Oamizzazione delle risorse Processo vs. Thread

31 Java Servlet: Vantaggi Condividono tua i vantaggi del sw scri\o in Java: Portabilità, OO, riuso, supporto di librerie già esisten., efficienza, sicurezza, etc. Si basano su una ben consolidata API specifica per il protocollo HTTP: processing delle richieste generazione delle risposte ges.one delle sessioni e dei cookies

32 Servlet e Applicazioni Web

33 Servlet e Applicazioni Web (2) Sia le Servlets che le JSPs sono eseguite all interno di archivi Web (WAR) I WAR a loro volta sono in esecuizione su un Servlet Container (parte delle specifiche Java EE server) Nel caso di JBoss, il Servlet Container coincide con il servizio Apache Tomcat

34 Servlet e Applicazioni Web (3) Le applicazioni web sono isolate l una dall altra all interno dello stesso Servlet Container Il Servlet Container fornisce tua quei servizi di basso livello necessari per il ciclo di vita di Servlets e JSPs: ges.one delle connessioni HTTP, sessioni, threading, sicurezza, ges.one delle risorse, monitoring, deployment, etc.

35 Ma che cos è una Java Servlet? È una normale classe Java che consente l interazione richiesta/risposta con un applicazione secondo il modello client/server Le Servlets sono proge\ate per ges.re qualunque.po di protocollo richiesta/risposta Tipicamente vengono usate per l implementazione di applicazioni che interagiscono secondo il protocollo HTTP (richiesta/risposta via Web)

36 Java Servlet: Packages È definita all interno del package standard javax.servlet Ogni Servlet deve implementare l interfaccia javax.servlet.servlet specifica i metodi rela.vi al ciclo di vita Le Servlets che ges.scono protocolli di richiesta/ risposta generici devono estendere javax.servlet.genericservlet Le Servlet specifiche per la ges.one del protocollo HTTP devono estendere javax.servlet.h\p.h\pservlet

37 Java Servlet: Esempio

38 Java Servlet: Ciclo di Vita A fronte di una richiesta da parte del client il container: 1. Verifica che la Servlet sia già stata caricata a. Se non lo è, provvede a caricare la classe corrispondente e ne genera un istanza b. Inizializza l istanza appena creata invocando su di essa il metodo init 2. Invoca il metodo service corrispondente all istanza della Servlet passando come argomen. gli oggea che rappresentano la richiesta e la risposta La rimozione della Servlet dal container si oaene tramite una chiamata al metodo destroy

39 Servlet S Servlet Container JVM Loading/Instan.a.on Class.forName().newInstance() Ini.alize init() 1 request = 1 thread Servicing service() YES Unload/Garbage Collector finalize() Destroy destroy() isloaded S NO Incoming client requests for the Servlet S

40 Java Servlet: Ciclo di Vita (2) I metodi init e destroy vengono chiama. solo una volta, rispeavamente alla creazione e rimozione della Servlet Il metodo service viene chiamato una volta per ciascuna richiesta (spesso in modo concorrente da più threads) Nel caso di H\pServlet al posto del metodo service (che pure è presente) vengono invoca. metodi più specifici che corrispondono al protocollo HTTP: HTTP GET à doget HTTP POST à dopost

41 Java Servlet: Inizializzazione Per customizzare l inizializzazione una Servlet può implementare o fare overriding del metodo init Il metodo init prende come argomento un istanza di javax.servlet.servletconfig con.ene i parametri di inizializzazione u.lizza il file descri\ore in WEB- INF/web.xml Anche GenericServlet implementa l interfaccia ServletConfig metodo init con nessun argomento

42 Java Servlet: Inizializzazione

43 Richiesta/Risposta: service La ges.one della richiesta/risposta è affidata al metodo service che ha i seguen. argomen.: ServletRequest: richiesta del cliente (le\ura) ServletResponse: risposta al cliente (scri\ura) Nel caso specifico di H\pServlet il metodo service è un dispatcher verso altri metodi specifici del protocollo HTTP (doget, dopost, ) H\pServletRequest: HTTP request H\pServletResponse: HTTP response

44 Le\ura:(HOp)ServletRequest La richiesta del client consente di accedere alle seguen. informazioni: Client: IP/hostname, porta Browser: locale, headers, security Request: headers, cookies, path, parameters, content- type, - length, - encoding, - body User: authoriza.on/authen.ca.on (role) Session: a\ribu. della sessione Request shared storage: a\ribu. della richiesta

45 (HOp)ServletRequest

46 Scri\ura:(HOp)ServletResponse La risposta al client consente di accedere alle seguen. informazioni: Codici di stato Headers Cookies Contenuto: length, type, body URL Encoding: session tracking È importante specificare il codice di stato (default HTTP 200 OK) e gli headers della risposta HTTP prima che questa sia inviata al client

47 (HOp)ServletResponse

48 Java Servlet: Distruzione Il metodo destroy viene invocato ogni volta che la Servlet deve essere deallocata ad es.: stop del server, reloading dell applicazione Possibile chiamata del metodo service su una Servlet su cui è stato invocato il metodo destroy in ambiente mul.- threading Thread- safe Tu\e le risorse allocate al momento della init sono rilasciate Il metodo destroy viene chiamato una sola volta durante il ciclo di vita della Servlet

49 Java Servlet: Distruzione

50 Java Servlet: Deployment Prima di poter essere usata una Servlet deve essere: Compilata tramite le classi fornite dalla Servlet API Java EE SDK Servlet container: ${jboss.common.lib.url}/servlet- api.jar specificata nel descri\ore dell applicazione web (WEB- INF/web.xml) impacche\ata in un archivio WAR distribuita su un Servlet container (Java EE AS) acceduta tramite URL(s)

51 Il Descri\ore Web: WEB- INF/web.xml File di configurazione dell applicazione web Specifica: Nome, descrizione Filters e Servlets (mapping + init parameters) Listeners Session.meout Welcome files: index.html, index.jsp, etc. Risorse e riferimen. a EJB

52 Il Descri\ore Web: WEB- INF/web.xml

53 Java Servlet: Definizione e Mapping Definizione Nome Fully- qualified Class name Parametri di inizializzazione (opzionali) URL Mappings

54 Stru\ura Applicazione Web Supponiamo di aver sviluppato l applicazione myservletapp Packaging in una gerarchia di directories specifica myservletapp Contenu. sta.ci (.html,.gif,.jpg,.js,.css, etc.) File JSP (.jsp) WEB- INF/web.xml (descri\ore obbligatorio) WEB- INF/classes/ risultato della compilazione dei sorgen. (.class) WEB- INF/lib/ librerie aggiun.ve (.jar)

55 Stru\ura Applicazione Web (2) Supponiamo di: aver sviluppato l applicazione myservletapp aver implementato 3 Servlets HelloServlet, HelloWorldServlet, IPLoggerServlet usando il package it.sipe.javaee.servlet La stru\ura delle directories sarà la seguente: myservletapp/ - WEB- INF/ web.xml classes/ - it/sipe/javaee/servlet/ - HelloServlet.class - HelloWorldServlet.class - IPLoggerServlet.class

56 Stru\ura Applicazione Web (3) L applicazione web può essere compressa in un archivio WAR (file.war) L archivio non deve contenere la root dell applicazione (myservletapp/) il nome dell archivio diventa quello dell applicazione L archivio WAR può essere generato con i tools messi a disposizione dal JDK o, meglio, da un tool chiamato Ant

57 Deployment dell applicazione web Operazione specifica che dipende dal par.colare Java EE AS Solitamente è sufficiente copiare la directory root dell applicazione (o il corrispondente archivio WAR) nella directory di deployment del server Java EE Su JBoss questo si traduce in copiare all interno di ${jboss.server.home.url}/deploy/ la directory root dell applicazione myservletapp/ oppure L archivio WAR dell applicazione myservletapp.war

58 Accesso alle Servlet Garan.to tramite URL mapping URLs mul.pli possono puntare alla stessa Servlet I mapping possono basarsi anche su wildcards *.ip, /ip/*, etc. Gli URLs sono rela.vi al contesto dell applicazione (/myservletapp/)

59 Accesso alle Servlet

60 Java Servlet + Eclipse Eclipse semplifica notevolmente lo sviluppo di un applicazione web Usare il wizard per creare un Proge\o Web Dinamico questa operazione aggiunge tu\e le librerie Java EE necessarie al proge\o Usare il wizard per la creazione di Servlet Facilita l implementazione dei metodi della Servlet Aggiorna automa.camente il descri\ore (web.xml) Packaging WAR dell applicazione Un- /Re- /Deploy del WAR

61 Eclipse: Creazione Proge\o Web Dinamico File à New à Dynamic Web Project Specificare il nome del proge\o (ad es. myservletapp) Selzionare JBoss 5.1 come target run.me Click su Next à Next à Finish

62

63 Eclipse: Creazione Servlet (1) Click destro sul proge\o creato New à Servlet Specificare il package ad es.: it.sipe.javaee.servlet Specificare il nome della classe Servlet ad es.: MyServlet Click su Next à Finish La Servlet verrà automa.camente mappata sull URL /MyServlet

64

65 Eclipse: web.xml Aggiungere un parametro di inizializzazione nel descri\ore web.xml U.lizzare il tag <init- param>

66 I metodi: doget e dopost Implementare il metodo doget per rispondere a richieste HTTP GET Implementare il metodo dopost per rispondere a richieste HTTP POST Spesso si implementa solo uno dei due metodi (ad es. doget) e l altro (ad es. dopost) richiama semplicemente il metodo già implementato

67 I metodi: doget e dopost doget dopost

68 Eclipse: Packaging dell applicazione Click destro sul proge\o Export à WAR file Specificare il nome, la des.nazione e oamizzazione per il target run.me (JBoss 5.1)

69

70 Deployment dell applicazione Copiare l archivio WAR generato all interno della directory ${jboss.server.home.url}/deploy Avviare il server Jboss via script o tramite Eclipse Osservare il deployment sul log della console

71 Tes.ng dell applicazione Accedere al seguente URL: h\p://localhost:8080/myservletapp/myservlet

72 Lab: esercitazione 1 Creare un proge\o Web su Eclipse chiamato myservletapp All interno di esso creare una Servlet SayHelloServlet che è mappata sull URL /sayhello (rela.vo all applicazione Web) Implementare il metodo doget in modo che: la Servlet accea un parametro nome dalla richiesta HTTP GET (query string) a fronte della richiesta h\p://localhost:8080/myservletapp/sayhello?nome=x res.tuisca al client una pagina HTML che con.ene la stringa Hello X NOTA: il valore del generico parametro paramname contenuto nella richiesta HTTP si oaene invocando il metodo getparameter(string paramname) sull ogge\o HOpServletRequest argomento del metodo doget

73 Lab: esercitazione 2 Creare una Servlet ConverVTempServlet che è mappata sull URL /conver.temp Implementare il metodo doget in modo che: la Servlet accea 3 parametri dalla richiesta HTTP GET: temp, da, a a fronte della richiesta res.tuisca al client una pagina HTML che con.ene: la conversione del valore della temperatura specificata nel parametro temp dalla scala espressa nel parametro da a quella indicata dal parametro a oppure un errore, nel caso di problemi sui parametri di input Le scale consen.te sono indicate con C (Celsius), F (Fahrenheit) e K (Kelvin) e i valori di temperatura possono rappresentare int o double

74 Ges.one della Richiesta Le Servlet possono ges.re le richieste DireOamente risposta dire\a al client IndireOamente Lato Server: tramite l inclusione lato server del contenuto di un altra risorsa (include) tramite l inoltro lato server della richiesta ad un altra risorsa (forward) Lato Client: tramite l inoltro della richiesta ad un altra risorsa previa comunicazione con il client (redirect)

75 Ges.one Indire\a della Richiesta: Lato Server Lo stesso oggeoo che rappresenta la richiesta viene trasferito ad un altra risorsa server (ad es. una Servlet) Il forwarding della richiesta è interamente eseguito lato server dal container ed è trasparente e nascosto al client (ecco perché l URL nel browser non cambia!) Per invocare un altra risorsa la Servlet deve o\enere un ogge\o RequestDispatcher con il metodo della richiesta getrequestdispatcher(string url)

76 RequestDispatcher L istanza dell ogge\o RequestDispatcher può includere o inoltrare la coppia (req, resp) L URL è rela.vo al Servlet Context (intera app) se inizia con il cara\ere / L URL è rela.vo alla Servlet corrente se non inizia con il cara\ere / Può specificare un qualsiasi.po di risorsa: Es., Servlet, JSP, HTML

77 RequestDispatcher: include vs. forward Con il metodo include, RequestDispatcher aggiunge il contenuto della risorsa alla Servlet chiamante Con il metodo forward, RequestDispatcher chiude il buffer di output della Servlet chiamante e passa totalmente la ges.one della richiesta alla risorsa chiamata

78 RequestDispatcher: Esempio

79 Ges.one Indire\a della Richiesta: Lato Client Alterna.va al forwarding ges.to lato server Il forwarding della richiesta ad un altra risorsa passa prima nuovamente al client Il container istruisce il browser sulla nuova richiesta da eseguire tramite header HTTP Il client inizia una nuova comunicazione con il server all URL specificato (l URL stavolta cambia nel browser!) Per invocare un altra risorsa la Servlet deve chiamare il seguente metodo sull ogge\o risposta sendredirect(string url)

80 Forward vs. Redirect Forward (lato server): la richiesta originale del client non viene modificata e passa da una risorsa all altra Possibile inoltrare la richiesta solo a componen. server interni allo stesso dominio dell applicazione Redirect (lato client) la richiesta originale viene persa e il server indica al browser di effe\uare una nuova richiesta verso la risorsa alla quale vogliamo inoltrare il controllo Possibile inoltrare la richiesta a risorse esterne al dominio dell applicazione

81 Forward vs. Redirect Forward (lato server): Preferibile perché più leggero se la richiesta può essere interamente ges.ta dallo stesso dominio Redirect (lato client) Inevitabile quando è necessario trasferire il controllo a componen. che risiedono su altri domini (ad es. broker per il pagamento online)

82 Passaggio di Da.: Request Scope Necessario quando la ges.one della singola richiesta è affidata a più Servlets Le Servlets condividono i da. della richiesta nella cosidde\a request scope storage ServletRequest definisce i seguen. metodi per i da. condivisi nel request scope: void setaoribute(string k, Object v) Object getaoribute(string k) void removeaoribute(string k)

83 Request Scope I da. sono disponibili per l intera durata della richiesta e vengono elimina. una volta che questa è stata servita SecServlet LoginServlet

84 Passaggio di Da.: Session Scope HTTP è un protocollo stateless Spesso necessario mantenere informazioni di stato del cliente a\raverso più richieste HTTP (session) Java EE servers offrono questa possibilità in modo semplice per lo sviluppatore dell applicazione

85 Session Scope 1. Alla prima richiesta, il server crea un ogge\o session e gli assegna un ID univoco (sessionid) che invia al client 2. Ad ogni richiesta successiva, il client invia sessionid so\oforma di cookie o di parametro della richiesta 3. Il server recupera l ogge\o corrispondente al sessionid ricevuto e lo rende disponibile all applicazione 4. L applicazione usa l ogge\o sessione per memorizzare (alcuni) da. dell utente

86 Session Scope: Cookie Il server capisce automa.camente se il browser (client) supporta i cookies Se i cookie sono supporta., il server crea un session cookie (JSESSIONID) e lo invia al client come risposta della prima richiesta Il client invierà al server il cookie JSESSIONID ad ogni successiva richiesta

87 Session Scope: Response Se i cookie non sono supporta. (o sono disabilita.), il server include l ID della sessione in ogni URL che res.tuisce al client (response) Gli URL devono essere opportunamente codifica. con il metodo encodeurl(string url) della classe HOpServletResponse Un URL codificato con.ene la stringa ;jsessionid=xxx in coda al path della richiesta ma prima di eventuali parametri specifica. nella query string (HTTP GET)

88 HOpSession Per accedere all ogge\o che iden.fica la sessione utente, invocare il metodo getsession() della classe HOpServletRequest Per salvare da. in sessione invocare il metodo session.setaoribute(key, value) Per recuperare/rimuovere un dato dalla sessione invocare session.getaoribute(key) session.removeaoribute(key)

89 HOpSession (2) Le chiavi sono di.po String mentre i valori sono Object (serializzabili) Gli oggea HOpSession sono distrua al momento dell invocazione di invalidate() Le sessioni che non sono u.lizzate oltre un certo.meout vengono automa.camente invalidate

90 HOpSession: Esempio

91 Configurazione della Sessione Specificare il valore per il tag <session- Vmeout> figlio di <session- config> nel file web.xml Il valore (espresso in minu.) indica per quanto tempo il Servlet Container man.ene una sessione inaava (in memoria o su disco) Valori <=0 indicano che la sessione non verrà mai distru\a a meno di azioni esplicite (ad es. logout dell utente) Il.meout ha conseguenze significa.ve sulle performance (uso delle risorse) del server

92 Timeout della Sessione

93 Passaggio di Da.: ApplicaVon Scope I da. contenu. nello scope request e session sono validi rispeavamente all interno di una richiesta e di una sessione Se è necessario condividere da. per l intera durata dell applicazione occorre un altro scope di memorizzazione: applica.on scope O\enere un riferimento a ServletContext tramite il metodo super.getservletcontext()

94 ServletContext O\enere un riferimento a ServletContext tramite il metodo super.getservletcontext() Usare l istanza recuperata per invocare i metodi get/set/remove per o\enere, valorizzare, rimuovere a\ribu. dell applicazione U.lizzato per caching e da. globali all applicazione

95 ApplicaVon Scope: Esempio

96 Inizializzazione Applicazione Come le Servlets, anche le applicazioni possono avere parametri di inizializzazione Defini. nel web.xml come tag <context- param> prima di qualsiasi dicharazione di Servlet Accedu. tramite il metodo getinitparameter della classe ServletContext Servlet.getInitParameter vs. ServletContext.getInitParameter

97 Inizializzazione Applicazione: Esempio

98 Thread- Safety Un Java EE server è un applicazione Java mulv- threaded I da. che sono condivisi possono venir accedu. in modo concorrente Necessario proteggere: Oggea che riferiscono a\ribu. negli scope session e applicavon (context) Da. in memoria principale: classi e variabili di istanza Risorse esterne : file, connessioni a DB e/o di rete

99 Thread- Safety (2) I da. sono accedu. in modo concorrente da: Diversi componen. web del server Richieste concorren. alla stessa componente server

100 Thread- Safety: Esempio

101 Response: Binary Data A volte è u.le res.tuire una risposta al client che contenga da. binari (ad es. immagine) Occorre u.lizzare getoutputstream anziché il solito getwriter

102 Response: Binary Data

103 Welcome File List Configurabili in <welcome- file- list> nel web.xml Definisce i file da res.tuire a fronte di una richiesta di una directory sul server h\p://

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

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

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

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

Protocolli applicativi: FTP

Protocolli applicativi: FTP Protocolli applicativi: FTP FTP: File Transfer Protocol. Implementa un meccanismo per il trasferimento di file tra due host. Prevede l accesso interattivo al file system remoto; Prevede un autenticazione

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

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Enterprise Edi.on Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Web Services Web Services: SOAP vs. RESTful 2 diversi.pi di Web Services I Web Services SOAP sono quelli classici Si basano

Dettagli

Programmazione server-side: Java Servlet

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

Dettagli

Introduzione alla programmazione Http lato server in Java

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

Dettagli

Laboratorio di Basi di Dati

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

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: 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

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

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

Componenti Web: client-side e server-side

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

Dettagli

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

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

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

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

Internet Architettura del www

Internet Architettura del www Internet Architettura del www Internet è una rete di computer. Il World Wide Web è l insieme di servizi che si basa sull architettura di internet. In una rete, ogni nodo (detto host) è connesso a tutti

Dettagli

Protocolli e architetture per WIS

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

Dettagli

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

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

Dettagli

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

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4) Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione

Dettagli

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine. ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione

Dettagli

Bibliografia: Utenti e sessioni

Bibliografia: Utenti e sessioni Bibliografia: Utenti e sessioni http: protocollo stateless http si appoggia su una connessione tcp e lo scambio nel contesto di una connessione si limita a invio della richiesta, ricezione della risposta.

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

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

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita Architettura client/ stazioni utente Basi di ati Architetture /Server B locali M BG Architettura centralizzata Un architettura è centralizzata quando i dati e le (programmi) risiedono in un unico Tutta

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

Come funziona internet

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

Dettagli

Introduzione all elaborazione di database nel Web

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

Dettagli

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

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere

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

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web Corso di PHP 6.1 PHP e il web 1 1 Prerequisiti Conoscenza HTML Tecnica della programmazione Principi di programmazione web 2 1 Introduzione In questa Unità illustriamo alcuni strumenti di programmazione

Dettagli

ESERCITAZIONE Semplice creazione di un sito Internet

ESERCITAZIONE Semplice creazione di un sito Internet ESERCITAZIONE Semplice creazione di un sito Internet Sistemi e Tecnologie Informatiche - Prof. Gregorio Cosentino 1 Internet Una rete globale che connette milioni di computer in tutto il mondo, anarchica

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

Architettura client-server

Architettura client-server Architettura client-server In un architettura client-server ci sono due calcolatori connessi alla rete: un client che sottopone richieste al server un server in grado di rispondere alle richieste formulate

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

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

OSOR. Applicazioni di Rete

OSOR. Applicazioni di Rete OSOR Applicazioni di Rete 1 Client-Server in Sistemi Distribuiti Host A Host B Client TCP/UDP IP Network Interface Internet Risultati Server TCP/UDP IP Network Interface Richiesta Applicazioni di Rete

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

InterNet: rete di reti

InterNet: rete di reti Internet e il web: introduzione rapida 1 InterNet: rete di reti Una rete è costituita da diversi computer collegati fra di loro allo scopo di: Comunicare Condividere risorse Ogni computer della rete può,

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

Stack protocolli TCP/IP

Stack protocolli TCP/IP Stack protocolli TCP/IP Application Layer Transport Layer Internet Layer Host-to-Nework Layer DNS SMTP Telnet HTTP TCP UDP IP Insieme di eterogenei sistemi di rete... 1 Concetti base Differenza tra i concetti

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

Corso di Informatica Modulo T3 B1 Programmazione web

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

Dettagli

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione INFORMATICA DISTRIBUITA prof. lez 4 Livello applicazione Università degli Studi di Milano Scienze e Tecnologie della Comunicazione Musicale a.a. 2009-2010 applicazioni di rete Processo: programma in esecuzione

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

Seminari Eucip, Esercizio e Supporto di Sistemi Informativi

Seminari Eucip, Esercizio e Supporto di Sistemi Informativi Seminari Eucip, Esercizio e Supporto di Sistemi Informativi Servizi di Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza Sicurezza su Sicurezza della La Globale La rete è inerentemente

Dettagli

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

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia Informatica Prof. M. Colajanni Università di Modena Reggio Emilia PARTE 4 - World Wide Web WORLD WIDE WEB La killer application di Internet I motivi alla base del successo del Web ( perché è risultata

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

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

Corso basi di dati Introduzione alle ASP

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

Dettagli

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

Dettagli

Programmazione dei socket con TCP #2

Programmazione dei socket con TCP #2 I Il Server e il Client si scambiano messaggi attraverso la rete mediante un dell API (Application Programming Interface) Telematica II 10. Esercitazione/Laboratorio 3 Server ports Clients user space Socket

Dettagli

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 7 Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione

Dettagli

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli Sommario Introduzione Architettura Client-Server Architettura a Due Livelli Architettura a Tre Livelli Server Web Browser Web Introduzione La storia inizia nel 1989 Tim Berners-Lee al CERN, progetto WWW

Dettagli

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

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

Dettagli

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci CORSO DI RETI SSIS Lezione n.2. 2 Novembre 2005 Laura Ricci IL DOMAIN NAME SYSTEM (DNS) Indirizzi IP poco adatti per essere memorizzati da utenti umani è prevista la possibiltà di associare nomi simbolici

Dettagli

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2.

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2. Basi Android 1 Android Cosa è Android? Android è un insieme di strumen8 e librerie per sviluppare applicazioni mobili è più di un SO Android si definisce open Con8ene tecnologie open source Linux Il codice

Dettagli

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

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

Dettagli

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

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

Dettagli

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

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

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

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

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

Dettagli

Lezione III: Oggetti ASP e interazione tramite form HTML

Lezione III: Oggetti ASP e interazione tramite form HTML Lezione III: Oggetti ASP e interazione tramite form HTML La terza lezione, come le precedenti, ha avuto una durata di due ore, di cui una in aula e l altra in laboratorio, si è tenuta alla presenza della

Dettagli

Django - WebSocket. Web in real- 3me. Saverio Patruno ConoscereLinux - LUG Modena. #linuxdaymo15

Django - WebSocket. Web in real- 3me. Saverio Patruno ConoscereLinux - LUG Modena. #linuxdaymo15 Django - WebSocket Web in real- 3me Saverio Patruno ConoscereLinux - LUG Modena #linuxdaymo15 Python Anni 90 Guido van Rossum per hobby crea un linguaggio di facile comprensione, con curva di apprendimento

Dettagli

Corso Creare Siti WEB

Corso Creare Siti WEB Corso Creare Siti WEB INTERNET e IL WEB Funzionamento Servizi di base HTML CMS JOOMLA Installazione Aspetto Grafico Template Contenuto Articoli Immagini Menu Estensioni Sito di esempio: Associazione LaMiassociazione

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

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

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

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

Dettagli

Software di gestione della stampante

Software di gestione della stampante Questo argomento include le seguenti sezioni: "Uso del software CentreWare" a pagina 3-11 "Uso delle funzioni di gestione della stampante" a pagina 3-13 Uso del software CentreWare CentreWare Internet

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

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

Internet e posta elettronica. A cura di Massimiliano Buschi

Internet e posta elettronica. A cura di Massimiliano Buschi Internet e posta elettronica A cura di Massimiliano Buschi Concetti fondamentali Internet www Tcp/ip Browser Terminologia Esistono un sacco di termini con cui bisogna famigliarizzare http url Link Isp

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

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia Java Enterprise Edi.on Gabriele Tolomei DAIS Università Ca Foscari Venezia Administrivia Durata: 60 ore lezioni teoriche + esercitazioni pra.che Materiale DidaDco slides pubblicate sul sito web del corso

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

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica). Topologia delle reti Una RETE DI COMPUTER è costituita da un insieme di elaboratori (NODI) interconnessi tra loro tramite cavi (o sostituti dei cavi come le connessioni wireless). Rete Point-to-Point:

Dettagli

Architetture Web Protocolli di Comunicazione

Architetture Web Protocolli di Comunicazione Architetture Web Protocolli di Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 10 Maggio 2011 Architetture Web Architetture Web Protocolli di Comunicazione Il Client Side Il Server Side

Dettagli

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito Punto di vista fisico: insieme di hardware, collegamenti, e protocolli che permettono la comunicazione tra macchine remote

Dettagli

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri.

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri. Il Servizio World Wide Web () Corso di Informatica Generale (Roberto BASILI) Teramo, 20 Gennaio, 2000 Il World Wide Web Storia : obbiettivi : tecnologie Le Applicazioni Scenari Futuri La Storia (1990)

Dettagli

Web e HTTP. path name. host name Realizzato da Roberto Savino. www.someschool.edu/somedept/pic.gif

Web e HTTP. path name. host name Realizzato da Roberto Savino. www.someschool.edu/somedept/pic.gif Web e HTTP Terminologia Una pagina web consiste di oggetti Un oggetto può essere un file HTML, una immagine JPG, ecc. Una pagina web consiste di un file HTML base che fa riferimento a diversi oggetti al

Dettagli

Oreste Signore, <oreste@w3.org> Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa

Oreste Signore, <oreste@w3.org> Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa http://www.w3c.it/education/2012/upra/basicinternet/#(1) 1 of 16 Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa Master in Comunicazione

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

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

Dettagli

appunti delle lezioni Architetture client/server: applicazioni client

appunti delle lezioni Architetture client/server: applicazioni client Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente

Dettagli

Pubblicazione su Web usando Filezilla. Docente: Antonina Da-olo anotonina.da-olo@uniud.it

Pubblicazione su Web usando Filezilla. Docente: Antonina Da-olo anotonina.da-olo@uniud.it Pubblicazione su Web usando Filezilla Docente: Antonina Da-olo anotonina.da-olo@uniud.it 1 Cosa studiamo, cosa sapremo fare Argomen: FTP (File Transfer Protocol) Filezilla Abilità Caricare su un server

Dettagli

Socket & RMI Ingegneria del Software - San Pietro

Socket & RMI Ingegneria del Software - San Pietro Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la

Dettagli

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio

Dettagli

Programma del Corso. Laboratorio

Programma del Corso. Laboratorio Programma del Corso Introduzione alle applicazioni web Introduzione a PHP i costrutti di base Il database MySQL Accesso a MySQL in PHP Progetto Finale Seminari Il WWW Oreste Signore - responsabile W3C

Dettagli

L aspetto dei file HTML

L aspetto dei file HTML L aspetto dei file HTML Le pagine HTML contengono due tipi di oggetti: il testo del documento i TAG HTML Il documento si presenta come una successione di elementi (annidati) del tipo Testo influenzato

Dettagli

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28 Indice 25 184 Introduzione XI Capitolo 1 Impostazione dell ambiente di sviluppo 2 1.1 Introduzione ai siti Web dinamici 2 1.2 Impostazione dell ambiente di sviluppo 4 1.3 Scaricamento di Apache 6 1.4 Installazione

Dettagli

Sicurezza delle applicazioni web: protocollo HTTP

Sicurezza delle applicazioni web: protocollo HTTP Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Sicurezza delle applicazioni web: protocollo HTTP Alessandro Reina Aristide Fattori

Dettagli

URI. Introduzione. Pag. 1

URI. Introduzione. Pag. 1 URI Introduzione Gli URI (Universal Resource Indentifier) sono una sintassi usata in WWW per definire i nomi e gli indirizzi di oggetti (risorse) su Internet. Questi oggetti sono considerati accessibili

Dettagli

DBMS e Linguaggi di programmazione nell'era di Internet

DBMS e Linguaggi di programmazione nell'era di Internet DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web

Dettagli

Programmazione Web. Introduzione

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

Dettagli

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

Obiettivo dell esercitazione

Obiettivo dell esercitazione Database e Web - Esercitazioni ASP - Andrea Proli proliand@csr.unibo.it Laboratorio di Basi di Dati A.A. 2005/2006 Obiettivo dell esercitazione L obiettivo finale dell esercitazione è quello di creare

Dettagli

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

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

Dettagli