Laboratorio di reti II: Servlet



Похожие документы
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

Programmazione server-side: Java Servlet

Architetture Web: un ripasso

Note pratiche sullo sviluppo di servlet (I)

Il Web Server e il protocollo HTTP

Servlet API. Programmazione in Ambienti Distribuiti A.A

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

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

Corso basi di dati Installazione e gestione di PWS

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

Laboratorio di reti II: Java Server Pages

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

Manuale Utente Albo Pretorio GA

FtpZone Guida all uso Versione 2.1

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

MANUALE PARCELLA FACILE PLUS INDICE

1 JSPDynPage, componenti portale e Java Server Pages

3 ServletContext. Marco Tessarotto Programmazione dei Web Server Anno Accademico

Alfa Layer S.r.l. Via Caboto, Torino ALFA PORTAL

Sessioni Applicative in Http. Tito Flagella

Registratori di Cassa

19. LA PROGRAMMAZIONE LATO SERVER

ESERCITAZIONE Semplice creazione di un sito Internet

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

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

GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB

Architettura MVC-2: i JavaBeans

Guida di Pro Spam Remove

Laboratorio di Basi di Dati

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

Application Server per sviluppare applicazioni Java Enterprise

2015 PERIODO D IMPOSTA

Il Protocollo HTTP e la programmazione di estensioni Web

MANUALE UTENTE Fiscali Free

INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla!

Manuale servizio Webmail. Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8

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

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

PRODUZIONE PAGELLE IN FORMATO PDF

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

ARCHIVIA PLUS - ARCHIFILE

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

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel , dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

LA GESTIONE DEI VEICOLI AZIENDALI CON MICROSOFT OUTLOOK

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

Il web server Apache Lezione n. 3. Introduzione

InitZero s.r.l. Via P. Calamandrei, Arezzo

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

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Invio SMS. DM Board ICS Invio SMS

FtpZone Guida all uso

7.4 Estrazione di materiale dal web

GateManager. 1 Indice. tecnico@gate-manager.it

PORTALE CLIENTI Manuale utente

MILANO - DIJON - TVA: FR

Server-side Programming: Java servlets Parte II

SIRTEL. Sistema Informativo per la Rendicontazione Telematica degli Enti Locali. Schema di funzionamento del processo per l Ente Locale

Chat. Connettersi a un server di chat. Modificare le impostazioni di chat. Ricevere impostazioni chat. Chat

Integrazione InfiniteCRM - MailUp

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

1 Copyright ChateXpert

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Il calendario di Windows Vista

Con.Te Gestione Console Telematici

CONTENT MANAGEMENT SY STEM

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

MANUALE UTENTE. In questo manuale verranno descritte tutte le sue funzioni. Il sistema OTRS è raggiungibile al seguente link:


Outlook Plugin per VTECRM

Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

DOCFINDERWEB SERVICE E CLIENT

Capitolo 4 Pianificazione e Sviluppo di Web Part

Appunti di Informatica 1

GUIDA AL SOCIAL CARE

appunti delle lezioni Architetture client/server: applicazioni client

Replica con TeraStation 3000/4000/5000/7000. Buffalo Technology

Risposte e consigli ruotanti attorno a Docsafe

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

Manuale Intesa. Guida all apertura di un ticket di assistenza online

GERARCHIE RICORSIVE - SQL SERVER 2008

ELENCO CLIENTI FORNITORI Patch1

Manuale operatore per l utilizzo dell utente di dominio

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

Z3 B1 Message Addon Invio Massivo Documenti via e Fax per SAP Business One

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Il Processo Civile Telematico e il Consulente Tecnico d Ufficio (C.T.U.) Uno schema operativo verso l invio telematico della C.T.U.

Транскрипт:

Laboratorio di reti II: Servlet Stefano Brocchi brocchi@dsi.unifi.it 16 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 1 / 34

Le servlet Una servlet è una classe Java eseguita lato server che genera il contenuto della risposta da inviare ad un client che ha effettuato una richiesta Sebbene il suo utilizzo possa coprire molti altri contesti, una servlet generalmente riceve delle richieste HTTP e risponde generando del codice HTML rappresentante una pagina web Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 2 / 34

