Zeitlimit der Tomcat-Sitzung web.xml

8

Dies ist meine web.xml-Datei, sie befindet sich in WEB-INF/lib . Es gibt den Sitzungszeitlimit für 1 Minute an, jedoch wird der Benutzer nach 1 Minute Aktivität nicht ausgeloggt.

Web.xml :

%Vor%

Ich habe diese Zeile session.getMaxInactiveInterval() in meiner jsp-Datei verwendet und sie hat 1800 (30 Minuten) ausgegeben. Warum wird der Standardwert auf 30 gesetzt, anstatt die in meiner Datei web.xml angegebene Zeit zu verwenden?

BEARBEITEN:

Ich habe Code auf meiner JSP-Seite, die nach dem Sitzungsattribut sucht, und falls es existiert, wird der Benutzer nach einer Minute auf die Anmeldeseite umgeleitet, selbst bei einer Seitenaktualisierung wird der Benutzer nicht umgeleitet.

%Vor%

Bearbeiten Sie den vollständigen Code (Login.java):

%Vor%

home.jsp

%Vor%     
Colin747 19.11.2012, 21:59
quelle

4 Antworten

13

Der web.xml sollte direkt in WEB-INF sein, nicht in WEB-INF / lib .

    
Koshinae 20.03.2013, 12:21
quelle
19

Session-Timeout-Hierarchie:

  • TOMCAT_HOME / conf / web.xml
  • Webanwendung / webapp / WEB-INF / web.xml
  • Festes Codieren des Sitzungszeitlimits in Java: HttpSession.setMaxInactiveInterval (int)

Die Reihenfolge der Sitzungs-Timeout-Konfiguration:

HttpSession.setMaxInactiveInterval(int) > $WebApplication/webapp/WEB-INF/web.xml & gt; $ TOMCAT_HOME / conf / web.xml

Jeder nachfolgende Eintrag überschreibt die obige Konfiguration.

Beste Grüße.

    
Ahmed MANSOUR 19.12.2014 14:40
quelle
7
  1. Eine Minute ist eine lächerlich niedrige Sitzungszeitüberschreitung. Es sollte mehrere Stunden sein.

  2. Das Zeitlimit tritt nach dieser viel Inaktivität auf, nicht so viel Aktivität.

  3. Der korrekte Test ist request.getSession(false) == null oder request.getSession(true).isNew() .

EJP 19.11.2012 22:35
quelle
1

Wenn Ihr Ojektiv den Sitzungsablauf testen soll, müssen Sie nicht warten. Ihr Anwendungsserver bietet möglicherweise eine Möglichkeit zum manuellen Ablauf von Sitzungen. In Tomcat zum Beispiel können Sie dies über die Manager-Anwendung tun. Neben jeder Anwendung gibt es eine Schaltfläche "Sitzungen ablaufen lassen" mit einem Feld daneben, in dem Sie den Leerlaufzeit-Schwellenwert festlegen können. Alle Sitzungen, die für einen Zeitraum oberhalb des Schwellenwerts inaktiv waren, werden ungültig gemacht. Um alle Sitzungen ungültig zu machen, geben Sie einfach 0 ein und drücken Enter; Alle Sitzungen werden unabhängig vom Wert in web.xml ablaufen.

Wenn Sie Tomcat nicht verwenden, sehen Sie in der Dokumentation Ihres Anwendungsservers nach und Sie finden möglicherweise einen Weg dazu über die Administrationskonsole oder die Befehlszeile.

    
Anthony 06.06.2014 18:39
quelle