2009-09-10 4 views
7

Dose qualcuno sa come impostare il timeout della sessione superiore a 30 minuti? questi due metodi non funzioneranno (predefinito per 30 minuti).Come impostare il timeout della sessione superiore a 30 minuti

<session-config> 
<session-timeout>60</session-timeout> 
</session-config> 

e

session.setMaxInactiveInterval(600); 

Grazie.

+0

Quale server applicazioni stai utilizzando? Tomcat, JBoss, ecc.? – Kosi2801

+0

Sto usando Tomcat e voglio anche sapere come farlo per Glassfish – Switch

+4

Quindi, nessuna risposta corretta? – Alfabravo

risposta

0

L'impostazione del timeout nel web.xml è il modo corretto per impostare il timeout.

+0

Sì, lo so ma non mi consente di impostare il timeout della sessione superiore a 30 minuti. – Switch

+0

Cosa intendi per "non ti lascerà"? Getta ed eccezione? Impedire l'avvio del server? Fai apparire una finestra di errore? O sembra non onorare il timeout impostato? L'impostazione del timeout nel descrittore di distribuzione potrebbe richiedere il riavvio dell'app Web e/o del server affinché il nuovo valore abbia effetto. Non vedo cosa potrebbe avere effetto nel chiamare setMaxInactiveInterval su una sessione ... forse qualcos'altro sta impostando setMaxInactiveInterval o invalidando la sessione? – Nate

+0

@Rocky - La stessa domanda di Nate. Cosa intendi con "non mi lascerai"? –

0

se si è permesso di farlo a livello globale è possibile impostare il tempo della sessione in

TOMCAT_HOME/conf/web.xml, come di seguito

<!-- ==================== Default Session Configuration ================= --> 
    <!-- You can set the default session timeout (in minutes) for all newly --> 
    <!-- created sessions by modifying the value below.      --> 


<session-config> 
     <session-timeout>60</session-timeout> 
</session-config> 
+1

Penso che sia l'impostazione predefinita per tutte le app Web che non forniscono un valore: sia l'impostazione predefinita di un'app Web specifica nel descrittore di distribuzione sia la chiamata a setMaxInactiveInterval in una sessione specifica dovrebbero sostituirla. – Nate

6

Impostazione timeout di sessione attraverso il descrittore di deployment dovrebbe funzionare - Imposta il timeout della sessione predefinito per l'app Web. Chiamando session.setMaxInactiveInterval() si imposta il timeout per la sessione specifica su cui è chiamato, e sovrascrive il valore predefinito. Si noti anche la differenza di unità: la versione del descrittore di distribuzione utilizza i minuti e session.setMaxInactiveInterval() utilizza i secondi.

Così

<session-config> 
    <session-timeout>60</session-timeout> 
</session-config> 

imposta il timeout della sessione di default a 60 minuti.

E

session.setMaxInactiveInterval(600); 

imposta il timeout di sessione a 600 secondi - 10 minuti - per la sessione specifica è chiamato su.

Questo dovrebbe funzionare in Tomcat o Glassfish o in qualsiasi altro server Web Java - fa parte delle specifiche.

+1

Rimane davvero misterioso il motivo per cui i progettisti di strutture si rifiutano di comprendere il vantaggio dell'uso delle unità. Un buon framework per lavorare con le unità è UCUM (http://unitsofmeasure.org). – whaefelinger

1

questo imposterà la sessione di tenere tutto fino alla chiusura del browser

session.setMaxinactiveinterval(-1); 

e questo dovrebbe impostarlo per 1 giorno

session.setMaxInactiveInterval (60 * 60 * 24);

6

Se si desidera non scadere mai un uso sessione di 0 o valore negativo -1.

<session-config> 
    <session-timeout>0</session-timeout> 
</session-config> 

o parlare 1440 esso indica 1440 minutes [24hours * 60 minutes]

<session-config> 
    <session-timeout>1440</session-timeout><!-- 24hours --> 
</session-config> 

sessione sarà scadono dopo 24hours.