Introduzione a Java Servlet Technology

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

Programmazione server-side: Java Servlet

Corso di Applicazioni Telematiche

Introduzione alla programmazione Http lato server in Java

Laboratorio di reti II: Servlet


Server-side Programming: Java servlets Parte II

SERVLET & JSP DISPENSE

Tecnologie di Sviluppo per il Web

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

Tener traccia del client

Programmazione per il Web Riassunto della lezione del 02/03/2015

Laboratorio di Programmazione di Rete

Servlet API. Programmazione in Ambienti Distribuiti A.A

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

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

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

Introduzione. Java HTTP. G. Prencipe

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

INFORMATICA DISTRIBUITA. lez 5 World Wide Web (cont)

Note pratiche sullo sviluppo di servlet (I)

Tutorial web Application

PRIMO MODULO. DURATA: 80 ore CONTENUTI

Tecnologie di Sviluppo per il Web

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

Corso Programmazione Java Avanzato

Introduzione al linguaggio Java: Servlet e JSP

Architetture Web: un ripasso

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

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

Mantenimento dello stato

Tecnologie di Sviluppo per il Web

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

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

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

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

Stack protocolli TCP/IP

Reti informatiche. 2. Internet e navigazione

Un contatore di accessi

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

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

Laboratorio di Basi di Dati e Web

Web e HTTP. path name. host name Realizzato da Roberto Savino.

Lezione 6. Siti, Utenti e Sessioni

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

Architettura MVC-2 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Verso l architettura MVC-2

Internet of Things & Wireless Sensor Networks

Master SIT settembre Corso Web & GIS. Chiara Renso. ISTI- CNR

Le Reti Informatiche

Architettura MVC-2. Alberto Belussi. Anno accademico 2006/2007

Sicurezza delle applicazioni web: protocollo HTTP

Sessioni Applicative in Http. Tito Flagella

Gestire le sessioni con le Servlet

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

Framework di Middleware. per Architetture Enterprise

Programmazione in Rete

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 2

Java Servlet. Davide Taibi.

Stateless Session Bean

appunti delle lezioni Architetture client/server: applicazioni client

Protocolli e architetture per WIS

Web & basi di dati. Basi di dati & Web. Problema. Pregi e difetti di basi di dati e Web. Architettura generale a livelli. Una gerarchia di soluzioni

Sockets in Java. Lorenzo Gallucci

Il Protocollo HTTP e la programmazione di estensioni Web

Laboratorio di Basi di Dati e Web

Sicurezza delle applicazioni web: protocollo HTTP

Corso sul linguaggio Java

Introduzione a JSP (Java Server Pages) MC 2005

Progettazione Siti Web: Web

Concetti base. Impianti Informatici. Web application

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

Esecuzioni client-side: le Applet

Modulo o Form in Html

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

Programmazione per il Web Riassunto della lezione del 29/02/2016

Le tecnologie software Internet

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

Protocolli applicativi: FTP

Le tecnologie software Internet

ALTRI TIPI DI CONNESSIONE

Ipertesto (testo + link a risorse)

OSOR. Applicazioni di Rete

Architettura Model-View-Controller (MVC)

url uniform resource locator

Servlet. L architettura Java J2EE

Enterprise Java Beans (EJB) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi

Java EE 3. Ingegneria del Software (parte II) Andrea Bei

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

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

3 ServletContext. Marco Tessarotto Programmazione dei Web Server Anno Accademico

Architetture di rete. 4. Le applicazioni di rete

Tito Flagella - Il protocollo HTTP

Connettività e Comunicazione

Laboratorio di Basi di Dati e Web

Tecnologie di Sviluppo per il Web

Corso di Telematica II

Metodologie Informatiche Applicate al Turismo

Java Enterprise Edition - JEE. Autore: Agostino Sorbara ITIS M. M. Milano

LABORATORIO di Reti di Calcolatori

Transcript:

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 è tale, e su cui poggia ogni numerazione e calcolo, ha con ciò appunto conosciuto anche l'intera essenza del tempo [A. Schopenhauer, Il Mondo come Volontà e Rappresentazione]

Java Technology Le sono una tecnologia offerta da Java per l'estensione delle funzionalità di Server che ospitino applicazioni accedute dai Client tramite un modello di comunicazione request-response tipicamente, HTTP HyperText Transfer Protocol sono delegate a processare le request ed emettere le response consistono in moduli di codice Java in esecuzione su un ambiente Server le API sono in un pacchetto incluso in J2EE javax.servlet javax.servlet.http hanno un funzionamento che ricorda le CGI sono dispiegate (deployed) ed eseguite (run) in un Container all'interno del Server non sono thread-safe! Common Gateway Interface 2

