Home
Le Sessioni (terza parte)

10 Ottobre 2002

Le Sessioni (terza parte)

di

Una sessione è associata ad una specifica istanza del browser, vediamo come due istanze differenti accedano ad oggetti di sessione separati

Tanto per cominciare un plauso a Donato (il timido) e Federica (l’estroversa), entrambi di Bentivoglio (BO). La soluzione, o meglio la spiegazione, che mi è stata fornita è corretta.

Vi ricordo che la domanda che vi avevo posto era la seguente:

“Chi mi spiega come agisce questa funzione di cancellazione?”

Il contesto era la funzione di cancellazione inserita all’interno dell’esempio proposto.

La spiegazione è data da questo frammento di codice:

String elimina = request.getParameter(“elimina”);
if (elimina != null)
{
session.removeAttribute(elimina);
}

/

All’interno della pagina JSP viene testata la presenza del parametro con chiave “elimina”, se questo viene trovato significa che l’utente ha appena premuto il pulsante di cancellazione di quella variabile di sessione, in questo caso alla chiave “elimina” è associato come valore il nome dell’attributo da eliminare.

A questo punto è semplice utilizzare il metodo session.removeAttribute(elimina);

per ottenere la cancellazione dell’oggetto dalla sessione.

La spiegazione di Donato e Federica è un po’ più complessa e riguarda tutto l’esempio, ma il succo è questo.

Passiamo ora ad analizzare la relazione che intercorre tra la sessione ed il browser che utilizza l’applicazione. Per far questo utilizziamo l’esempio dell’articolo precedente.

Dopo aver lanciato Tomcat aprite una sessione del browser e subito dopo utilizzate la sequenza CTRL-N per aprire una seconda finestra.

Lanciate in una finestra l’applicazione che abbiamo costruito la settimana scorsa ed inserite qualche variabile di sessione. Adesso posizionatevi sull’altra finestra, lanciate lo stesso URL ed ecco quello che otterrete:

Le due finestre del browser condividono la stessa sessione.

In realtà quello che accade è che le due finestre del browser appartengono allo stesso processo sulla macchina cliente e quindi condividono il cookie che sincronizza la sessione con il server.

Facciamo un esperimento diverso, chiudete una delle due finestre e lanciate una nuova istanza del browser utilizzando il menù Start oppure l’icona sul desktop.

All’interno di questa nuova finestra lanciate l’URL dell’applicazione ed ecco quello che otterrete:

In questo caso le due finestre del browser non condividono la sessione sul server e si presentano ad esso come due client distinti.

Questo comportamento si verifica subito andando a guardare la stringa che identifica l’ID di sessione, nel primo caso si tratta della stessa stringa, nel secondo caso di due stringhe differenti.

È molto importante tenere presente quanto detto durante lo sviluppo di applicazioni web nelle quali la sessione gioca un ruolo importante per il riconoscimento e la profilatura dell’utente.

L'autore

  • Massimo Canducci
    Massimo Canducci vanta oltre 25 anni di esperienza nel campo dell'innovazione e della digital transformation ed è Chief Innovation Officer per Engineering Ingegneria Informatica. È docente alla Singularity University, l'Università di Torino e l'Università di Pavia, e insegna in master MBA.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.