Servlet HTTP Sul server deve essere presente un server web supportante servlet. Uno dei più noti è Tomcat (tomcat.apache.org/) Quando una richiesta giungerà al server, questo cercherà la servlet ad essa associata e questa genererà il codice HTML con cui rispondere Per ogni connessione, il server avvia un thread che richiamerà oppurtunamente i metodi della classe che si occupa della pagina Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 3 / 34

Servlet, CGI o PHP? Servlet e CGI L approccio Java ai webserver tramite servlet offre diversi vantaggi rispetto ai CGI I CGI (Common Gateway Interface) sono programmi scritti in altri linguaggi (es. in C) che vengono richiamati per generare pagine web in risposta a richieste HTTP La JVM resta sempre caricata ed una richiesta HTTP genera la creazione di un nuovo thread e non di un nuovo processo Questo permette un tempo di avvio ed una quantità di occupazione di risorse molto minore Essendo i vari client gestiti con diversi thread, è molto più facile realizzare interazioni che tra processi distinti Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 4 / 34

Servlet e PHP Le Servlet Servlet, CGI o PHP? L utilizzo di servlet ha dei vantaggi anche rispetto a PHP: Le servlet hanno un comportamento attivo: possono essere avviati dei thread che continuano a lavorare anche dopo che la connessione HTTP si è chiusa Grazie ai meccanismi di compilazione Java (strong-typing, gestione più rigorosa degli oggetti) è più facile creare codice robusto A disposizione tutte le librerire della JDK, e qualsiasi modulo Java può facilmente essere utilizzato dalle servlet Come rispetto ai CGI, le servlet permettono più facile interazione tra i vari client Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 5 / 34

Servlet e PHP Le Servlet Servlet, CGI o PHP? Rispetto a PHP l uso di servlet ha anche degli svantaggi: Minor supporto dei webserver: quasi tutti i servizi di hosting interpretano il PHP, mentre è più raro trovarne che supportino le Servlet Maggiore complessità di linguaggio: per chi non conosce approfonditamente i linguaggi di programmazione, probabilmente il PHP risulta di più facile apprendimento Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 6 / 34

Servlet e PHP Le Servlet Servlet, CGI o PHP? Altri svantaggi delle servlet, che tuttavia vanno a scomparire per applicazioni più complesse, sono i seguenti: Più peso computazionale per le piccole applicazioni: una JVM deve essere sempre attiva per il supporto di servlet occupando delle risorse del server. Per applicazioni più grandi tuttavia una migliore gestione delle risorse può compensare questo costo Necessario più impegno da parte del programmatore per scrivere il codice, a causa dello strong-typing. Questo viene compensato dalla robustezza del codice (e quindi dai minori costi di manutenzione ed estendibilità) per applicazioni più complesse Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 7 / 34

Tomcat: configurazione Applicazioni web di Tomcat Vediamo in breve come va configurato Tomcat per far funzionare correttamente una servlet Similmente ad Apache, in Tomcat è presente una cartella dove di default (webapps) vengono cercate le applicazioni web Se l URL richiesta non contiene un path, le richieste vengono ricercate di default nella cartella ROOT Ad esempio, se Tomcat è installato in C:\Tomcat per il sito www.miosito.com, la richiesta della homepage restituirà il file C:\Tomcat\webapps\ROOT\index.html Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 8 / 34

Tomcat: configurazione Configurazione di Tomcat: cartella WEB-INF Per ogni cartella rappresentante un applicazione web, Tomcat ricerca informazioni su questa applicazione nella sottocartella WEB-INF Per motivi di sicurezza, la cartella non viene pubblicata in rete In questa cartella deve essere presente un file web.xml che descrive l applicazione nel formato XML Per fare uso di servlet, la cartella deve inoltre contenere la sottocartella classes contenente i file class che realizzano le servlet Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 9 / 34

