Java-Sitzungszeitlimit

1. Übersicht

Dieses Tutorial zeigt, wie Sie das Sitzungszeitlimit in einer Servlet-basierten Webanwendung einrichten .

2. Globales Sitzungszeitlimit in der Datei web.xml

Das Zeitlimit aller HTTP-Sitzungen kann in der Datei web.xml der Webanwendung konfiguriert werden :

  ...  10  

Beachten Sie, dass der Wert des Zeitlimits in Minuten und nicht in Sekunden festgelegt wird.

Ein interessanter Nebeneffekt ist, dass in einer Servlet 3.0-Umgebung, in der Anmerkungen anstelle des XML-Bereitstellungsdeskriptors verwendet werden können, das globale Sitzungszeitlimit nicht programmgesteuert festgelegt werden kann . Bei der programmgesteuerten Konfiguration für das Sitzungszeitlimit ist ein offenes Problem in der Servlet-Spezifikation JIRA aufgetreten, das Problem wurde jedoch noch nicht geplant.

3. Programmatisches Timeout pro Einzelsitzung

Das Zeitlimit der aktuellen Sitzung kann nur programmgesteuert über die API von javax.servlet.http.HttpSession angegeben werden :

HttpSession session = request.getSession(); session.setMaxInactiveInterval(10*60);

Im Gegensatz zum Element, das einen Wert in Minuten hatte, akzeptiert die Methode setMaxInactiveInterval einen Wert in Sekunden .

4. Tomcat-Sitzungszeitlimit

Alle Tomcat-Server bieten eine Standarddatei web.xml , die global für den gesamten Webserver konfiguriert werden kann. Diese befindet sich in:

$tomcat_home/conf/web.xml

Dieser Standardbereitstellungsdeskriptor konfiguriert a mit einem Wert von 30 Minuten.

Einzelne bereitgestellte Anwendungen, die ihre eigenen Zeitlimitwerte in ihren eigenen web.xml- Deskriptoren angeben , haben Vorrang vor dieser globalen web.xml- Konfiguration und überschreiben diese .

Beachten Sie, dass dies auch in Jetty möglich ist: Die Datei befindet sich in:

$jetty_home/etc/webdefault.xml

5. Schlussfolgerung

In diesem Lernprogramm wurden die praktischen Aspekte zum Konfigurieren des Zeitlimits für die HTTP-Sitzung in einer Servlet-Java-Anwendung erläutert . Wir haben auch gezeigt, wie dies auf Webserverebene sowohl in Tomcat als auch in Jetty eingestellt werden kann.

Die Implementierung dieser Beispiele finden Sie im Github-Projekt - dies ist ein Eclipse-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein.

Wenn das Projekt lokal ausgeführt wird, kann auf die Homepage-HTML zugegriffen werden unter: