Gestire le sessioni con le Servlet



Похожие документы
Tener traccia del client

Architetture Web: un ripasso

Laboratorio di Sistemi Prototipo autenticazione utente Jsp [Java]

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1

Svantaggi delle servlet

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

Programmazione server-side: Java Servlet

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

Obiettivo dell esercitazione

PHP e Structured Query Language

Tomcat struttura delle directory

Laboratorio di sistemi Prima Web Application JSP [Java]

Laboratorio di reti II: Servlet

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:

Architetture Web parte 2

Sessioni Applicative in Http. Tito Flagella

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

Note pratiche sullo sviluppo di servlet (I)

Introduzione alla programmazione Http lato server in Java

PSNET UC RUPAR PIEMONTE MANUALE OPERATIVO

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

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

Grafico della parabola

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

Cup HiWeb. Integrazione dei servizi del CUP Marche in applicativi di terze parti

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

Realizzazione di una classe con un associazione

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

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

VADEMECUM PER LA GESTIONE DELLE PRATICHE ON LINE VADEMECUM PER LA GESTIONE DELLE PRATICHE ON LINE VADEMECUM PER LA GESTIONE DELLE PRATICHE ON LINE

Area riservata. Manuale cliente v1.0

Architetture Web I Server Web e gli Standard della Comunicazione

PROGETTO FABBISOGNI STANDARD GUIDA DI ACCESSO E COMPILAZIONE DEL QUESTIONARIO.

BRC CAR SERVICE CRM Manuale operativo

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione

Laboratorio di Basi di Dati

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

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

Manuale Utente. Programma di Sviluppo Rurale Compilazione del Business Plan ridotto. Versione A

Manuale Richiesta di Accesso

SAF45 -Sostegno Alle Famiglie

Sistema Informativo di Teleraccolta EMITTENTI

Guida - acquistare online sul sito

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Guida all Applicazione. Tesseramento

SARA DHANA. RELAZIONE NEGOZIO A.BASSI a.s.2013/2014

Servlet API. Programmazione in Ambienti Distribuiti A.A

Associazione Culturale Il Cerchio Sciamanico

Esercizio. Fabio Proietti (c) 2012 Licenza:

Guida per la creazione e la gestione di un profilo Google Scholar Citations

Portale tirocini. Manuale utente Per la gestione del Progetto Formativo

AA Esame di Tecnologie Informatiche per il Web - Prof. Piero Fraternali Prova straordinaria del 19 marzo 2004 Esercizio 1 (6 punti)

Sistema di gestione Certificato MANUALE PER L'UTENTE

WEB-RECALL: GESTIONE DEI TICKETS DI ASSISTENZA

Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente

Non vedo l ora Realizzazione di un sistema per la gestione dell orario scolastico

Procedura rinnovo certificati

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

2015 PERIODO D IMPOSTA

RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE

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

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

Sistema per il monitoraggio della Spesa Sanitaria

Accreditamento Soggetti Formatori in materia di Sicurezza sul Lavoro

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Relazione Luca Raj. Relazione lavoro palestra. Indice:

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

Manuale Utente Amministrazione Trasparente GA

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

SWIM v2 Design Document

Manuale Operativo Beneficiario Sfinge2020

FtpZone Guida all uso

Manuale Front-Office Servizio ConservazioneNoProblem

ABBINATORE Manuale Utente

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione

Транскрипт:

PROGETTO Gestire le sessioni con le Servlet Con il termine sessione si intende un insieme di attività correlate, con una o alcune di queste che sono preliminari ad altre. Si pensi, per esempio, a un qualsiasi servizio di accesso a informazioni che richieda preliminarmente l identificazione dell utente. Riconosciuto e abilitato l utente ad accedere al servizio esso potrà utilizzare gli script per l accesso ai dati sino a che non pone termine alle attività della sessione. Una situazione ricorrente in cui è necessario l utilizzo delle sessioni è la gestione dei carrelli della spesa virtuali. Tutti i negozi online dispongono di un carrello in cui l acquirente può aggiungere gli oggetti mentre naviga tra le pagine del sito. L associazione tra gli oggetti, scelti da pagine diverse, e l unico acquirente è gestita da una sessione creata sul server. Tecnicamente la sessione viene identificata con un codice chiamato session ID, generato in modo casuale dal server e associato al browser dell utente che si è collegato. Il session ID viene successivamente scambiato tra client e server, solitamente tramite i cookies, con lo scopo di identificare l utente e mantenere le sue azioni collegate tra loro. In Java le sessioni sono rappresentate dalla classe HttpSession. Ad ogni richiesta da parte di un utente, si può estrarre la sessione con il metodo getsession. Se l utente si collega per la prima volta, il metodo getsession crea una nuova sessione, altrimenti associa la sessione precedentemente creata. Il comando per recuperare l informazione sulla sessione, da usare all interno dei metodi doget o dopost, è il seguente: Alla sessione si possono collegare degli oggetti che possono essere salvati e successivamente letti con i seguenti due metodi: setattribute(nome, oggetto) getattribute(nome). Il parametro nome è una stringa utilizzata per indicare l oggetto memorizzato. Questo oggetto viene aggiunto alla sessione come secondo parametro del metodo setattribute e viene restituito come valore di ritorno dal metodo getattribute. Se si cerca di leggere dalla sessione un attributo non presente, il metodo getattribute restituisce un valore null. Quando si vuole interrompere l utilizzo di una sessione si deve eseguire il metodo invalidate, che rimuove tutti gli oggetti precedentemente collegati e annulla i riferimenti al session ID. Memorizzare nella sessione i dati dell utente e gli articoli scelti. L applicazione Web si compone due pagine HTML, per la raccolta dei dati, e quattro servlet, per l elaborazione e la gestione della sessione. Le pagine HTML sono: - Login.htm: contiene il modulo per l inserimento del nome utente, - Articoli.htm: contiene il modulo per la scelta di un articolo. 1

