Tomcat struttura delle directory



Documenti analoghi
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. 2006/07-1

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

Note pratiche sullo sviluppo di servlet (I)

Tener traccia del client

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

Gestire le sessioni con le Servlet

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

Programmazione server-side: Java Servlet

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

JSP - Caso di studio 1 Una galleria di immagini

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

Architetture Web: un ripasso

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Il Web Server e il protocollo HTTP

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

Tecnologie di Sviluppo per il Web

Svantaggi delle servlet

Introduzione alla programmazione Http lato server in Java

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

Application Server per sviluppare applicazioni Java Enterprise

Server-side Programming: Java servlets Parte II

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

Sviluppo di Applicazioni Web con Java 2 Enterprise Edition

Porting Su Hostingjava

19. LA PROGRAMMAZIONE LATO SERVER

Tecnologie di Sviluppo per il Web

Visualizzazione ordini in MyShopDB

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Ciclo di vita di una Servlet

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di dati

Architetture Web I Server Web e gli Standard della Comunicazione

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

OSSIF WEB. Manuale query builder

Laboratorio di Basi di Dati e Web

Installazione del software Fiery per Windows e Macintosh

filrbox Guida all uso dell applicazione DESKTOP Pag. 1 di 27

Un contatore di accessi

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Appunti di Informatica 1

Tale attività non è descritta in questa dispensa

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

Il web server Apache Lezione n. 3. Introduzione

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

MANUALE PARCELLA FACILE PLUS INDICE

CONFIGURAZIONE SERVER APACHE (XAMPP): ACCESSO SICURO A DIRECTORY DEL FILE SYSTEM.

Simulazione seconda prova Esame di Stato Sito Web - Gestione di un centro agroalimentare all ingrosso (Parte seconda)

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

ARCHIVIA PLUS - ARCHIFILE

Laboratorio di sistemi Prima Web Application JSP [Java]

Progetto di Ingegneria del Software 2. SWIMv2

GUIDA UTENTE BILLIARDS COUNTER (Vers )

Laboratorio di Progettazione Web

Regione Toscana - Giunta Regionale

Guida alla registrazione on-line di un NovaSun Log

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

INFN Sezione di Perugia Servizio di Calcolo e Reti Fabrizio Gentile Enrico Becchetti

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

Guida alla registrazione on-line di un DataLogger

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

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

CdL in Medicina Veterinaria - STPA AA

Utilizzo della Intranet, forum privati Soci e Staff

GUIDA UTENTE MONEY TRANSFER MANAGER

Manuale di Aggiornamento BOLLETTINO. Rel H2. DATALOG Soluzioni Integrate a 32 Bit

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

Forms. Commercio elettronico Registrazione di nuovi membri (organizzazioni non-profit) Ricerca di mercato (collezione di dati relativi a utenti)

SOMMARIO... 3 INTRODUZIONE...

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

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

1. Indice Uno shop pronto alla vendita in pochi passaggi Registrazione Il suo assistente di installazione...

Installazione del Software. per lo Sviluppo di Applicazioni Java

SERVLET & JSP DISPENSE

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

sito web sito Internet

Protocolli applicativi: FTP

ImporterOne Manuale Export Plugin Prestashop

Progetto ittorario Anno scol

PSNET UC RUPAR PIEMONTE MANUALE OPERATIVO

Modulo 2 Uso del computer e gestione dei file

Introduzione. Installare EMAS Logo Generator

MANUALE DI INSTALLAZIONE OMNIPOINT

6. Predisposizione di un Web server di sviluppo

PIATTAFORMA DOCUMENTALE CRG

Tutorial web Application

Tecnologie di Sviluppo per il Web

FTP. studioand CORTILE DEL MAGLIO. manuale per la configurazione dell accesso FTP. Via Andreis, 18/ Torino (To)

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

Il salvataggio sui pc locali è consentito solo per il tempo strettamente necessario al loro utilizzo.

XML e PHP. Gestire XML con PHP. Appendice

(Analisi, Estrazione ed invio via dei cedolini paga).

Web-TV Manuale per l Amministratore

Client - Server. Client Web: il BROWSER

Manuale Utente. Ver. 3 del 08/2014. Support Regola Servizio di Assistenza Tecnica. info@regola.it Pec: regola@legalmail.it Web:

Dropbox di classe. É un servizio internet fornito gratuitamente (funzioni base).

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

FITS UPLOAD. Software di upload automatico file di immagini astronomiche Versione 1.2

LABORATORIO DI Tecnologie di Sviluppo per il Web. Guida all installazione del Software

