Heim  >  Artikel  >  Java  >  Besprechen Sie im Detail die Zeit zum Festlegen des Sitzungs-Timeouts (Ablaufs) in Java

Besprechen Sie im Detail die Zeit zum Festlegen des Sitzungs-Timeouts (Ablaufs) in Java

coldplay.xixi
coldplay.xixinach vorne
2021-02-19 17:37:284041Durchsuche

Besprechen Sie im Detail die Zeit zum Festlegen des Sitzungs-Timeouts (Ablaufs) in Java

Empfohlenes kostenloses Lernen: Grundlegendes Java-Tutorial

Nach der Anmeldung bei einem allgemeinen System wird eine aktuelle Sitzungsablaufzeit festgelegt, um sicherzustellen, dass, wenn der Benutzer längere Zeit nicht mit dem Server interagiert, Der Benutzer meldet sich automatisch ab und zerstört die Sitzung
Es gibt drei spezifische Einstellungsmethoden:
1. Im Webcontainer festlegen (nehmen Sie Tomcat als Beispiel)
In tomcat-7.0confweb.xml festlegen Das Folgende ist die Standardkonfiguration in tomcat7.0:

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

Das standardmäßige Sitzungszeitlimit von Tomcat beträgt 30 Minuten und kann nach Bedarf geändert werden. Eine negative Zahl oder 0 bedeutet, dass es keine Begrenzung für die Sitzungsablaufzeit gibt.

Hier ist zu beachten, dass die Zeit festgelegt ist für diese Sitzung wird basierend auf dem Server berechnet, nicht basierend auf dem Client. Wenn Sie also das Programm debuggen, sollten Sie die serverseitige Zeit zum Testen ändern

2. Stellen Sie

<!--时间单位为分钟-->
<session-config>
    <session-timeout>15</session-timeout>
</session-config>

Drei Prioritätsstufen ein: 1 <

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, reduzieren Sie die Anzahl der Benutzer im System Bestimmter Bereich und Sicherstellung der Systemleistung

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, können unterschiedliche Aufforderungen erfolgen verwendet werden, melden Sie sich direkt an

Wie führt man also eine Reihe von Vorgängen aus, nachdem die Sitzung abgelaufen ist?

Hier müssen Sie einen Listener verwenden. Das heißt, wenn die Sitzung aus verschiedenen Gründen fehlschlägt, kann der Listener das im Listener definierte Programm abhören und dann ausführen.

Die Listener-Klasse ist: HttpSessionListener-Klasse mit sessionCreated und sessionDestroyed
Sie kann diese Klasse erben und separat 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.
Beispiel:

session.setMaxInactiveInterval(30*60);//以秒为单位,即在没有活动30分钟后,session将失效

Dann müssen Sie diesen Listener nur noch im Web platzieren. Deklarieren Sie ihn einfach es in .xml
public class OnlineUserListener implements HttpSessionListener{
    public void sessionCreated(HttpSessionEvent event){
        HttpSession session=event.getSession;
        String id=session.getId()+session.getCreationTime();
        SummerConstant.UserMap.put(id,Boolean.TRUE);//添加用户
    }
    
    public void sessionDestroyed(HttpSessionEvent event){
        HttpSession session=event.getSession;
        String id=session.getId()+session.getCreationTime();
        synchronized(this){
            SummerConstant.USERNum--;//用户数减-
            SummerConstant.UserMap.remove(id);//从用户组中移除掉,用户组为一个map
        }
    }
}


Verwandte Lernempfehlungen:

Java-Grundlagen

Das obige ist der detaillierte Inhalt vonBesprechen Sie im Detail die Zeit zum Festlegen des Sitzungs-Timeouts (Ablaufs) in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen