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



Documenti analoghi
Software utilizzato per le esercitazioni

Programmazione server-side: Java Servlet

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

Architetture Web: un ripasso

Tecnologie di Sviluppo per il Web

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

Tecnologie di Sviluppo per il Web

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

Tecnologie di Sviluppo per il Web

Application Server per sviluppare applicazioni Java Enterprise

Note pratiche sullo sviluppo di servlet (I)

Strumenti per la programmazione

Introduzione alla programmazione Http lato server in Java

Informatica. Prof. A. Longheu. Introduzione a Java

Ambienti di Sviluppo

Laboratorio di Basi di dati

Laboratorio di Basi di Dati e Web

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

Panoramica: che cosa è necessario

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

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

sito web sito Internet

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

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

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

Server-side Programming: Java servlets Parte II

Server Web. Apache Tomcat. Modalità di funzionamento. Autore: Roberto Fabbrica Diapo 1. Diapo 2. Diapo 3

Laboratorio di sistemi Prima Web Application JSP [Java]

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

MetaMAG METAMAG 1 IL PRODOTTO

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

Protocolli e architetture per WIS

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Flavio De Paoli

Implementazione di MVC. Gabriele Pellegrinetti

1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server

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

Tener traccia del client

Il Web Server e il protocollo HTTP

JUG Ancona Italy. Google Web Toolkit. Giovanni Baleani Programmatore Java. Filippetti S.r.l.

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

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Gestire le sessioni con le Servlet

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

Applicazioni web centrati sui dati (Data-centric web applications)

Istruzioni per l installazione

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E.

Installazione del Software. per lo Sviluppo di Applicazioni Java

Capitolo 4 Pianificazione e Sviluppo di Web Part

Java SOAP Client. Manuale per l installazione. WebEDI Scambio elettronico documenti. ManualeInstallazioneSoapCli ent

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 /

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Registratori di Cassa

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

DOCFINDERWEB SERVICE E CLIENT

Siti web centrati sui dati (Data-centric web applications)

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

Tomcat struttura delle directory

Ingegneria del Software 1: Eclipse

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

Antonio d Acierno 13/01/2006

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

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

Servlet API. Programmazione in Ambienti Distribuiti A.A

Appunti di Informatica 1

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML

Siti interattivi e dinamici. in poche pagine

PORTALE CLIENTI Manuale utente

Il web server Apache Lezione n. 3. Introduzione

Moduli di Fatturazione Elettronica

Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche

Programmazione ad Oggetti. Java Parte I

Esercitazione 8. Basi di dati e web

Corso di PHP. Prerequisiti. 1 - Introduzione

Tipi fondamentali di documenti web

Gestione di database lato server, appunti di configurazione

Tutorial web Application

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

Tecnologie di Sviluppo per il Web

Laboratorio di Basi di Dati

Il Web-Service SDMX dell ISTAT

PHP e Java ovvero come poter sfruttare entrambi i linguaggi e vivere felici... forse

Lezione III: Oggetti ASP e interazione tramite form HTML

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Lezione II: Web server e ambiente di lavoro

Programmazione Server Side e Database in rete

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

Componenti Web: client-side e server-side

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Port Community System del Porto di Ravenna CONFIGURAZIONE

SPSS Inc. Data Access Pack - Istruzioni di installazione per Windows

Guida all Installazione del ProxyFatturaPA

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

Come funziona internet

Tale attività non è descritta in questa dispensa

GUIDA UTENTE PRIMA NOTA SEMPLICE

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

Transcript:

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 nasce per essere eseguito lato client da un browser (applet) o sul desktop (application) Il fatto che Java viene inizialmente compilato in bytecode poi interpretato dalla Java Virtual Machine ci fa pensare di aver finalmente raggiunto il massimo della portabilità La portabilità di un componente software ne permette l'uso in un ambiente di esecuzione diverso da quello originale WORA - Write Once Run Anywhere Ma in realtà WODE - Write Once Debug Everywhere Mentre continua il successo a livello di application le applet sono ormai quasi scomparse dalla rete. Java però ha ora preso posizione sul lato server ( e JSP) Alberto Ferrari 3 - Introduzione I servlet sono moduli che estendono le funzionalità dei server (es. i server web con supporto Java) Un servlet può occuparsi, per esempio, di accettare i dati di un form html e aggiornare un database I servlet possono essere utilizzati in diversi tipi di server Alberto Ferrari 4 Alberto Ferrari 2

