Laboratorio di Programmazione di Rete



Похожие документы
Web Application model. Servlet. Servlet e Servlet Container. Introduzione alle Servlet

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

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

Programmazione server-side: Java Servlet

Note pratiche sullo sviluppo di servlet (I)

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

Tecnologie di Sviluppo per il Web

Architetture Web: un ripasso

Introduzione alla programmazione Http lato server in Java

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di dati

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Servlet API. Programmazione in Ambienti Distribuiti A.A

Laboratorio di Basi di Dati

Tomcat struttura delle directory

Application Server per sviluppare applicazioni Java Enterprise

Server-side Programming: Java servlets Parte II

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

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

Laboratorio di sistemi Prima Web Application JSP [Java]

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

SERVLET & JSP DISPENSE

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

3 ServletContext. Marco Tessarotto Programmazione dei Web Server Anno Accademico

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

Tutorial web Application

Corso di Applicazioni Telematiche

19. LA PROGRAMMAZIONE LATO SERVER

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

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

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

Tener traccia del client

Tecnologie di Sviluppo per il Web

Software utilizzato per le esercitazioni

Un contatore di accessi

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

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

Laboratorio di reti II: Servlet

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 /

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

Introduzione al linguaggio Java: Servlet e JSP

1 EJB e Portal Component Object

Capitolo 4 Pianificazione e Sviluppo di Web Part

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

Architetture Web I Server Web e gli Standard della Comunicazione

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

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

Il web server Apache Lezione n. 3. Introduzione

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

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

Il Protocollo HTTP e la programmazione di estensioni Web

Concetto di sessione di navigazione. I cookie. Gestione della sessione di navigazione. Introduzione alle Servlet 2

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

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

Apache Webserver. Piccola introduzione all'installazione ed alla configurazione, a cura di: Alessandro Gervaso

JAVA SERVLET: I filtri

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005

A. Lorenzi Pagine ASP

Alla cortese attenzione di:

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

JavaServer Pages: Introduzione

Panoramica: che cosa è necessario

Flavio De Paoli

Informatica per la comunicazione" - lezione 10 -

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Il Web Server e il protocollo HTTP

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

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

Gestire le sessioni con le Servlet

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Programmazione dei socket con TCP #2

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Guida all Installazione del ProxyFatturaPA

Architetture Web I Server Web e gli Standard della Comunicazione

DOCFINDERWEB SERVICE E CLIENT

Programmazione Java Avanzata

Svantaggi delle servlet

Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert)

Lezione 1 Introduzione

Транскрипт:

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

Jakarta project Progetto Jakarta (Apache Software Foundation) Implementazione di riferimento degli standard per la realizzazione di servlet e di Java Server Pages Obiettivo: [ ] to provide commercial-quality server solutions based on the Java Platform that are developed in an open and cooperative fashion

Architetture per l esecuzione di servlet Servlet container (o servlet engine) E il server che esegue una servlet Servlet e JSP sono supportate direttamente o attraverso plugin dalla maggior parte dei Web servers e application server Apache TomCat Sun ONE Application Server Microsoft s Internet Information Server (IIS) Apache HTTP Server + modulo JServ BEA s WebLogic Application Server IBM s WebSphere Application Server World Wide Web Consortium s Jigsaw Web Server

Configurareilserver Apache Tomcat (1) 1. Installare j2sdk 2. Definire la variabile PATH=c:\j2sdk---\bin (per poter trovare il compilatore) 3. Definire la variabile JAVAHOME=c:\j2sdk--- (perché tomcat trovi la jvm) 4. Installare il server TomCat

Configurareilserver Apache Tomcat (2) 5. Definire la variabile CATALINA_HOME=c:\Programmi\Apache \Tomcat---\ 6. Definire la variabile CLASSPATH=c:\Programmi\Apache \Tomcat--- \common\lib\servlet- api.jar;c:\programmi\apache \Tomcat--- \common\lib\jsp-api.jar 7. TEST: Avviare il server Tomcat (startup), invocare il server da un browser all indirizzo http://localhost:8080/

Configurare il server Apache Tomcat Se Tomcat è installato correttamente dovreste vedere questa pagina all indirizzo http://127.0.0.1:8080/

1 2 // A simple servle t to proces s get request s. 3 4 import javax.servle t.*; 5 import javax.servle t.http.*; 6 import java.io.* ; 7 8 public class Servle tdisa luto exte nds HttpServle t { 9 10 // proces s "get" reques ts from cl ie nts 11 protected void doget( HttpServletRequest reques t, 12 HttpServle tresponse response ) 13 throws Servle texception, IOException 14 { 15 respon se.setcon te nttype( "text/html" ); 16 Prin twriter out = respon se.getwriter() ; 17 18 // send XHTML page to clie nt 19 20 // start XHTML docume nt 21 out.print ln( "<?xml versio n = \"1.0\"?>" ); 22 23 out.print ln( "<!DOCTYPE html PUBLIC \"-//W3C//DTD " + 24 "XHTML 1.0 S trict//en\" \"http://www.w3.org" + 25 "/TR/xhtml1/DTD/xhtml1-strict.dtd\">" ); Importa i package javax.servlet e javax.servlet.http. Estende HttpServlet in modo che gestisca le richieste HTTP get e post. Sovrascrive il metodo doget per fornire funzionalità personalizzate. Utilizza l oggetto response e il relativo metodo setcontenttype per specificare il tipo di contenuto dei dati che devono essere spediti in risposta al client. Utilizza il metodo getwriter dell oggetto response per ottenere un riferimento all oggetto PrintWriter che abilita la servlet a spedire dati al client. ServletDiSaluto.java (1 Crea of 2) il documento XHTML scrivendo stringhe attraverso il metodo println dell oggetto out.

