2009-09-10 1 views
7

Kann jemand wissen, wie man das Sitzungszeitlimit auf mehr als 30 Minuten setzt? diese beiden Methoden werden nicht funktionieren (standardmäßig 30 Minuten).Wie stelle ich das Sitzungszeitlimit auf mehr als 30 Minuten ein?

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

und

session.setMaxInactiveInterval(600); 

Dank.

+0

Welchen Anwendungsserver verwenden Sie? Tomcat, JBoss usw.? – Kosi2801

+0

Ich benutze Tomcat und möchte auch wissen, wie man es für Glassfish macht – Switch

+4

Also, keine richtige Antwort? – Alfabravo

Antwort

0

Das Festlegen der Zeitüberschreitung in der web.xml ist die richtige Methode zum Festlegen des Zeitlimits.

+0

Ja, ich weiß das, aber es lässt mich nicht Session-Timeout größer als 30 Minuten setzen. – Switch

+0

Was meinst du "es wird dich nicht lassen"? Wirft es und Ausnahme? Verhindern, dass der Server gestartet wird? Popup ein Fehlerdialog? Oder scheint nur die eingestellte Zeitüberschreitung nicht zu beachten? den Timeout im Deployment Descriptor einstellen können benötigen Sie den Web-App und/oder den Server für den neuen Wert neu zu starten, zu übernehmen. Ich sehe nicht, was sich auf den Aufruf von setMaxInactiveInterval während einer Sitzung auswirken würde ... vielleicht setzt etwas anderes setMaxInactiveInterval oder die Session ungültig? – Nate

+0

@rocky - die gleiche Frage wie Nate. Was meinst du mit "lass mich nicht"? –

0

wenn Sie erlaubt es tun global dann können Sie die Sitzungszeit angegeben in

TOMCAT_HOME/conf/web.xml wie unten

<!-- ==================== 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

Ich denke, dass die Standard für alle Web-Anwendungen setzt, die einen Wert nicht liefern - sowohl ein Standard für eine bestimmte Web-App Einstellung darin Deployment Descriptor ist oder setMaxInactiveInterval sollte dies außer Kraft setzen auf eine bestimmte Sitzung aufrufen. – Nate

6

Einstellung Session-Timeout durch den Deployment Descriptor funktionieren sollte - Legt das Standard-Sitzungszeitlimit für die Web-App fest. Durch Aufrufen von session.setMaxInactiveInterval() wird das Zeitlimit für die jeweilige aufgerufene Sitzung festgelegt und die Standardeinstellung überschrieben. Beachten Sie auch die Unterschiede zwischen den Einheiten - die Deployment-Deskriptorversion verwendet Minuten und session.setMaxInactiveInterval() Sekunden.

So

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

stellt das Standard-Session-Timeout auf 60 Minuten.

Und

session.setMaxInactiveInterval(600); 

setzt die Session-Timeout bis 600 Sekunden - 10 Minuten - für die spezifische Sitzung auf genannt wird.

Dies sollte in Tomcat oder Glassfish oder einem anderen Java-Web-Server funktionieren - es ist Teil der Spezifikation.

+1

Es bleibt wirklich mysteriös, warum Framework-Designer sich weigern, den Nutzen von Einheiten zu verstehen. Ein schöner Rahmen für die Arbeit mit Einheiten ist UCUM (http://unitofmeasure.org). – whaefelinger

1

dies geben Sie Ihre Sitzung alles zu halten, bis der Browser

session.setMaxinactiveinterval(-1); 

geschlossen ist und dies es für 1 Tag

session.setMaxInactiveInterval (60 * 60 * 24) eingestellt ist;

6

Wenn Sie wollen nie -1 eine Sitzung Verwendung 0 oder negativen Wert verfallen.

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

oder erwähnen 1440 es gibt 1440 minutes [24hours * 60 minutes]

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

Session wird nach 24hours auslaufen werden.