Gestione della sessione in Java

La gestione della sessione è una parte fondamentale nello sviluppo di applicazioni web in Java. Permette di mantenere lo stato tra più richieste HTTP dallo stesso client, dato che HTTP è un protocollo stateless per natura.

Cos'è una sessione?

Una sessione rappresenta una serie di interazioni tra un client e un server in un intervallo di tempo. In Java, le sessioni sono gestite attraverso l'interfaccia HttpSession, fornita dalle specifiche Servlet.

Creazione e recupero della sessione

Per creare o recuperare una sessione esistente in un servlet, si utilizza il metodo request.getSession().


HttpSession session = request.getSession();
  

Per evitare la creazione automatica di una nuova sessione, è possibile usare:


HttpSession session = request.getSession(false);
if (session == null) {
    // Nessuna sessione esistente
}
  

Salvataggio di attributi nella sessione

Una volta ottenuta una sessione, è possibile salvarvi dati usando i metodi setAttribute e getAttribute:


session.setAttribute("username", "mario");
String username = (String) session.getAttribute("username");
  

Scadenza della sessione

Ogni sessione ha un timeout inattività predefinito. Può essere modificato con:


session.setMaxInactiveInterval(1800); // 30 minuti
  

Per invalidare manualmente una sessione:


session.invalidate();
  

Considerazioni di sicurezza

  • Evita di salvare informazioni sensibili in chiaro nella sessione.
  • Utilizza HTTPS per proteggere l'ID di sessione.
  • Considera il rigenerare l'ID di sessione dopo l'autenticazione.

Conclusione

La gestione della sessione in Java è semplice ma potente. Una corretta comprensione di HttpSession è essenziale per creare applicazioni web sicure e scalabili.

Torna su