Tomcat: configurazione Configurazione di Tomcat: cartella web.xml Nel file di configurazione è necessario innanzitutto associare un nome alla servlet, come nella seguente sintassi <servlet> <servlet-name>servletname</servlet-name> <servlet-class>servletclass</servlet-class> </servlet>... e quindi associare il nome della servlet all URL alla quale questa deve essere associata <servlet-mapping> <servlet-name>servletname</servlet-name> <url-pattern>/servletpage.html</url-pattern> </servlet-mapping> In questo esempio, una richiesta al file servletpage.html verrà servita dalla classe ServletClass.class Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 10 / 34

Realizzare una servlet La classe HttpServlet Per realizzare una servlet HTTP, occorre estendere la classe HttpServlet nel pacchetto javax.servlet.http Questa classe, insieme ad altre che implementano funzionalità delle servlet in javax.servlet.*, non sono presenti nelle JDK ma vengono fornite solitamente con il server web In Tomcat, si trovano sotto Tomcat home directory/lib: includere questa cartella nel classpath Occorrerà quindi riscrivere i metodi di HttpServlet che vengono richiamati dal server davanti ai vari eventi Standard output ed error delle servlet vengono rediretti da Tomcat su opportuni file di log Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 11 / 34

Realizzare una servlet Gestione richieste HTTP Per realizzare una servlet, implementare il metodo doget(httpservletrequest request, HttpServletResponse response) che viene richiamato quando una richiesta GET viene fatta alla pagina Analogamente, i metodi dopost, doput, dotrace, dodelete e dooptions gestiscono gli altri tipi di richiesta HTTP L oggetto HttpServletRequest passato rappresenta la richiesta HTTP e può essere utilizzato per estrarne i vari campi L oggetto HttpServletResponse rappresenta la risposta che verrà inviata al client ed i suoi metodi permettono di impostarne il contenuto ed i vari header Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 12 / 34

Realizzare una servlet Metodi per la risposta HTTP Tramite il metodo setcontenttype(string contenttype) di HttpServletResponse si imposta il tipo di dato che verrà restituito; da utilizzare prima dell invio del contenuto della pagina Con il metodo getwriter() si ottiene il Writer sul quale si può scrivere il contenuto della risposta HTTP Alternativamente, si può usare il metodo getoutputstream() per ottenere lo stream in uscita Avere l OutputStream è necessario quando si inviano al client dati non testuali. Altrimenti l utilizzo di un Writer è solitamente più comodo Richiamare solo uno dei due metodi getwriter() e getoutputstream(). getwriter() deve inoltre essere richiamato dopo setcontenttype() per garantire una codifica corretta Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 13 / 34

Realizzare una servlet Esempio: Hello World Vediamo quindi una semplice servlet di esempio: public class HelloWorld extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) { try { response.setcontenttype("text/html;" + " charset=iso-8859-1"); PrintWriter out = response.getwriter(); out.println("<html><head><title>hello world" + "</title></head><body><center>"); out.println("<h1> Hello World! </h1>"); out.println("</center></body></html>"); } catch (IOException e) { e.printstacktrace(); } } } Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 14 / 34

Realizzare una servlet Esempio: invio di un file Vediamo invece un esempio dove non si ritorna codice HTML: private String file = "file.pdf"; public void doget(httpservletrequest request, HttpServletResponse response) throws IOException { response.setcontenttype("application/pdf"); OutputStream out = response.getoutputstream(); InputStream in = new BufferedInputStream( new FileInputStream(file)); int read = in.read(); while (read!= -1) { out.write(read); read = in.read(); } in.close(); } Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 15 / 34

Realizzare una servlet Invio e download di un file Il precedente pùo essere utile in vari casi, come nei seguenti esempi Per far puntare una stessa URL a diversi file da scaricare a seconda di vari fattori (come l ultima versione del documento) Per inviare un file non pubblicato in rete ad un client autorizzato Come in altri linguaggio, si può avviare un download lato client specificando gli opportuni header nella risposta HTTP response.setcontenttype("application/force-download"); response.setheader("content-disposition", "filename= file.pdf"); Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 16 / 34