Container Infrastruttura software in cui una 1. viene eseguita simile al concetto di Sandbox; 2. scorre il proprio ciclo di vita. 3

Container Infrastruttura software in cui una 1. viene eseguita simile al concetto di Sandbox; 2. scorre il proprio ciclo di vita. Nel resto del corso e nelle esercitazioni verrà adoperato Apache Tomcat bundled in JBoss Application Server 6.0 su distribuzione Linux Ubuntu 4

Gerarchia Le sono in relazione con classi ed interfacce contenute nei package: javax.servlet javax.servlet.http javax.servlet comprende classi ed interfacce indipendenti dal protocollo di comunicazione; estese da classi ed interfacce in javax.servlet.http specifiche per il protocollo HTTP. 5

Java Technology 6

Ciclo di vita delle public void init() invocato dal Container precede qualunque ulteriore invocazione termina prima di qualsiasi ulteriore invocazione tipicamente si effettua overriding di questo metodo per creare le connessioni ad altri oggetti Container-managed, utili durante tutto il resto del ciclo di vita public void destroy() invocato dal Container termina solo dopo che ogni altra invocazione ha terminato la propria esecuzione tipicamente si effettua overriding di questo metodo per rilasciare le risorse occupate prima che la venga distrutta 7

Ciclo di vita delle public void service( Request req, Response res ) gestisce la richiesta del client (req) il parametro req fornisce informazioni contestuali, ad esempio String getremoteaddr() // indirizzo IP del client Enumeration getparameternames() // parametri di invocazione imposta la risposta del server (res) la scrittura sull'output avviene tramite l'oggetto OutputStream associato OutputStream getoutputstream() eseguito dal server in modalità multithread 8

La specializzazione HTTP Per ogni comando (METODO) HTTP 1.0 e 1.1 POST GET HEAD altri (PUT, DELETE, TRACE...) Http definisce metodi nel formato protected void do Metodo ( HttpRequest req, HttpResponse res ) dopost( ) doget( ) dohead( ) doput( ), dodelete( ), dotrace( ),, service( ) 9

GET 10

POST Parametri URL-encoded 11

GET Parametri URL-encoded (query string) 12

HttpRequest HttpResponse HttpRequest estende Request metodi specifici public String getmethod() restituisce il metodo HTTP; ad esempio:» Se la HTTP request è GET http://www.dis.uniroma1.it/index.jsp?question=answer» il metodo restituisce: "GET" public String getrequesturi() restituisce la parte di URL dal nome di dominio alla query string, esclusi» Se la HTTP request è GET http://www.dis.uniroma1.it/index.jsp?question=answer» il metodo restituisce: "/index.jsp" 13

HttpRequest HttpResponse HttpResponse estende Response metodi specifici public String sendredirect(string location) redireziona il browser del client verso la pagina indicata public String senderror(int sc, String msg) restituisce un codice di errore al client (sc sta per status code), con un messaggio HTML definito» si pensi per esempio ad un codice di errore tipico sc := HttpResponse.SC_FORBIDDEN // 403 14

Mantenimento della Sessione HTTP è un protocollo stateless Al di sopra, è stato costruito un sistema di registrazione di variabili di stato relative alla navigazione del client È la Sessione Identifica univocamente il browser in uso sulla macchina client durante la navigazione su una o più pagine residenti sul server Viene inizializzata dal server Può scadere per timeout impostato opzionalmente dal server disabilitazione esplicita Si pensi al meccanismo di login / logout dei siti ad accesso protetto Registrazione / cancellazione della sessione autenticata 15

Mantenimento della Sessione Fisicamente, le variabili di stato vengono salvate su file temporanei del Server L'identificativo della Sessione (e del file sotteso) viene salvato dal client in un cookie, oppure riscritto come parametro di request in tutti i link e le action dei form nelle pagine scritte dal server pratica, quest'ultima, sconsigliabile 16

HttpSession HttpSession è la classe preposta a gestire la sessione HttpRequest espone il metodo HttpSession getsession([boolean create]) il parametro create indica se forzare la creazione di una sessione laddove non fosse stata già inizializzata» per default è true Metodi di HttpSession Object getattribute(string name) void setattribute(string name, Object value) metodi getter e setter per ricevere (risp., impostare) valori in sessione void invalidate() annulla la sessione in corso 17

Packaging e deploying di un progetto Per dispiegare l'applicazione web basata su occorre Web ARchive creare un file WAR con nella sub-directory WEB INF/ file bytecode (*.class) descrittore web.xml nella sub-directory META INF/ file MANIFEST.MF eventuali altri file di utilità spostare il file WAR all'interno della directory $JBOSS_HOME/ server/default/deploy 18

WEB-INF/web.xml 19

Demo (1) 20

Demo (2) 21

Demo (3) 22

Demo (4) 23