Transcript:

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ù recenti) conf logs temp webapps work Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-1

Tomcat directory bin Questa directory contiene i file binari e gli script di amministrazione di Tomcat. Tra questi ve ne sono due fondamentali: startup.sh (startup.bat in Windows): avvia Tomcat shutdown.sh (shutdown.bat in Windows): arresta Tomcat Durante la fase di sviluppo di una web application è molto frequente dover arrestare e riavviare il servizio. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-2

Tomcat directory common In questa directory si trovano le classi relative a Tomcat ed alle applicazioni web pubblicate in webapps: classes/.class lib/.jar servlet.jar (o servlet-api.jar): da inserire nel classpath: javac classpath $TOMCAT_HOME/common/lib/servlet-api.jar <file.java> tools.jar... Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-3

Tomcat directory conf Questa directory contiene i file di configurazione di Tomcat. In particolare vi sono i seguenti file: server.xml: parametri di configurazione generali di Tomcat (in caso di modifica è necessario riavviare il server). tomcat-users.xml: informazioni sugli utenti di Tomcat. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-4

Tomcat server.xml (I) Struttura del file: <Server> (tag principale) <Service> (descrive la modalità di funzionamento, e.g., stand-alone) Connector (porta TCP su cui Tomcat ascolta le richieste) Engine (gestore delle richieste)» Host (host virtuale) Context (applicazione web)» Realm» Logger Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-5

Tomcat server.xml (II) Uno dei tag fondamentali è <Context> in quanto consente di definire il contesto di un applicazione web: <Context path="/examples" docbase="examples" debug="0" reloadable="true" /> URL Posizione nel file system Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-6

Esempio: definire un applicazione fuori da webapps Specificando il tag Context come segue, si definisce una nuova applicazione i cui file risiedono in C:\nuovaapp e richiamabile tramite l URL http://<host>:8080/nuova <Context path="/nuova" docbase="c:\nuovaapp" debug="0" reloadable="true" /> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-7

Tomcat server.xml (III) Il tag <Logger> consente di definire le caratteristiche e la posizione dei file di log: <Logger classname="org.apache.catalina.logger.filelogger" directory="logs" prefix="localhost_log. " suffix=".txt" timestamp="true" /> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-8

Tomcat tomcat-users.xml (I) <?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> <user username="admin" password="adminpwd" roles="admin,manager"/> </tomcat-users> N.B.: le password degli utenti sono inserite in chiaro! Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-9

Tomcat directory logs Questa directory contiene i registri dell attività di Tomcat. Sono presenti molti file il cui nome è definito dal tag <Logger> nel file di configurazione server.xml. Ad esempio alcuni possibili formati sono: localhost_log.aaaa-mm-gg.txt localhost_admin_log.aaaa-mm-gg.txt localhost_users_log.aaaa-mm-gg.txt Cosa viene registrato? eventi relativi al server Tomcat (avvio, arresto, ); eventuali errori; Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-10

Tomcat directory temp Temp è una directory di lavoro dove Tomcat memorizza dei file temporanei durante la sua attività. Questa directory è essenziale per il funzionamento di Tomcat e non va rimossa (anche se appare vuota). Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-11

Tomcat - directory webapps Directory contenente le applicazioni web: scritte dagli utenti; predefinite con l installazione di Tomcat (e.g., gli esempi contenuti in examples/). Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-12

Tomcat directory work Anche questa è una directory di lavoro. In particolare Tomcat la utilizza per memorizzare temporaneamente le servlet generate dalle pagine scritte con la tecnologia JSP (Java Server Pages). Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-13

Esempio Ciao, mondo! Fasi dello sviluppo: scrittura del codice in locale (CiaoMondo.java); compilazione in locale (CiaoMondo.class) passo opzionale; scrittura del file web.xml (deployment descriptor file); Scrittura di una pagina HTML di presentazione che contenga il link alla servlet passo opzionale; deployment e Test su un installazione locale di tomcat passo opzionale; copia dei file sul server (latoserver.dimi.uniud.it) nelle opportune directory tramite scp; compilazione sul server (se la compilazione è avvenuta in locale, si può provare a copiare sul server solo il file CiaoMondo.class, evitando questo passo); Arresto e riavvio della propria applicazione web tramite il Tomcat Manager. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-14

