Methode zum Festlegen der Sitzungsablaufzeit, die spezifische Methode ist wie folgt:
1. Java-Code
request.getSession().setMaxInactiveInterval(1800);/*秒为单位,1800= 60*30 即30分种*/
2. web.xml
<session-config> <!--分钟为单位--> <session-timeout>30</session-timeout> </session-config>
3. Webserver resin.conf,
<session-config> <!--分钟为单位--> <session-timeout>30</session-timeout> <enable-url-rewriting>false</enable-url-rewriting> </session-config>
Priorität: 1 > 3 > 2
Sitzung wird nach dem Schließen des Browsers nicht ungültig
In einem allgemeinen System müssen Sie möglicherweise auch einige Vorgänge ausführen, nachdem die Sitzung fehlgeschlagen ist:
(1) Kontrollieren Sie die Anzahl der Benutzer, wenn die Sitzung fehlschlägt Das System wird um eins reduziert usw. Kontrollieren Sie die Anzahl der Benutzer innerhalb eines bestimmten Bereichs, um die Systemleistung sicherzustellen.
(2) Steuern Sie einen Benutzer so, dass er sich mehrmals anmeldet. Wenn die Sitzung gültig ist und sich derselbe Benutzer anmeldet, wird er aufgefordert, sich anzumelden. Wenn die Sitzung abläuft, werden Sie benachrichtigt Sie können sich ohne Aufforderung direkt anmelden.
Wie führt man also eine Reihe von Vorgängen aus, nachdem die Sitzung abgelaufen ist?
Hier müssen Sie einen Listener verwenden. Wenn die Sitzung aus verschiedenen Gründen fehlschlägt, kann der Listener sie abhören und dann das im Listener definierte Programm ausführen.
Die Listener-Klasse ist: HttpSessionListener-Klasse, die über zwei Methoden verfügt: sessionCreated und sessionDestroyed
Sie können diese Klasse erben bzw. implementieren.
sessionCreated bezieht sich auf die Methode, die ausgeführt wird, wenn die Sitzung erstellt wird.
sessionDestroyed bezieht sich auf die Methode, die ausgeführt wird, wenn die Sitzung fehlschlägt.
wie folgt:
public class OnlineListener implements HttpSessionListener{ public void sessionCreated(HttpSessionEvent event) { HttpSession ses = event.getSession(); String id=ses.getId()+ses.getCreationTime(); SummerConstant.UserMap.put(id, Boolean.TRUE); //添加用户 } public void sessionDestroyed(HttpSessionEvent event) { HttpSession ses = event.getSession(); String id=ses.getId()+ses.getCreationTime(); synchronized (this) { SummerConstant.USERNUM--; //用户数减一 SummerConstant.UserMap.remove(id); //从用户组中移除掉,用户组为一个map } } }
Deklarieren Sie einfach diesen Listener in web.xml:
<listener> <listener-class>com.demo.system.listener.OnlineListener</listener-class> </listener>
Das Obige ist eine einfache Methode, um die Sitzung mithilfe der Sitzung zu überwachen Bei den Benutzern kann der eigentliche Prozess viel komplizierter sein.
Zum Beispiel müssen Sie die beiden Schnittstellen ServletContextListener und HttpSessionListener gleichzeitig implementieren, ihre Methoden neu schreiben usw.
Das Obige ist die vom Herausgeber eingeführte Methode zum Festlegen der Ablaufzeit der JavaWeb-Sitzung. Ich hoffe, dass sie Ihnen hilfreich sein wird. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten . Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!
Weitere Artikel zu den Methoden zum Festlegen der Ablaufzeit von JavaWeb-Sitzungen finden Sie auf der chinesischen PHP-Website!