Un contatore di accessi

Documenti analoghi
Note pratiche sullo sviluppo di servlet (I)

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

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

Tener traccia del client

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

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Introduzione alla programmazione Http lato server in Java

Servlet API. Programmazione in Ambienti Distribuiti A.A

Corso di Applicazioni Telematiche

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Laboratorio di Basi di Dati e Web

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

Laboratorio di Basi di dati

Tomcat struttura delle directory

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

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

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

Architetture Web: un ripasso

Gestire le sessioni con le Servlet

Programmazione server-side: Java Servlet

Stateless Session Bean

Accesso Web a Data Base

Tecnologie di Sviluppo per il Web

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

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

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

Laboratorio di sistemi Prima Web Application JSP [Java]

SERVLET & JSP DISPENSE

Tecnologie di Sviluppo per il Web

Svantaggi delle servlet

JAVA SERVLET: I filtri

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

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

Server-side Programming: Java servlets Parte II

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Le tecnologie software Internet

Le tecnologie software Internet

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

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

Laboratorio di Programmazione di Rete

Laboratorio di Basi di Dati e Web

Java Servlet. Davide Taibi.

Progetto di Gestione Documenti in Ambiente Web

Laboratorio di Basi di Dati e Multimedia

Programmazione Java Avanzata. MVC Model, View,, Controller. Ing. Gianluca Caminiti

Laboratorio di reti II: Servlet

Capitolo 7. Sviluppi futuri. 7.1 Generazione automatica di pagine WML

Lezione di Basi di Dati 1 18/11/ TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

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

Laboratorio di reti II: Java Server Pages

Introduzione a Java Servlet Technology

Enos Recanati RELAZIONE DEL PROGETTO DI CALCOLO DELLE PROBABILITÀ E STATISTICA MATEMATICA

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Le basi del linguaggio Java

Web Application model. Servlet. Servlet e Servlet Container. Introduzione alle Servlet

Programmazione Web. Lezione del 30 Aprile Docente: Novella Bartolini

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei

Applet e servlet finanziarie

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

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it

Eccezioni. Comportamento di default (esempio) Propagazione delle eccezioni

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Eccezioni Precisazioni e approfondimenti

Corso di Telematica II

Tutorial web Application

Laboratorio di sistemi MVC versione 2 Jsp (NetBeans)

Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati e Web

Servlet. Nicola Gessa

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Progettazione di siti web centrati sui dati (Data-Intensive Web Applications) Dispensa del corso di Basi di dati ( )

Tecnologie di Sviluppo per il Web

EVOLUZIONI DEL CALCOLO WEB. DIREZIONI CORRENTI di EVOLUZIONE Sicuramente il campo applicativo più ampio di dimensioni è il sistema Web stesso

Corso di Reti di Calcolatori L-A

Java Servlet & Java Server Pages (una semplice introduzione) SAPIENZA Università di Roma Corso di Progetto di Applicazioni Software

Errata Corrige di Manuale di Java 8

Servlet. Possibili usi di una Servlet. Servlet e Servlet Container. Introduzione alle Servlet

Soluzione 1: controller per la pagina di dettaglio delle categorie

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Parte II: Reti di calcolatori Lezione 10

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

D B M G Il linguaggio HTML

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte)

Java Server Pages. Corso di Applicazioni Telematiche. A.A Lezione n.18 Prof. Roberto Canonico

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

Creazione, eliminazione, lettura e scrittura di file di testo

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali

Chiamata delle funzioni JavaScript da un applet

Introduzione. Capitolo 9

Progetto di reti di Calcolatori e Sistemi Informatici

SERVLET & JSP DISPENSE

Breve Tutorial su J2EE

Linguaggi di Programmazione: Paradigmi di Programmazione

ProgettAzione tecnologie in movimento - V anno Unità 4 - Applicazioni per i sistemi mobili

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione

Insegnamento di Laboratorio di algoritmi e strutture dati

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

Esercizio 1: archivio CD e DVD

Transcript:

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. Utilizziamo una variabile d istanza privata i nel modo seguente: la azzeriamo all inizio dell esecuzione della servlet; la incrementiamo ad ogni accesso. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