Il codice import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class CiaoMondo extends HttpServlet { 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\" \"http://www.w3c.org/tr/xhtml1/dtd/xhtml11.dtd\">"); out.println("<html xmlns=\"http://www.w3.org/1999/xhtml\" "+ "xml:lang=\"it\" lang=\"it\">"); out.println("<head><title>ciao, mondo!</title></head>"); out.println("<body>"); out.println("<strong>ciao, mondo!</strong>"); out.println("</body></html>"); Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-15

Compilazione in locale (ambiente Windows) Supponendo di aprire un prompt del DOS, digitare i seguenti comandi: cd <percorso della directory che contiene CiaoMondo.java> javac -classpath "C:\Programmi\Apache Software Foundation\Tomcat 6.0\lib\servletapi.jar" CiaoMondo.java Viene prodotto il file CiaoMondo.class Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-16

Il 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>primotest</servlet-name> <servlet-class>ciaomondo</servlet-class> </servlet> <servlet-mapping> <servlet-name>primotest</servlet-name> <url-pattern>/servlet/primo</url-pattern> </servlet-mapping> </web-app> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-17

Un file index.html con il link alla servlet <HTML> <HEAD> <TITLE>Servlet di prova</title> </HEAD> <BODY> <TABLE> <TR> <TD> <A HREF="servlet/Primo">La mia prima servlet</a> </TD> </TR> </TABLE> </BODY> </HTML> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-18

Deployment in locale (I) Ambiente Windows Dove copiare i file? supponiamo di aver installato Tomcat in C:\Programmi\Apache Software Foundation\Tomcat 7.0; creiamo una cartella test all interno di C:\Programmi\Apache Software Foundation\Tomcat 7.0\webapps; creiamo una cartella WEB-INF all interno di C:\Programmi\Apache Software Foundation\Tomcat 7.0\webapps\test; creiamo una cartella classes all interno di C:\Programmi\Apache Software Foundation\Tomcat 7.0\webapps\test\WEB-INF. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-19

Deployment in locale (II) Ambiente Windows Copiamo index.html (se lo abbiamo creato) in C:\Programmi\Apache Software Foundation\Tomcat 7.0\webapps\test. Copiamo web.xml in C:\Programmi\Apache Software Foundation\Tomcat 6.0\webapps\test\WEB-INF; Copiamo CiaoMondo.class in C:\Programmi\Apache Software Foundation\Tomcat 7.0\webapps\test\WEB- INF\classes; Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-20

Schema della struttura delle directory create $CATALINA_HOME/webapps test index.html WEB-INF web.xml classes/ CiaoMondo.class Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-21

Deployment in locale (III) Ambiente Windows Arrestiamo e riavviamo il servizio (tramite gli script shutdown.bat e startup.bat, oppure l apposita applicazione nella tray-bar di Windows). Testiamo la nostra applicazione: http://localhost:8080/test/ (facciamo click sul link nella pagina che compare sul browser); http://localhost:8080/test/servlet/primo (test diretto senza passare dalla pagina HTML). Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-22

Deployment remoto (tramite scp) - I Sintassi di scp: $ man scp NAME scp secure copy (remote file copy program) SYNOPSIS scp [-pqrvbc46] [-F ssh_config] [-S program] [-P port] [-c cipher] [-i identity file] [-o ssh_option] [[user@]host1]:file1 [ ] [[user@]host2]:file2 The options are as follows: -r Recursively copies entire directories Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-23

Deployment remoto (tramite scp) - II scp index.html <nome utente>@latoserver.dimi.uniud.it:/home/ <nome utente>/servlets/ scp web.xml <nome utente>@latoserver.dimi.uniud.it:/home/ <nome utente>/servlets/web-inf/ scp CiaoMondo.class <nome utente>@latoserver.dimi.uniud.it:/home/ <nome utente>/servlets/web-inf/classes/ Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-24

Deployment remoto (tramite client grafico) Per i sistemi operativi della famiglia Windows esistono dei client grafici per le operazioni di copia remota. Un client grafico gratuito è disponibile all indirizzo http://www.coreftp.com Le operazioni di copia sono notevolmente semplificate dall interfaccia grafica (supporta anche la copia sicura, come scp). Un alto client grafico gratuito è disponibile all'indirizzo http://winscp.net Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-25

Core FTP - Interfaccia Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-26

Deployment remoto su latoserver.dimi.uniud.it Copiare i file su latoserver.dimi.uniud.it (tramite scp o CoreFTP) nelle seguenti directory: index.html in ~/servlets/ web.xml in ~/servlets/web-inf CiaoMondo.class in ~/servlets/web-inf/classes/ Se non si dispone del file.class: copiare CiaoMondo.java nella propria home; Compilarlo con il comando javac ~/CiaoMondo.java Copiare il file compilato in ~/servlets/web-inf/classes/ Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-27

