Servlet: approfondimenti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Servlet: approfondimenti"

Transcript

1 Servlet: approfondimenti Java Servlet: una nozione naturale di stato ed il metodo init() Il ciclo di vita di una servlet: metodi init() e destroy() Java Servlet: parametri nel file web.xml Le Servlet ed il problema della Thread Safety Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-1

2 La nozione di stato intrinseca nelle Servlet Scriviamo una servlet che conti il numero di accessi e lo visualizzi su una pagina (X)HTML. Sfruttiamo il fatto che Tomcat, quando riceve la prima richiesta di una servlet, crea un istanza della classe corrispondente. Utilizziamo una variabile d istanza privata nr (numero richieste) nel modo seguente: la azzeriamo all inizio del ciclo di vita della servlet; la incrementiamo ad ogni accesso. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-2

3 Il sorgente Java (I) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ContaRichieste extends HttpServlet { private int nr; public void init() { nr=0; } public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter();... Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-3

4 Il sorgente Java (II) } } out.println("<!doctype html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\""+ " \" out.println("<html xmlns=\" " xml:lang=\"it\" lang=\"it\">"); out.println("<head><title>contatore del numero "+ "di richieste</title></head>"); out.println("<body>"); out.println("<strong>numero di richieste registrate "+ "finora: "+(++nr)+"</strong>"); out.println("</body></html>"); Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-4

5 Il metodo init() Il metodo init() di una servlet viene eseguito alla prima richiesta di quest ultima. E utile quindi per inserire il codice che inizializza la servlet. Nel nostro caso il metodo init() contiene soltanto l assegnamento nr = 0 (che inizializza a zero il contatore di accessi). Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-5

6 Modifiche al file web.xml <?xml version="1.0" encoding="iso "?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " <web-app>... <servlet> <servlet-name>contarichieste</servlet-name> <servlet-class>contarichieste</servlet-class> </servlet> <servlet-mapping> <servlet-name>contarichieste</servlet-name> <url-pattern>/servlet/contarichieste</url-pattern> </servlet-mapping> </web-app> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-6

7 Modifiche al file index.html <HTML> <HEAD> <TITLE>Servlet di prova</title> </HEAD> <BODY> <TABLE>... <TR> <TD> <A HREF="servlet/ContaRichieste">Un contatore di accessi</a> </TD> </TR> </TABLE> </BODY> </HTML> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-7

8 Aspetto della pagina index.html CiaoMondo.class form.html/formfieldstest.class ContaRichieste.class Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-8

9 Ciclo di vita di una Servlet Non caricata. Prima richiesta: Caricata: il file.class viene caricato in memoria centrale. Inizializzata: viene eseguito il metodo init(). In servizio: risponde alle richieste con il metodo opportuno (per le servlet http vengono richiamati i metodi do<tipo richiesta>, e.g., doget() e dopost()). In attesa: rimane presente in memoria centrale, ma inattiva. In distruzione: viene eseguito il metodo destroy() e la servlet viene rimossa dalla memoria centrale. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-9

10 Un contatore di accessi persistente Modifichiamo la servlet che conta il numero di accessi in modo che conservi tale valore anche quando l applicazione web viene riavviata. Sfruttiamo i metodi init() e destroy(): in init() leggiamo dal file il valore iniziale del contatore nr; in destroy() (al momento della rimozione dalla memoria della servlet) scriviamo sul file il valore corrente del contatore nr preceduto dalla data corrente (i due dati saranno separati dal carattere ; ). Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-10

11 Formato del file:... 21/09/2007;15 21/09/2007;29 21/09/2007;35 Un contatore di accessi persistente... Rendiamo scrivibile a Tomcat la directory servlets su latoserver (chmod g+w /home/<nomeutente>/servlets). Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-11