Realizzare una servlet Impostare il codice di risposta Si possono utilizzare i metodi di HttpServletResponse per impostare il codice di risposta HTTP I metodi che manipolano l intestazione della risposta HTTP devono essere richiamati prima dell invio di qualsiasi contenuto Il metodo setstatus(int sc) assegna un determinato valore al codice di risposta E possibile utilizzare le costanti pubbliche della classe per questi codici, come in response.setstatus(httpservletresponse.sc OK); Il metodo seterror(int sc, String msg) permette di specificare un codice ed un messaggio di errore Infine il metodo sendredirect(string location) richiede la redirezione ad un altra pagina Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 17 / 34

Realizzare una servlet Gestire l intestazione della risposta Per manipolare le intestazioni HTTP della richiesta, si possono usare i metodi getheader(string name) e getheadernames() di HttpServletRequest Analogamente, gli header della risposta possono essere impostati tramite setheader(string name, String value) e addheader(string name, String value) nella classe HttpServletResponse I due metodi differiscono per il caso dove un header con il nome specificato esista già: nel caso di setheader il vecchio valore viene sostituito da quello nuovo mentre in addheader i due valori vengono concatenati Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 18 / 34

Realizzare una servlet Gestione intestazione: esempio Un semplice esempio di manipolazione di header String lang = request.getheader("accept-language"); if (lang!= null && lang.startswith("it")) { response.setheader("content-language", "it"); out.println("ciao Mondo!"); } else { response.setheader("content-language", "en"); out.println("hello World!"); } Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 19 / 34

Gestione parametri in ingresso Gestione parametri in ingresso I parametri inviati al server in GET o POST possono essere recuperati tramite il metodo getparameter(string name) di HttpServletRequest Il metodo richiede in ingresso il nome del parametro desiderato e ne restituisce il contenuto come una stringa Nel caso il parametro con il nome richiesto non sia stato inviato, il metodo restituisce null Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 20 / 34

Sessioni HTTP Sessioni HTTP In Java una sessione HTTP viene rappresentata tramite un oggetto HttpSession Tramite le sessioni si realizza la persistenza degli oggetti tra una richiesta HTTP e l altra Java tenta di gestire le sessioni tramite cookie. Se questo non è possibile si può alternativamente passare l ID di sessione tra i parametri della pagina Per questo scopo, il metodo encodeurl(string URL) di HttpServletResponse aggiunge il parametro con l id di sessione all URL passata nel caso in cui questo sia necessario Tramite il metodo getsession() in HttpServletRequest viene restituita la sessione corrente o ne viene creata una nuova se questa non esiste Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 21 / 34

Sessioni HTTP Gestione valori di sessione Vediamo i principali metodi disponibili negli oggetti HttpSession setattribute(string name, Object value) Permette di inserire un oggetto nella sessione corrente, associandolo ad un determinato nome getattribute(string name) Estrae un oggetto associato ad una determinata chiave dalla sessione getattributenames() Ottiene tutte le chiavi relative alla sessione corrente Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 22 / 34

Sessioni HTTP Esempio: conteggio delle visite Un semplice esempio che conteggia le visite di un utente alla pagina: HttpSession ses = request.getsession(); Object o = ses.getattribute("count"); if (o == null) { o = new Integer(0); } int count = ((Integer)o).intValue() + 1; out.println("le tue visite: " + count + "<br><br>"); ses.setattribute("count", new Integer(count)); Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 23 / 34

Sessioni HTTP HttpSession: altri metodi Altri metodi utili di HttpSession per la gestione della sessione getmaxinactiveinterval(), setmaxinactiveinterval(int time) Per ottenere o impostare il tempo di inattività dopo il quale la sessione scade getid() Restituisce l identificativo di sessione Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 24 / 34

Sessioni HTTP HttpSession: rimozione associazioni e distruzione Infine, i metodi per la rimozione di attributi della sessione o per la sua distruzione removeattribute(string name) Per rimuovere un attributo dalla sessione invalidate() Per distruggere la sessione corrente, scollegando tutti gli oggetti associati ed invalidandola Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 25 / 34