Deployment remoto su latoserver.dimi.uniud.it Collegarsi a http://latoserver.dimi.uniud.it:8080/ Fra i link a sinistra della home page di Tomcat cliccare su Tomcat Manager Inserire lo username tomcat e la password comunicata a lezione Compare una pagina web che elenca tutte le applicazioni registrate su Tomcat Scrollare la pagina fino a individuare la propria (/<nome utente>) Cliccare su Reload oppure prima su Stop e poi su Start (non cliccare su Undeploy) Attenzione a non arrestare, avviare o rimuovere le applicazioni degli altri utenti. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-28

Test finale Collegarsi a http://latoserver.dimi.uniud.it:8080/ <nome utente>/ e cliccare sul link per testare la servlet Oppure collegarsi a http://latoserver.dimi.uniud.it:8080/ <nome utente>/servlet/primo per testare la servlet direttamente senza passare dalla pagina index.html. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-29

Un esempio più complesso Vogliamo ora sperimentare l'utilizzo dei FORM e dei vari campi di input di questi ultimi. Più precisamente scriveremo una pagina (X)HTML contenente un form che chiederà all utente di inserire alcune informazioni. Alla pressione del pulsante di invio del form, verrà chiamata una servlet che leggerà i valori inseriti dall utente e genererà una pagina visualizzandoli. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-30

Il form: form.html (1) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3c.org/tr/xhtml1/dtd/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it"> <head> <title>un semplice form</title> </head> <body> <form method="post" action="servlet/formtest"> Qual è il tuo nome? <input type="text" name="nome"><br/> Inserisci una password: <input type="password" name="pwd"><br/> Scegli una città: <select name="citta"> <option value="1">milano</option> <option value="2">padova</option> <option value="3">roma</option> <option value="4" selected="true">udine</option> </select><br />... Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-31

Il form: form.html (2)... Quali mezzi di trasporto usi? <br /> <input type="checkbox" name="trasporto1"> Auto<br /> <input type="checkbox" name="trasporto2"> Bicicletta<br /> <input type="checkbox" name="trasporto3"> Mezzi pubblici<br /> <input type="checkbox" name="trasporto4"> Vado a piedi<br /> Hai detto la verità? Sì <input type="radio" name="dichiarazione" value="s" checked> No <input type="radio" name="dichiarazione" value="n"><br/> <input type="submit" value="invia >>"> </form> </body> </html> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-32

La nuova servlet: FormFieldsTest.java (1) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; Recupero dei valori dei campi del form public class FormFieldsTest extends HttpServlet { public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); PrintWriter out = res.getwriter(); String nome=req.getparameter("nome")==null? "" : req.getparameter("nome"); String password=req.getparameter("pwd")==null? "" : req.getparameter("pwd"); String citta=req.getparameter("citta")==null? "" : req.getparameter("citta"); String mezzo1=req.getparameter("trasporto1")==null? "" : req.getparameter("trasporto1"); String mezzo2=req.getparameter("trasporto2")==null? "" : req.getparameter("trasporto2"); String mezzo3=req.getparameter("trasporto3")==null? "" : req.getparameter("trasporto3"); String mezzo4=req.getparameter("trasporto4")==null? "" : req.getparameter("trasporto4"); String dichiarazione=req.getparameter("dichiarazione")==null? "" : req.getparameter("dichiarazione"); out.println("<!doctype html PUBLIC \"-//W3C//DTD XHTML "+ "1.1//EN\" \"http://www.w3c.org/tr/xhtml1/dtd/xhtml11.dtd\">"); out.println("<html xmlns=\"http://www.w3.org/1999/xhtml\" "+ "xml:lang=\"it\" lang=\"it\">");... Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-33

La nuova servlet: FormFieldsTest.java (2) out.println("<head><title>visualizzare i valori dei campi di un semplice form</title></head>"); out.println("<body>"); out.println("<strong>i valori inseriti nei campi del form sono i seguenti:</strong><br />"); out.println("<br /><strong>nome:</strong> "+(nome.equals("")? "n.d." : nome)); out.println("<br /><strong>password:</strong> "+(password.equals("")? "n.d." : password)); out.println("<br /><strong>città:</strong> "); int numerocitta=0; try { numerocitta=integer.parseint(citta); } catch(numberformatexception e) { } Conversione a numero intero out.println("errore di formato nella specifica della città! "); numerocitta=0; Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-34 Stampa i valori di nome e password