26 27 out.println( "<html xmlns = \"http://www.w3.org/1999/xhtml\">" ); 28 29 // head section of document 30 out.println( "<head>" ); 31 out.println( "<title>a Simple Servlet Example</title>" ); 32 out.println( "</head>" ); 33 34 // body section of document 35 out.println( "<body>" ); 36 out.println( "<h1>welcome to Servlets!</h1>" ); 37 out.println( "</body>" ); 38 39 // end XHTML document 40 out.println( "</html>" ); 41 out.close(); // close stream to complete the page 42 } 43 } Chiude l output stream, esegue il flush del buffer di output e spedisce le informazioni al client. ServletDiSaluto.java (2 of 2)

File index.html 1 <?xml version = "1.0"?> 2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 S trict//en" 3 "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> 4 5 <!Ń File index.html --> 6 7 <html xmlns = "http://www.w3.org/1999/xhtml"> 8 <head> 9 <title>handling an HTTP Get Request</title> 10 </head> 11 12 <body> 13 <form acti on = "/DirectoryDiSa luto/alias ServletDiSa luto" method = "get"> 14 15 <p><label>click the button to invoke the servlet 16 <input type = "submit" value = "Get HTML Docume nt" /> 17 </label></p> 18 19 </form> 20 </body> 21 </html>

Struttura della directory di una web application Context root top level directory di una applicazione web Si crea una sottodirectory nella directory webapps di Tomcat

Struttura della directory di una web application Directory Desc ription context roo t This is the root director y for the Web application. The name of this director y is chosen by the Web appli cation developer. All the JSPs, HTM L documents, servlets and supportin g files such as ima ges and class files reside in this director y or its subdirectories. The name of this dir ectory is specified by the We b application creat or. To provide structure in a Web application, subdirectories can be pl aced in the context root. For example, if your application uses man y ima ges, you might place an ima ge subdirector y in this director y. The examples that follow use direct orydisaluto as the conte xt root. WEB -INF This director y contains the Web application dep loyment descriptor (web.xml ). WEB - INF/classes This director y contains the servlet c lass files and other supportin g class files used in a Web application. If the classe s are part of a packa ge, the complete package director y structure would begin here. WEB -INF/lib This director y contains Java archive (JAR ) files. The JAR files can contain s ervlet class files and other supporti ng class files used in a Web appli cation.

Deployment descriptor (web.xml) Dopo avere configurato l albero delle directory, dobbiamo configurare l applicazione web in modo che possa gestire le richieste Si usa un file web.xml che chiamiamo deployment descriptor Specifica diversi parametri come: - il nome della classe che definisce la servlet, - i percorsi che causano l invocazione della servlet da parte del container

1 <!DOCTYPE web-app PUBLIC 2 "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" 3 "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> 4 5 <web-app> 6 7 <!-- General description of your Web application --> applicazione web 8 <display-name> 9 NomeDisplayDellaWebApplication 10 Viene visualizzato dall admin 11 </display-name> 12 13 <description> 14 Si tratta di un applcazione dove facciamo 15 Esempi di servlet. 16 </description> 17 18 <!-- Servlet definitions --> 19 <servlet> 20 <servlet-name>paperino</servlet-name> 21 22 <description> 23 Una servlet che gestisce le richieste di GET 24 </description> 25 26 <servlet-class> 27 ServletDiSaluto 28 </servlet-class> 29 </servlet> 30 L elemento <web-app> definisce la configurazione di tutte le servlet della L elemento <display-name> specifica un nome che viene utilizzato dall amministratore del server (e visualizzato dal pannello del manager) L elemento <description> specifica una descrizione della applicazione che viene visualizzata nel pannello del manager L elemento <servlet> descrive una specifica servlet: se ci sono più servlet ci saranno più elementi <servlet> L elemento <servlet-name> definisce un nome per la servlet all interno di questo file L elemento <description> fornisce una descrizione di questa servlet specifica L elemento <servlet-class> specifica il nome completo della classe servlet compilata

31 <!-- Servlet mappings --> 32 <servlet-mapping> 33 <servlet-name>paperino</servlet-name> 34 <url-pattern>/aliasservletdisaluto</url-pattern> 35 </servlet-mapping> 36 37 </web-app> L elemento <servletmapping> specifica l associazione tra il nome dato alla servlet nell interno del file web.xml (<servletname>) e l <url-pattern> con cui la servlet potrà essere invocata n.b.: non si specifica la context root nell url-pattern! Ricordiamoci che all interno del server la tecnologia è java, mentre il colloquio con il client avviene nel protocollo HTTP. L associazione tra l URL usata nelle richieste HTTP e la classe java che deve essere eseguita dal server è lo scopo principale del deployment descriptor. Tale associazione è creata nel file web.xml attraverso l elemento <servlet-name> che viene associato prima con il nome della classe (<servlet-class>) e poi con l URL (<url-pattern>). n.b. se la servlet fosse stata parte di un package, avremmo dovuto includere nella directory classes l intera struttura del package