Coordinazione delle servlet Oggetto ServletContext Esiste inoltre in HttpSession un metodo getservletcontext() che restituisce un oggetto ServletContext rappresentante il contesto della servlet E possibile associare ed estrarre oggetti da una ServletContext tramite i suoi metodi setattribute(), getattribute() e getattributenames() in modo del tutto uguale a come avviene per oggetti HttpSession Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 26 / 34

Coordinazione delle servlet Uso di ServletContext per interazione tra servlet Un solo oggetto di tipo ServletContext viene istanziato per ogni applicazione web. Questo oggetto può essere utilizzato quindi per condividere facilmente dati tra più servlet Questo non funzionerà quando un sito è servito da più server; in questo caso è necessario utilizzare altre tecniche (es. un database) Un semplice meccanismo di coordinazione come questo, reso possibile dalla JVM che fa da supporto unico per tutte le servlet, è uno dei vantaggi offerti dai server Java Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 27 / 34

Coordinazione delle servlet Esempio: conteggio delle visite globali Un semplice esempio che conteggia le visite effettuate da tutti gli utenti ad una determinata pagina: HttpSession ses = request.getsession(); ServletContext sc = ses.getservletcontext(); Object o = sc.getattribute("count"); if (o == null) { o = new Integer(0); } int count = ((Integer)o).intValue() + 1; out.println("visite globali: " + count + "<br><br>"); sc.setattribute("count", new Integer(count)); Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 28 / 34

Coordinazione delle servlet Gestione della concorrenza Ricordarsi sempre che, anche se non esplicitamente visibile dal codice, il server gestisce le richieste in modo concorrenziale Nel modificare risorse condivise come una ServletContext quindi tenere sempre in considerazione le problematiche di sincronizzazione Particolare attenzione va utilizzata per i problemi di deadlock, in quanto si rischia di bloccare l accesso a delle pagine del sito Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 29 / 34

Coordinazione delle servlet Gestione della concorrenza: esempio Nell esempio del conteggio delle visite qualche errore di conteggio potrebbe anche essere trascurabile, tuttavia un codice più preciso potrebbe essere strutturato come il seguente: ServletContext sc = ses.getservletcontext(); synchronized (sc) { Object o = sc.getattribute("count");... sc.setattribute("count", new Integer(count)); } Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 30 / 34

Upload di file Upload di file Per quanto riguarda l upload di file, nel pacchetto javax.servlet non viene fornito uno strumento che gestisca automaticamente questa operazione Si può realizzare una servlet per l upload ottenendo il file dallo stream in ingresso che legge dal corpo della richiesta HTTP. L oggetto relativo si può ottenere tramite il metodo getinputstream() In altri casi, questo stream è solitamente inutile perchè le richieste HTTP generalmente non hanno corpo ma solo un intestazione Altrimenti, sono a disposizione in rete numerose librerie in Java che permettono l automatizzazione dell upload di file Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 31 / 34

Esercizio Le Servlet Esercizio Realizzare tramite servlet un sistema di personalizzazione delle pagine web del forum Nel box creato appositamente, permettere ad un utente di specificare un contenuto a sua scelta formato da: Semplice testo (utilizzabile ad esempio per dei promemoria) Collegamenti a pagine web Immagini esterne al sito Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 32 / 34

Esercizio Le Servlet Esercizio Per realizzare queste funzionalità è necessario effettuare i seguenti passi Nel codice PHP, caricare diversi frammenti di HTML da inserire all interno del box a seconda dell utente attuale (es. marco -> userboxes/marco.html) Realizzare una pagina di login al servizio di personalizzazione tramite servlet Dopo l accesso, presentare all utente un form che permetta di inserire una serie di link, immagini o stringhe di testo Al momento della sottomissione, creare l apposito frammento di HTML ed inserirlo nel percorso opportuno Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 33 / 34

Esercizio Esercizio Come funzionalità aggiuntiva, dare la possibilità di immettere i vari oggetti anche a più riprese e non tutti tramite un unico form In questo caso, sarà necessario propagare i dati già inseriti dall utente tramite oggetti inseriti in una sessione Inoltre sarebbe interessante che durante l inserimento dei vari oggetti da parte dell utente venga visualizzata l anteprima del box personalizzato Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 34 / 34