12 Codice Java (I) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.date; import java.text.*; File destinato a contenere i dati public class ContaRichiestePers extends HttpServlet { final static String NOME_FILE="contatore.txt"; final static String SEPARATORE=";"; private int nr; Carattere separatore Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-12

13 Codice Java (II): init public void init() { try { String path=getservletcontext().getrealpath("")+ File.separator+NOME_FILE; BufferedReader input=new BufferedReader(new FileReader(path)); String lineacorrente=null; String ultimalinea=null; while((lineacorrente=input.readline())!= null) { ultimalinea=lineacorrente; } nr=integer.parseint((ultimalinea.split(separatore))[1]); input.close(); } catch (IOException e) { nr=0; } } // continua nel lucido successivo... Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-13

14 Codice Java (III): doget //... continua dal lucido precedente public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); out.println("<!doctype html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\""+ " \" out.println("<html xmlns=\" " xml:lang=\"it\" lang=\"it\">"); out.println("<head><title>contatore persistente del "+ "numero di richieste</title></head>"); out.println("<body>"); out.println("<strong>accessi registrati "+ "finora: "+(++nr)+"</strong>"); out.println("</body></html>"); } // continua nel lucido successivo... Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-14

15 Codice Java (IV): destroy //... continua dal lucido precedente public void destroy() { try { String path=getservletcontext().getrealpath("")+ File.separator+NOME_FILE; BufferedWriter output=new BufferedWriter(new FileWriter(path,true)); DateFormat formatodata=new SimpleDateFormat("dd/MM/yyyy"); output.write(formatodata.format(new Date())+SEPARATORE+nr+"\n"); output.close(); } catch (IOException e) { } } } Il metodo destroy() viene invocato al momento della rimozione della servlet dalla memoria centrale. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-15

16 Modifiche al file web.xml <?xml version="1.0" encoding="iso "?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " <web-app>... <servlet> <servlet-name>contarichieste2</servlet-name> <servlet-class>contarichiestepers</servlet-class> </servlet> <servlet-mapping> <servlet-name>contarichieste2</servlet-name> <url-pattern>/servlet/contarichiestepers</url-pattern> </servlet-mapping> </web-app> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-16

17 Modifiche al file index.html <HTML> <HEAD> <TITLE>Servlet di prova</title> </HEAD> <BODY> <TABLE>... <TR> <TD> <A HREF="servlet/ContaRichiestePers">Un contatore di accessi persistente</a> </TD> </TR> </TABLE> </BODY> </HTML> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-17

18 Osservazioni Nell esempio precedente del contatore di accessi persistente il nome del file in cui memorizzare il numero di hit ed il valore iniziale del contatore sono codificati direttamente nel codice della servlet. Se vogliamo cambiare il nome del file, il valore iniziale del contatore od il separatore, dobbiamo modificare il sorgente, ricompilare e riavviare la relativa applicazione web. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-18

19 Variante Per evitare la ricompilazione della servlet, si può memorizzare il nome del file e/o il valore iniziale del contatore e/o il carattere separatore nel file di configurazione web.xml. Tale parametro può poi essere recuperato dalla servlet. Infatti il server (Tomcat) passa automaticamente al metodo init() un oggetto di tipo ServletConfig che include i parametri di inizializzazione accessibili tramite i metodi getinitparameter() e getinitparameternames(). Sia GenericServlet che HttpServlet implementano l interfaccia ServletConfig: è sufficiente quindi richiamare super.init() per avere a disposizione tali metodi. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-19

20 Specificare i parametri in web.xml <servlet> <servlet-name>contarichieste3</servlet-name> <servlet-class>contarichiestepersparam</servlet-class> <init-param> <param-name>nomefile</param-name> <param-value>contatore2.txt</param-value> </init-param> <init-param> <param-name>separatore</param-name> <param-value>;</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>contarichieste3</servlet-name> <url-pattern>/servlet/contarichiestepersparam</url-pattern> </servlet-mapping> Il tag <init-param> consente di definire un parametro il cui identificatore viene specificato dal tag <param-name> ed il valore dal tag <param-value>. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-20

21 Accedere ai parametri memorizzati in web.xml (I)... public void init(servletconfig conf) throws ServletException { super.init(conf); try { path=getservletcontext().getrealpath("")+ File.separator+getInitParameter("nomeFile"); BufferedReader input=new BufferedReader(new FileReader(path)); String lineacorrente=null; String ultimalinea=null; while((lineacorrente=input.readline())!= null) { ultimalinea=lineacorrente; } nr=integer.parseint((ultimalinea.split( getinitparameter("separatore")))[1]); input.close(); } catch (IOException e) { nr=0; } } Il metodo getinitparameter() consente di recuperare il valore del parametro di cui si specifica il nome come argomento. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-21

22 Accedere ai parametri memorizzati in web.xml (II)... public void destroy() { try { String path=getservletcontext().getrealpath("")+ File.separator+getInitParameter("nomeFile"); BufferedWriter output=new BufferedWriter( new FileWriter(path,true)); DateFormat formatodata=new SimpleDateFormat("dd/MM/yyyy"); output.write(formatodata.format(new Date())+ getinitparameter("separatore")+nr+"\n"); output.close(); } catch (IOException e) { } }... Il resto del codice rimane invariato rispetto all'esempio precedente. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-22

23 Note Memorizzando i parametri fondamentali di una servlet nel file che descrive il dispiegamento (web.xml), si evita di ricompilare il codice in caso di cambiamenti. Tuttavia rimane necessario riavviare (Stop + Start/Reload) l applicazione web tramite il Tomcat Manager. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-23

24 Thread safety Tipicamente ad ogni dato istante soltanto una copia di ogni servlet è presente in memoria centrale. Tuttavia ogni servlet può trovarsi a dover soddisfare più richieste concorrenti. Siccome ogni richiesta genera un thread distinto, le servlet dovrebbero essere thread-safe. Se i metodi di una servlet invocati da Tomcat per soddisfare una richiesta non accedono a variabili visibili al di fuori dei metodi stessi, la servlet è automaticamente thread-safe. Tuttavia una servlet che mantiene delle risorse persistenti, deve assicurare che queste ultime siano aggiornate in modo consistente. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-24

25 Un tipico scenario (I) Prendiamo in esame l utilizzo di una servlet per la prenotazione dei posti su un volo (con le informazioni sui posti liberi in un file condiviso) con due impiegati operanti da due postazioni distinte: il primo impiegato usa la servlet per prenotare un posto per Mario Rossi; la servlet controlla i posti liberi sul volo, verificando la presenza di un ultimo posto utile e consentendo quindi l operazione; il secondo impiegato usa la servlet per prenotare un posto per Gianni Verdi; la servlet controlla l ammontare dei posti liberi sul volo, verificando la presenza di un ultimo posto utile (dato che non ha ancora completato la prenotazione precedente) e consentendo l operazione; la servlet completa la prenotazione per Mario Rossi e poi quella per Gianni Verdi, scalando di una unità il numero di posti liberi in entrambe le occasioni. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-25

26 Un tipico scenario (II) Il risultato finale della sequenza di eventi appena descritti è che il numero complessivo dei posti liberi rimanenti è -1, ovvero, è stato venduto un biglietto in più rispetto alla massima capienza di posti (overbooking). E' necessario fare in modo che la servlet soddisfi una richiesta per volta in modo atomico, utilizzando una delle due soluzioni seguenti: inglobando il codice critico in blocchi synchronized; implementando l interfaccia SingleThreadModel (viene creato un insieme di istanze di servlet, invece di una sola; ogni copia può servire una singola richiesta per volta). La seconda soluzione è più onerosa dal punto di vista della gestione delle risorse del server e non va sempre bene. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-26

27 Il codice: la classe interna Prenotazione import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import java.io.*; import java.text.*; public class GestionePrenotazioni extends HttpServlet { class Prenotazione { public String descrizione; public int postitotali; public int postiliberi; } Prenotazione volo;... La proprietà volo di tipo Prenotazione serve a modellare il volo aereo con la sua descrizione, il numero di posti totali e quello dei posti liberi rimanenti. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-27

28 Il codice: il metodo init()... public void init(servletconfig conf) throws ServletException { super.init(conf); volo=new Prenotazione(); volo.descrizione=getinitparameter("descrizionevolo"); volo.postitotali=integer.parseint( getinitparameter("numerototaleposti")); try { String path=getservletcontext().getrealpath("")+ File.separator+getInitParameter("nomeFilePosti"); DataInputStream f=new DataInputStream( new FileInputStream(path)); volo.postiliberi=f.readint(); f.close(); } catch (IOException e) { volo.postiliberi=integer.parseint( getinitparameter("numerototaleposti")); } } Il metodo init() recupera i valori iniziali dei parametri dal file web.xml, impostando le proprietà dell'oggetto volo. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-28

29 Il codice: il metodo doget() - form di prenotazione public void doget(httpservletrequest req,httpservletresponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter();... out.println("volo: <strong>"+volo.descrizione+ "</strong><br />"); out.println("posti totali: <strong>"+volo.postitotali+ "</strong><br />"); out.println("posti liberi rimanenti: <strong>"+ volo.postiliberi+"</strong><br />"); out.println("<form method=\"post\" action=\"flydowngp\">"); out.println("cliente: <input type=\"text\" "+ "name=\"cliente\" size=\"30\" />"); out.println("<input type=\"submit\" name=\"cancella\" "+ "value=\"cancella prenotazione\" />"); out.println("<input type=\"submit\" name=\"prenota\" "+ "value=\"effettua prenotazione\" />"); out.println("</form></body></html>");}... richiama la servlet GestionePrenotazioni: si noti l'assenza di servlet/ Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-29

30 Il form delle prenotazioni Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-30

31 Il metodo dopost() - gestione delle prenotazioni Nel metodo dopost() bisogna gestire i parametri inviati tramite il form delle prenotazioni proposto dal metodo doget(). Innanzitutto si controlla la natura dell operazione specificata: prenotazione oppure cancellazione. In seguito si determina se il cliente specificato ha già effettuato una prenotazione in modo da: evitare di farne una doppia (nel caso di una prenotazione), di annullarne una inesistente (nel caso di una cancellazione). Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-31

32 Il metodo dopost() - gestione delle prenotazioni public void dopost(httpservletrequest req,httpservletresponse res) throws ServletException, IOException { String nomecliente=req.getparameter("cliente"); if(nomecliente!=null && nomecliente.trim().length()>0) { String path=getservletcontext().getrealpath("")+ File.separator+getInitParameter("nomeFileClienti"); synchronized(volo) { boolean prenotazioneesistente=false; DateFormat formatodata=new SimpleDateFormat("dd/MM/yyyy"); File f=new File(path); if(req.getparameter("prenota")!=null && (volo.postiliberi>0)) { if(f.exists()) { BufferedReader input=new BufferedReader( new FileReader(path)); String lineacorrente=null; while((lineacorrente=input.readline())!= null) { if(lineacorrente.endswith(nomecliente)) { prenotazioneesistente=true; break; } } input.close(); }... Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-32

33 Il metodo dopost() - gestione delle prenotazioni Se la prenotazione corrispondente al cliente specificato tramite il form non è già stata effettuata, allora: si procede a memorizzarla su file; si decrementa il numero di posti liberi.... if(!prenotazioneesistente) { BufferedWriter output=new BufferedWriter( new FileWriter(path,true)); output.write(formatodata.format(new Date())+ " - "+nomecliente+"\n"); output.close(); volo.postiliberi--; }... } Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-33

34 Il metodo dopost() - gestione delle prenotazioni if(req.getparameter("cancella")!=null && (volo.postiliberi<volo.postitotali)) { if(f.exists()) { BufferedReader input=new BufferedReader(new FileReader(path)); String contenutofile=""; String lineacorrente=null; while((lineacorrente=input.readline())!= null) { if(!lineacorrente.endswith(nomecliente)) contenutofile+=lineacorrente+"\n"; else prenotazioneesistente=true; } input.close(); BufferedWriter output=new BufferedWriter( new FileWriter(path)); output.write(contenutofile); output.close(); if(prenotazioneesistente) volo.postiliberi++; } } } } doget(req, res); }... modo per ripresentare il form Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-34

35 Il codice: il metodo destroy() Il metodo destroy provvede a salvare su file il numero di posti liberi rimasti nel momento in cui la servlet viene rimossa dalla memoria:... public void destroy() { try { String path=getservletcontext().getrealpath("")+ File.separator+getInitParameter("nomeFilePosti"); DataOutputStream f=new DataOutputStream( new FileOutputStream(path)); f.writeint(volo.postiliberi); f.close(); } catch (IOException e) { } } } In questo modo al successivo caricamento in memoria la situazione delle prenotazioni rimane consistente. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-35

36 Il file web.xml <servlet> <servlet-name>gestioneprenotazioni</servlet-name> <servlet-class>gestioneprenotazioni</servlet-class> <init-param> <param-name>descrizionevolo</param-name> <param-value>fd501: Milano - Francoforte</param-value> </init-param> <init-param> <param-name>numerototaleposti</param-name> <param-value>100</param-value> </init-param> <init-param> <param-name>nomefileposti</param-name> <param-value>posti_liberi</param-value> </init-param> <init-param> <param-name>nomefileclienti</param-name> <param-value>clienti.txt</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>gestioneprenotazioni</servlet-name> <url-pattern>/servlet/flydowngp</url-pattern> </servlet-mapping> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-36

Ciclo di vita di una Servlet

Ciclo di vita di una Servlet Ciclo di vita di una Servlet Non caricata. Prima richiesta: Caricata: il file.class viene caricato in memoria centrale. Inizializzata: viene eseguito il metodo init(). In servizio: risponde alle richieste

Dettagli

Un contatore di accessi

Un contatore di accessi Un contatore di accessi Scriviamo una servlet che conta il numero di accessi e lo visualizza. Sfruttiamo il fatto che Tomcat, quando riceve la richiesta di una servlet, crea un istanza della classe corrispondente.

Dettagli

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

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

Dettagli

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

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

Dettagli

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

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2006/07-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

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

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

Un esempio complesso

Un esempio complesso Un esempio complesso Costruiamo un applicazione web di una certa complessità. Vogliamo realizzare un front-end (interfaccia verso gli utenti) di un sito che vende dei prodotti online. Quindi le pagine

Dettagli

Servlet e JDBC. Programmazione in Rete e Laboratorio

Servlet e JDBC. Programmazione in Rete e Laboratorio 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 baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

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

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. 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 baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

Tito Flagella - Introduzione alla programmazione di Servlet

Tito Flagella - Introduzione alla programmazione di Servlet Introduzione alla programmazione di Servlet Caratteristiche di base Estensioni del server scritte in Java utilizzando la Servlet API La Servlet API è diventata un estensione standard di Java, dalla versione

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

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

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

Dettagli

Corso di Applicazioni Telematiche

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

Dettagli

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

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

Servlet 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 / 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 2 Documentazione: http://www.oracle.com/technetwork/java/javaee/servlet/index.html L approccio SERVLET richiede l installazione

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 ivan.scagnetto@dimi.uniud.it Complementi di Tecnologie

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

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 6 Servlet Servlet: classi java che estendono le funzionalità di un server Web generando dinamicamente le pagine Web. Riferimento: http://java.sun.com/products/servlets

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 6 Servlet Servlet: classi java che estendono le funzionalità di un server Web generando dinamicamente le pagine Web. Riferimento: http://java.sun.com/products/servlets

Dettagli

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

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

Laboratorio di Basi di dati

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

Dettagli

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

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

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

Dettagli

Tomcat struttura delle directory

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

Dettagli

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione 09 Riepilogo Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica:

Dettagli

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 09 Riepilogo

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 09 Riepilogo Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione 09 Riepilogo Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica:

Dettagli

Corso di Basi di Dati e Sistemi Informativi: Sperimentazioni

Corso di Basi di Dati e Sistemi Informativi: Sperimentazioni Corso di Basi di Dati e Sistemi Informativi: Sperimentazioni Una breve introduzione alle servlet Matteo Baldoni Dipartimento di Informatica - Universita` degli Studi di Torino C.so Svizzera, 185 - I-10149

Dettagli

Basi di dati - Laboratorio

Basi di dati - Laboratorio Basi di dati - Laboratorio Corso di Laurea in Bioinformatica Docente: Barbara Oliboni Lezione 6 Contenuto della lezione Servlet Servlet engine Ciclo di vita Struttura Tomcat Architettura Struttura directory

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

Tito Flagella - Introduzione alla programmazione di Servlet

Tito Flagella - Introduzione alla programmazione di Servlet Introduzione alla programmazione di Servlet Caratteristiche di base (1) Estensioni del server scritte in Java utilizzando la Servlet API La Servlet API è diventata un estensione standard di Java, dalla

Dettagli

Stateless Session Bean

Stateless Session Bean Stateless Session Bean 1 Esempio Stateless Session bean per il calcolo della somma di due numeri reali 2 Struttura del sistema calcolo della somma di due numeri reali Sum implementato con uno stateless

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

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione 09 Riepilogo Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica:

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

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

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

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

SERVLET & JSP DISPENSE

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

Dettagli

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

modulo: siti web centrati sui dati

modulo: siti web centrati sui dati Basi di dati e Web modulo: siti web centrati sui dati Alberto Belussi anno accademico 2008/2009 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento per la diffusione

Dettagli

Laboratorio di Programmazione di Rete

Laboratorio di Programmazione di Rete Laboratorio di Programmazione di Rete Lezione del 22 Marzo 2010 Docente: Novella Bartolini Ricevimento: Mercoledì ore 12:00-14:00 Via Salaria 113, terzo piano, stanza 309 Email: bartolini@di.uniroma1.it

Dettagli

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

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

Dettagli

DIREZIONI CORRENTI di EVOLUZIONE Sicuramente il campo applicativo più ampio di dimensioni è il VLVWHPD:HE stesso EVOLUZIONI DEL CALCOLO WEB

DIREZIONI CORRENTI di EVOLUZIONE Sicuramente il campo applicativo più ampio di dimensioni è il VLVWHPD:HE stesso EVOLUZIONI DEL CALCOLO WEB DIREZIONI CORRENTI di EVOLUZIONE Sicuramente il campo applicativo più ampio di dimensioni è il VLVWHPD:HE stesso EVOLUZIONI DEL CALCOLO WEB Browser tradizionali e server web Le sfide sono di: utilizzare

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

Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL)

Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL) Pag. 1/12 Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL) Prendiamo in esame un qualsiasi progetto NetBeans tra quelli studiati che fa uso di un database

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

Accesso Web a Data Base

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

Dettagli

Corso di Telematica II

Corso di Telematica II Corso di Laurea Triennale in Ingegneria Informatica ed Ingegneria delle Telecomunicazioni Corso di Telematica II Matricola Nome, Cognome Data Orale... Prova scritta del 21/07/2005 Si implementi, in linguaggio

Dettagli

La Tecnologia CGI-Servlet

La Tecnologia CGI-Servlet Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB La Tecnologia CGI-Servlet Ing. Marco Mamei M. Mamei La tecnologia CGI 1 Programmazione

Dettagli

Da Println a Spring. Rinaldo Bonazzo Sardinia Point Srl

Da Println a Spring. Rinaldo Bonazzo Sardinia Point Srl Da Println a Spring Rinaldo Bonazzo (rbonazzo@sardiniapoint.it) Sardinia Point Srl www.sardiniapoint.it Chi siamo (1) Sardinia Point S.r.l. sviluppa strumenti informatici destinati alle attività turistiche

Dettagli

Introduzione a Java Servlet Technology

Introduzione a Java Servlet Technology Introduzione a Java Technology SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi Chi ha conosciuto quella forma del principio di ragione che apparisce nel tempo puro in quanto

Dettagli

Prova scritta del 13 luglio 2010

Prova scritta del 13 luglio 2010 Matricola: Cognome: Nome: Insegnamento: LAB Basi di dati LAB Basi di dati e web Basi di dati e web 4 CFU Laboratorio di Basi di dati (Laboratorio di Basi di dati e Web) Prova scritta del 13 luglio 2010

Dettagli

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

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

Dettagli

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

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione e rimane immutato.

Dettagli

Java Servlet. Davide Taibi.

Java Servlet. Davide Taibi. Java Servlet Davide Taibi davide.taibi@uninsubria.it 2010 Sommario Servlet Sessioni Cookies 2 Davide Taibi Servlet Moduli scritti in Java che estendono le funzionalità dei web server. Usati al posto di

Dettagli

Tecnologie di Sviluppo per il Web

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

Dettagli

Sommario. Svantaggi delle servlet e introduzione a JSP Introduzione a JDBC MySQL Classi fondamentali di JDBC Utilizzo di JDBC nelle pagine JSP

Sommario. Svantaggi delle servlet e introduzione a JSP Introduzione a JDBC MySQL Classi fondamentali di JDBC Utilizzo di JDBC nelle pagine JSP Sommario Svantaggi delle servlet e introduzione a JSP Introduzione a JDBC MySQL Classi fondamentali di JDBC Utilizzo di JDBC nelle pagine JSP Complementi di Tecnologie Web M. Franceshet, V.Della Mea e

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

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

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

Dettagli

Verso l architettura MVC-2 Java Server Pages (JSP)

Verso l architettura MVC-2 Java Server Pages (JSP) Verso l architettura MVC-2 Java Server Pages (JSP) 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 JSP Una pagina JSP può essere vista come uno schema di pagina Web dove: le

Dettagli

Verso l architettura MVC-2 Java Server Pages (JSP)

Verso l architettura MVC-2 Java Server Pages (JSP) Verso l architettura MVC-2 Java Server Pages (JSP) 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 0 / 2 0 1 1 JSP 2 Una pagina JSP può essere vista come uno schema di pagina Web dove:

Dettagli

Lezione 5 Namespace e JavaDoc

Lezione 5 Namespace e JavaDoc Lezione 5 Namespace e JavaDoc Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il namespace di Java: i package

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea

Dettagli

Principi, Modelli e Applicazioni per Sistemi Distribuiti M

Principi, Modelli e Applicazioni per Sistemi Distribuiti M Università degli Studi di Bologna Facoltà di Ingegneria Principi, Modelli e Applicazioni per Sistemi Distribuiti M Esercitazione 2 (svolta) Socket Java con connessione Alessandro Pernafini Architettura

Dettagli

Capitolo 7. Soluzione: <P align= center > Form di invio nome e cognome </P> <FORM action= nomecognome.exe method= post >

Capitolo 7. Soluzione: <P align= center > Form di invio nome e cognome </P> <FORM action= nomecognome.exe method= post > Capitolo 7 Esercizio 7.1 Commentare le caratteristiche di HTTP come protocollo client-server, evidenziando gli aspetti differenti rispetto ai protocolli client-server tradizionali. La caratteristica che

Dettagli

MyShopDB = MyShop + MySQL

MyShopDB = MyShop + MySQL MyShopDB = MyShop + MySQL Adattiamo l applicazione MyShop in modo da poter utilizzare un database come fonte di dati, invece dei soliti file testuali. I nuovi sorgenti si trovano nel file MyShopDB.zip

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

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Laboratorio di Basi di Dati. Docenti: Alberto Belussi Lezione 7

Laboratorio di Basi di Dati. Docenti: Alberto Belussi Lezione 7 Laboratorio di Basi di Dati Docenti: Alberto Belussi Lezione 7 JDBC: breve riepilogo (1) L interfaccia JDBC è contenuta nei package java.sql e javax.sql. Le classi più utilizzate sono: Connection: collegamento

Dettagli

Le tecnologie software Internet

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

Dettagli

JDBC: breve riepilogo (1)

JDBC: breve riepilogo (1) Laboratorio di Basi di Dati / Basi di Dati per Bioinformaticai Docenti: Alberto Belussi e Carlo Combi Lezione 7 JDBC: breve riepilogo (1) L interfaccia JDBC è contenuta nei package java.sql e javax.sql.

Dettagli

MyShopDB = MyShop + MySQL

MyShopDB = MyShop + MySQL MyShopDB = MyShop + MySQL Adattiamo l applicazione MyShop in modo da poter utilizzare un database come fonte di dati, invece dei soliti file testuali. I nuovi sorgenti si trovano nel file MyShopDB.zip

Dettagli

Le tecnologie software Internet

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

Dettagli

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

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e

Dettagli

JAVA SERVLET: I filtri

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

Dettagli

Siti web centrati sui dati Architettura MVC-2: JSP

Siti web centrati sui dati Architettura MVC-2: JSP Siti web centrati sui dati Architettura MVC-2: JSP Alberto Belussi anno accademico 2006/2007 JSP Una pagina JSP è uno schema di pagina Web dove le parti statiche sono scritte in HTML e le parti dinamiche

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

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione Esercitazione: Socket Java con connessione Sviluppare un applicazione C/S che effettui il trasferimento di un file dal client al server (put) usando una connessione. In particolare nel servizio: il client

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 6 (svolta) Java RMI Luca Foschini Anno accademico 2010/2011 Esercitazione 6 1 Specifica: il Client

Dettagli

Programmazione Web D B M G. Il linguaggio HTML

Programmazione Web D B M G. Il linguaggio HTML Programmazione Web Il linguaggio HTML Il linguaggio HTML Concetti di base Le interfacce utente in HTML I form Le tabelle Il passaggio dei parametri contenuti nei form HTML: HyperText Markup Language Standard

Dettagli