Definizioni API Le Application Programming Interface API (Interfaccia di Programmazione di un'applicazione), sono insiemi di procedure disponibili al programmatore, di solito raggruppate a formare un set di strumenti specifici per un determinato compito. Framework Nella produzione del software, il framework è una struttura di supporto su cui un software può essere organizzato e progettato. Alla base di un framework c'è sempre una serie di librerie di codice utilizzabili con uno o più linguaggi di programmazione, spesso corredate da una serie di strumenti di supporto allo sviluppo del software, come ad esempio un IDE, un debugger, o altri strumenti ideati per aumentare la velocità di sviluppo del prodotto finito. Wikipedia Alberto Ferrari 5 Scrittura di un servlet I servlet sono scritti interamente in Java Per svilupparli sono necessarie le due librerie: javax.servlet javax.servlet.http Oltre al compilatore java è necessario JDK (per sviluppo di applicazioni Java) JSDK (per sviluppo JSP e servlet) Alberto Ferrari 6 Alberto Ferrari 3

- API Il package javax.servlet fornisce interfacce e classi per scrivere servlet L astrazione centrale nelle API è l interfaccia Tutte i servlet implementano questa interfaccia, direttamente oppure estendendo una classe che la implementa, (es. Http) L interfaccia dichiara (ma non implementa) metodi per gestire servlet e le sue comunicazioni con i client Gli autori di servlet devono implementare questi metodi Un servlet deve costruire l intera pagina dal tag <html> al tag </html> Alberto Ferrari 7 - Ciclo di vita Inizializzazione Il server carica e inizializza il servlet Esecuzione Quando arriva una richiesta Si riceve un oggetto Request con tutte le informazioni sulla richiesta Si usa un oggetto Response per restiruire la risposta Distruzione Il server rimuove il servlet Alberto Ferrari 8 Alberto Ferrari 4

Gestione richiesta GET import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloUser extends Http { public void doget(httprequest request, HttpResponse response) throws IOException, Exception { String user = request.getparameter("user"); response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<head><title>hello </title></head>"); out.println("<body><h1>hello " + user + "!</h1></body>"); out.println("</html>"); Alberto Ferrari 9 Inviare una richiesta GET <form action="http://myhost.com/mycontext/hellouser" method="get"> User: <input type="text" name="user" value="" size="10" maxlength="10" /><br /> <input type="submit" name="okbutton" value="ok, submit!" /> <input type="reset" value="whoops - erase that" /> </form> Alberto Ferrari 10 Alberto Ferrari 5

Aggiungere parametri ai link Quando si clicca su un link in una pagina web, il browser invia una richiesta GET Si possono aggiungere alla richiesta dei parametri Coppie nome/valore Devono essere aggiunti alla url della richiesta, dopo un carattere? Se si passano più parametri, devono essere separati da un & <a href="http://myhost.com/mycontext/hellouser?user=al&okbutton=ok,+sub mit!"> Alberto Ferrari 11 Gestire una richiesta POST import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloUser extends Http { public void dopost(httprequest request, HttpResponse response) throws IOException, Exception { String user = request.getparameter("user"); response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<head><title>hello </title></head>"); out.println("<body><h1>hello " + user + "!</h1></body>"); out.println("</html>"); Alberto Ferrari 12 Alberto Ferrari 6

Inviare una richiesta POST <form action="http://myhost.com/mycontext/hellouser" y method="post"> User: <input type="text" name="user" value="" size="10" maxlength="10" /><br /> <input type="submit" name="okbutton" value="ok, submit!" /> <input type="reset" value="whoops - erase that" /> </form> Alberto Ferrari 13 - Gestione sia di GET che di POST import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class PostToGetExample extends Http { public void doget(httprequest request, HttpResponse response) throws IOException, Exception { // Handle both GET and POST requests here public void dopost(httprequest request, HttpResponse response) throws IOException, Exception { doget(request, response); Alberto Ferrari 14 Alberto Ferrari 7

Tomcat Alberto Ferrari 15 Tomcat - Introduzione Apache Tomcat (o semplicemente Tomcat) è una applicazione open source sviluppata da Apache Software Foundation. Implementa le specifiche JSP e di Sun Microsystems, fornendo quindi una piattaforma per l'esecuzione di applicazioni Web sviluppate nel linguaggio Java. La sua distribuzione standard include anche le funzionalità di web server tradizionale, che corrispondono al prodotto Apache. In passato, Tomcat era gestito nel contesto del Jakarta Project, ed era pertanto identificato con il nome di Jakarta Tomcat; attualmente è oggetto di un progetto indipendente. Tomcat è rilasciato sotto licenza Apache Software License, ed è scritto interamente in Java; può quindi essere eseguito su qualsiasi architettura su cui sia installata una JVM. Wikipedia Alberto Ferrari 16 Alberto Ferrari 8

Tomcat - Riferimenti Sito ufficale http://tomcat.apache.org/ Guida in italiano http://www.mrwebmaster.it/tomcat/guide/guida-tomcat_37/ Alberto Ferrari 17 Tomcat - Principali cartelle /bin Vari script per avvio, chiusura ecc. File *.sh (per sistemi Linux/Unix) e *.bat (per sistemi Windows) /conf File di configurazione. server.xml per la configurazione del container /lib Librerie comuni. servlet-api.jar deve essere aggiunta al classpath java per compilare le servlet /logs File di log /webapps Qui vanno inserite le applicazioni web. Creare una nuova sottocartella per ogni nuova applicazione web Alberto Ferrari 18 Alberto Ferrari 9

Tomcat - Organizzazione cartelle Bisogna organizzare i file delle applicazioni web come previsto dal formato WAR (Web Application Archive) Partiamo dalla cartella principale della nostra applicazione web, contenuta in webapps: *.html, *.gif, *.jsp, *,js, *.css, etc. Per le applicazioni più semplici, si possono tenere tutti i file visibili al browser nella radice /WEB-INF/ Tale cartella deve sempre esistere, anche se vuote. Notare il nome in maiuscolo. /WEB-INF/web.xml Il descrittore dell applicazione /WEB-INF/classes/ Contiene le classi richieste dall applicazione applicazione File *.class e risorse associate (sia servlet che altro) non inclusi in file JAR Come sempre, occorre che le cartelle riflettano l organizzazione delle classi in package /WEB-INF/lib/ - File JAR necessari, ad esempio librerie di terze parti, driver per database ecc. Alberto Ferrari 19 Tomcat - Semplice descrittore (web.xml) <?xml version="1.0" encoding="iso-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd" version="2.5"> <servlet> <servlet-name>hello</servlet-name> <servlet-class>hellouser</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hellouser</url-pattern> </servlet-mapping> </web-app> Alberto Ferrari 20 Alberto Ferrari 10