Le servlet sono: - Login.java: aggiunge alla sessione il nome dell utente, - Articolo.java: verifica se l utente si è registrato e, in caso positivo, memorizza nella sessione l articolo scelto, - Carrello.java: visualizza l articolo memorizzato nella sessione, - Logout.java: interrompe l utilizzo della sessione. Il nome dell utente viene associato all attributo login e viene salvato nella sessione con il comando: session.setattribute("login", strlogin); L attributo articolo memorizza la scelta fatta dall utente. Se il valore restituito dal metodo getattribute è null, significa che l utente non ha fatto una scelta e il carrello è vuoto. Le righe da inserire nel file web.xml sono le seguenti: <servlet> <servlet-name>verificalogin</servlet-name> <servlet-class>login</servlet-class> </servlet> <servlet-mapping> <servlet-name>verificalogin</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet> <servlet-name>scegliarticolo</servlet-name> <servlet-class>articolo</servlet-class> </servlet> <servlet-mapping> <servlet-name>scegliarticolo</servlet-name> <url-pattern>/articolo</url-pattern> </servlet-mapping> <servlet> <servlet-name>carrellospesa</servlet-name> <servlet-class>carrello</servlet-class> </servlet> <servlet-mapping> <servlet-name>carrellospesa</servlet-name> <url-pattern>/carrello</url-pattern> </servlet-mapping> <servlet> <servlet-name>logout</servlet-name> <servlet-class>logout</servlet-class> </servlet> <servlet-mapping> <servlet-name>logout</servlet-name> <url-pattern>/logout</url-pattern> </servlet-mapping> Il codice completo delle pagine HTML e delle servlet è riportato di seguito. 2

PAGINA WEB (Login.htm) <HTML> <HEAD> <TITLE>Login</TITLE> </HEAD> <BODY> <H3>Login</H3> <P> <FORM ACTION="Login" METHOD="post"> Nome: <INPUT TYPE="text" SIZE="10" NAME="login"><BR> <INPUT TYPE="submit" VALUE="Invia"> </FORM> </BODY> </HTML> SERVLET (Login.java) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Login extends HttpServlet public void dopost(httpservletrequest richiesta, HttpServletResponse risposta) throws IOException, ServletException String strlogin = richiesta.getparameter("login"); 3

// Aggiunge il nome dell'utente alla sessione session.setattribute("login", strlogin); out.println("<title>menu</title>"); out.println("<h3>benvenuto " + strlogin + "</H3>"); out.println("<p>menu"); out.println("<p><a HREF=Articoli.htm>Scegli articolo</a>"); out.println("<p><a HREF=Carrello>Carrello</A>"); out.println("<p><a HREF=Logout>Logout</A>"); PAGINA WEB (Articoli.htm) <HTML> <HEAD> <TITLE>Articoli</TITLE> </HEAD> <BODY> <H3>Elenco articoli</h3> <P> <FORM ACTION="Articolo" METHOD="post"> 4

Scegli un articolo: <select name="art"> <option value="jeans">jeans</option> <option value="maglietta">maglietta</option> <option value="occhiali">occhiali</option> <option value="scarpe">scarpe</option> </select> <INPUT TYPE="submit" VALUE="Acquista"> </FORM> </BODY> </HTML> SERVLET (Articolo.java) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Articolo extends HttpServlet public void dopost(httpservletrequest richiesta, HttpServletResponse risposta) throws IOException, ServletException String strlogin = (String) session.getattribute("login"); // Verifica se l'utente si è registrato if (strlogin == null) 5

out.println("<title>utente non registrato</title>"); out.println("per procedere devi fare login."); out.println("<p><a HREF=Login.htm>Login</A>"); return; // Aggiunge l'articolo alla sessione String strarticolo = richiesta.getparameter("art"); session.setattribute("articolo", strarticolo); out.println("<title>menu</title>"); out.println("<h3>benvenuto " + strlogin + "</H3>"); out.println("<p>menu"); out.println("<p><a HREF=Articoli.htm>Scegli articolo</a>"); out.println("<p><a HREF=Carrello>Carrello</A>"); out.println("<p><a HREF=Logout>Logout</A>"); SERVLET (Carrello.java) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Carrello extends HttpServlet public void doget(httpservletrequest richiesta, HttpServletResponse risposta) throws IOException, ServletException 6

String strlogin = (String) session.getattribute("login"); String strarticolo = (String) session.getattribute("articolo"); // Verifica se l'utente si è registrato if (strlogin == null) out.println("<title>utente non registrato</title>"); out.println("per procedere devi fare login."); out.println("<p><a HREF=Login.htm>Login</A>"); return; out.println("<title>carrello</title>"); out.println("<h3>benvenuto " + strlogin + "</H3>"); out.println("<u>elenco articoli nel carrello</u><br>"); // Mostra l'articolo scelto if (strarticolo == null) out.println("nessun articolo selezionato."); else out.println("articolo: " + strarticolo); out.println("<p><a HREF=Articoli.htm>Scegli articolo</a>"); out.println("<p><a HREF=Logout>Logout</A>"); 7

SERVLET (Logout.java) import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Logout extends HttpServlet public void doget(httpservletrequest richiesta, HttpServletResponse risposta) throws IOException, ServletException session.invalidate(); out.println("<title>logout</title>"); out.println("<h3>logout eseguito</h3>"); out.println("<p><a HREF=Login.htm>Login</A>"); 8