Qual è il timeout di sessione predefinito per un sito Web Java EE?
Domanda
Se non specifico quanto segue nel mio file web.xml:
<session-config>
<session-timeout>10</session-timeout>
</session-config>
Quale sarà il mio timeout di sessione predefinito? (Sto eseguendo Tomcat 6.0)
Soluzione
Se stai usando Tomcat, sono 30 minuti. Puoi leggere di più a riguardo qui .
Altri suggerimenti
Puoi anche impostare questo nel codice, per una sessione specifica usando HttpSession
setMaxInactiveInterval API:
Specifica l'ora, in secondi, tra le richieste del cliente prima del il contenitore servlet invaliderà questo sessione. Un tempo negativo indica il la sessione non dovrebbe mai scadere.
Ne parlo nel caso in cui vengano visualizzati timeout che non sono 30 minuti, ma non è stato specificato un altro valore (ad esempio, un altro sviluppatore del progetto ha utilizzato questa API).
Un altro elemento da tenere presente è che questo timeout potrebbe non attivarsi nel momento esatto in cui la sessione può scadere. Il server Java EE potrebbe disporre di un thread di polling che verifica le sessioni scadute ogni minuto. Non ho un riferimento per questo, ma ho visto questo comportamento nell'era di WebSphere 5.1.
Sono sicuro che dipende dal tuo contenitore. Tomcat è di 30 minuti.
Timeout della sessione che possiamo specificare per quel particolare contesto nel file web.xml come indicato sotto la voce 60
Il timeout della sessione predefinita è di 30 minuti