Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    sessionDestroyed non invocata alla chiusura del browser

    Ciao a tutti,
    nella mia applicazione ho bisogno di sapere quando viene chiuso il browser e quindi quando una sessione viene chiusa.
    Per far ciò implemento l'interfaccia HttpSessionListener.
    Il punto è che il metodo sessionCreated viene invocato correttamente ma il metodo sessionDestroyed non viene invocato.
    Come mai?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: sessionDestroyed non invocata alla chiusura del browser

    Originariamente inviato da Ottavioinfo
    Il punto è che il metodo sessionCreated viene invocato correttamente ma il metodo sessionDestroyed non viene invocato.
    Come mai?
    Il server di per sé non può "sapere" che l'utente ha chiuso la finestra (o gli si è spento il PC, o si è staccato il cavo di rete .....).

    HTTP è stateless, fai una request, ricevi una response. Dopodiché il server non può sapere più nulla finché non viene fatta un'altra request.

    Le soluzioni? Aspettare il timeout della sessione, a quel punto sessionDestroyed lo ottieni. Ma dipende da cosa devi fare di preciso e il perché, potrebbe non andarti bene.
    Oppure smanettare lato client con funzioni Javascript per ricevere un evento di chiusura e di conseguenza fare una piccola request speciale al server per dire "ehi, ho chiuso". Ma su questa soluzione ci sono di certo questioni di compatibilità tra i browser da valutare e su cui indagare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.