Home » Programmazione » Java » Gestire le sessioni con Java

Gestire le sessioni con Java

In molte applicazioni Web mantenere le informazioni di un utente lungo tutto il tempo della sua visita al sito è una prassi comune. Java tramite le JSP (Java Server Page)  mette a disposizione l’ oggetto implicito Session, che ci aiuta a gestire tali informazioni a livello di sessione. La sessione generata è relativa ad un singolo utente, e viene inizializzata al suo ingresso nell’applicazione e distrutta automaticamente dal server all’ uscita della stessa, oppure con la chiusura della finestra del browser.
I dati di sessione sono riferiti e riservati ad un utente (univocamente) al quale è associata un’istanza dell’oggetto Session, ogni singolo oggetto non può essere utilizzato da sessioni di altri utenti, così da preservarne l’univocità.

Java esporta diversi funzionalità a sostegno delle sessioni, vediamo qualche esempio.

Memorizzazione dei dati nell’oggetto Session
Tale azione avviene registrando i dati all’interno dell’oggetto Session, per far ciò si utilizza il metodo setAttribute specificando il nome dell’oggetto da memorizzare e una sua istanza.

Esempio: vogliamo memorizzare il nome utente all’interno di una sessione:

[sourcecode language=’java’]session.setAttribute(“nomeUtente”, nome)[/sourcecode]

Leggere il contenuto di una variabile di sessione
La lettura di una variabile di sessione memorizzata è resa possibile grazie al metodo getAttribute, che riceve in input il nome della variabile di sessione con la quale si è memorizzato il dato che ci interessa reperire, e restituisce in output il suo valore, oppure null nel caso la variabile non sia inizializzata.

Esempio: vogliamo reperire il nome dell’utente precedentemente memorizzato :

[sourcecode language=’java’] Session.getAttribute(“nomeUtente”); [/sourcecode]

Altri metodi utili sono:

getCreationTime() : restituisce il tempo di quando è stata creata la sessione;
getId() : restituisce una stringa contenente il sessionID (univoco generato dal server);
removeAttribute(nome_attributo) : rimuove l’oggetto dal nome specificato dalla sessione corrente;

Lascia un commento