La nuova servlet: FormFieldsTest.java (3) switch(numerocitta) { case 1: out.println("milano"); break; case 2: out.println("padova"); break; case 3: out.println("roma"); break; case 4: out.println("udine"); break; default: out.println("n.d."); } L'intero che rappresenta la scelta della città diventa argomento di un comando switch. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-35

La nuova servlet: FormFieldsTest.java (4)... out.println("<br /><strong>mezzi di trasporto:</strong>"); out.println(mezzo1.equals("on")? "<br />Auto" : ""); out.println(mezzo2.equals("on")? "<br />Bicicletta" : ""); out.println(mezzo3.equals("on")? "<br />Mezzi pubblici" : ""); out.println(mezzo4.equals("on")? "<br />Vado a piedi" : ""); out.println("<br /><strong>dichiarazione di verità:</strong> "+ (dichiarazione.equals("s")? "sì" : "no")); } } out.println(""); out.println("</body></html>"); Stampa della scelta relativa ai checkbox e al radio button Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-36

Modifiche da apportare a 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>formtest</servlet-name> <servlet-class>formfieldstest</servlet-class> </servlet> <servlet-mapping> <servlet-name>formtest</servlet-name> <url-pattern>/servlet/formtest</url-pattern> </servlet-mapping> </web-app> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-37

Modifiche da apportare a index.html <HTML> <HEAD> <TITLE>Servlet di prova</title> </HEAD> <BODY> <TABLE> <TR> <TD> <A HREF="servlet/Primo">La mia prima servlet</a> </TD> </TR> <TR> <TD> <A HREF="form.html">Una servlet un po' più complessa</a> </TD> </TR> </TABLE> </BODY> </HTML> Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-38

Gli argomenti dei metodi doget/dopost Osserviamo che le servlet sono dei veri e propri programmi Java che vengono invocati dal contenitore di servlet (e.g., Tomcat) per soddisfare le richieste dei client. L interfaccia con il protocollo HTTP messa a disposizione del programmatore consiste nell utilizzo dei metodi dei due argomenti di tipo HttpServletRequest e HttpServletResponse. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-39

E un interfaccia, definita in javax.servlet.http, che aggiunge alla soprainterfaccia ServletRequest (per servlet generiche), definita in javax.servlet, metodi specifici per le richieste HTTP. Rappresenta la richiesta di un client verso una servlet. L oggetto corrispondente viene creato dal container (e.g., Tomcat) al momento della richiesta e passato al metodo opportuno della servlet. Metodi fondamentali: getinputstream: per leggere informazioni inviate dal client; getinputstream HttpServletRequest getparameter: per estrarre i parametri della richiesta. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-40

HttpServletResponse E un interfaccia, definita in javax.servlet.http, che aggiunge alla soprainterfaccia ServletResponse (per servlet generiche), definita in javax.servlet, metodi specifici per le richieste HTTP. Rappresenta la risposta al client da parte di una servlet. L oggetto corrispondente viene creato dal container (e.g., Tomcat) al momento della richiesta e passato al metodo opportuno della servlet. Metodi fondamentali: setcontenttype: per specificare il tipo MIME del contenuto che verrà spedito al client getwriter: restituisce il flusso di dati verso il client. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-41

Errori comuni Tomcat manager: "FAIL - Application at context path /test could not be started" - Causa: errore di parsing - controllare il file web.xml. HTTP Status 404 - Causa: servlet non trovata: controllare l URL della servlet ed i link ad essa relativi controllare che il tag <url-pattern> abbia un "/"iniziale (a differenza degli URL relativi che si usano nelle pagine (X)HTML per richiamare le servlet). HTTP Status 405 - HTTP method GET is not supported by this URL - Causa: la servlet non pu` essere richiamata direttamente tramite il suo URL (non è stato eseguito l overriding del metodo doget()). HTTP Status 500: Errore interno (eccezione) della servlet. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-42

Esercizi Eseguire il deployment ed il test di FormFieldsTest ( aggiornando anche i file web.xml e index.html) su latoserver.dimi.uniud.it FormFieldsTest può essere richiamata direttamente (senza passare dal form) tramite il seguente URL? http://latoserver.dimi.uniud.it:8080/<nome utente>/servlet/formtest Perché? Apportare le dovute modifiche a FormFieldsTest.java affinché funzioni anche con una richiesta diretta (senza passare dal form). Scrivere un applicazione web che generi una pagina HTML con la tabellina Pitagorica. Complementi di Tecnologie Web M. Franceschet, V.Della Mea e I.Scagnetto, a.a. 2011/12-43