Il sorgente Java (I) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Contatore extends HttpServlet { private int i; // init viene eseguito solo alla prima richiesta // della servlet. public void init() { i=0; } // continua nel lucido successivo... Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-2

Il sorgente Java (II) //... continua dal lucido precedente public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); out.println("<html>"); out.println("<head><title>contatore di "+ "accessi</title></head>"); out.println("<body>"); out.println("<strong>accessi registrati "+ "finora: "+(++i)+"</strong>"); out.println("</body></html>"); } } Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-3

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 i = 0 (che inizializza a zero il contatore di accessi). Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-4

Modifiche al file index.html <HTML> <HEAD> <TITLE>Servlet di prova</title> </HEAD> <BODY> <TABLE>... <TR> <TD> <A HREF="servlet/Contatore">Un contatore di accessi</a> </TD> </TR> </TABLE> </BODY> </HTML> Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-5

Modifiche al file web.xml <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app>... <servlet> <servlet-name>contatore</servlet-name> <servlet-class>contatore</servlet-class> </servlet> <servlet-mapping> <servlet-name>contatore</servlet-name> <url-pattern>/servlet/contatore</url-pattern> </servlet-mapping> </web-app> Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-6

Aspetto della pagina index.html CiaoMondo.class nome.html/ciaopersonalizzato.class Contatore.class Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-7

Generare una tabella HTML a partire da un file di testo In questo esempio faremo generare alla servlet StampaTabella una tabella HTML 10x2 a partire dal contenuto di un file di testo. Il formato dei dati nel file di testo è il cosiddetto CSV (i.e., Comma Separated Value: valori separati da virgole). I dati della tabella saranno contenuti in un file di testo chiamato tabella.txt nella cartella servlets della propria home directory. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-8

Il codice Java (I) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class StampaTabella extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException, FileNotFoundException { String filepath=getservletcontext().getrealpath("")+"/tabella.txt"; BufferedReader input = new BufferedReader(new FileReader(filePath)); String linea = null; res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); out.println("<html>"); out.println("<head><title>tabella letta da file</title></head>"); Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-9

Il codice Java (II) out.println("<body>"); out.println("<table BORDER=\"1\">"); while((linea = input.readline())!= null) { out.println("<tr>"); String[] celle = linea.split(","); out.println("<td>"+celle[0]+"</td>"); out.println("<td>"+celle[1]+"</td>"); out.println("</tr>"); } } input.close(); out.println("</table>"); out.println("</body></html>"); } Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-10

Modifiche al file index.html <HTML> <HEAD> <TITLE>Servlet di prova</title> </HEAD> <BODY> <TABLE>... <TR> <TD> <A HREF="servlet/Tabella">Stampa di una tabella letta da file</a> </TD> </TR> </TABLE> </BODY> </HTML> Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-11

Modifiche al file web.xml <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app>... <servlet> <servlet-name>tabella</servlet-name> <servlet-class>stampatabella</servlet-class> </servlet> <servlet-mapping> <servlet-name>tabella</servlet-name> <url-pattern>/servlet/tabella</url-pattern> </servlet-mapping> </web-app> Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-12

Note sul dispiegamento Ricordarsi di copiare nella cartella servlets della propria home directory su mizzi.dimi.uniud.it anche il file tabella.txt. Esempio di contenuto del file tabella.txt: Riga 1 Colonna 1,Riga 1 Colonna 2 Riga 2 Colonna 1,Riga 2 Colonna 2 Riga 3 Colonna 1,Riga 3 Colonna 2 Riga 4 Colonna 1,Riga 4 Colonna 2 Riga 5 Colonna 1,Riga 5 Colonna 2 Riga 6 Colonna 1,Riga 6 Colonna 2 Riga 7 Colonna 1,Riga 7 Colonna 2 Riga 8 Colonna 1,Riga 8 Colonna 2 Riga 9 Colonna 1,Riga 9 Colonna 2 Riga 10 Colonna 1,Riga 10 Colonna 2 Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-13

Esempio di esecuzione di StampaTabella Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-14