Maison > Java > JavaBase > le corps du texte

Discutez en détail du délai de définition du délai d'expiration (expiration) de la session en Java

coldplay.xixi
Libérer: 2021-02-19 17:37:28
avant
4102 Les gens l'ont consulté

Discutez en détail du délai de définition du délai d'expiration (expiration) de la session en Java

Recommandation d'apprentissage gratuite : Tutoriel de base Java

Après la connexion au système général, une invalidation de session en cours sera être réglé pour garantir que les utilisateurs se déconnectent automatiquement et détruisent la session s'ils n'interagissent pas avec le serveur pendant une longue période
Il existe trois méthodes de configuration spécifiques :
1. Définir dans le conteneur Web (prendre Tomcat comme un exemple)
dans les paramètres de tomcat -7.0confweb.xml, voici la configuration par défaut dans tomcat7.0 :

<session-config>
    <session-timeout>30</session-timeout>
</session-config>
Copier après la connexion

le délai d'expiration de session par défaut de tomcat est de 30 minutes, qui peut être modifié si nécessaire. un nombre ou 0 signifie qu'il n'y a pas de limite au délai d'expiration de la session

Il convient de noter ici que le temps fixé par cette session est calculé en fonction du serveur et non du client. Donc, si vous déboguez le programme, vous devez modifier l'heure de test côté serveur plutôt que côté client

2. Définissez

<!--时间单位为分钟-->
<session-config>
    <session-timeout>15</session-timeout>
</session-config>
Copier après la connexion

dans le web.xml du projet ici. signifie qu'il expirera dans 15 minutes

3. Définissez le niveau de priorité de

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

de trois manières via le code Java : 1 < 2 < systèmes généraux, cela peut également être nécessaire après l'expiration de la session. Effectuez certaines opérations :

1. Contrôlez le nombre d'utilisateurs Lorsque la session échoue, le nombre d'utilisateurs dans le système est réduit d'un. dans une certaine plage pour garantir les performances du système

2. Contrôler qu'un utilisateur se connecte plusieurs fois Quand Lorsque la session est valide, si le même utilisateur se connecte, il sera demandé qu'il s'est connecté. Lorsque la session expire, vous pouvez vous connecter directement avec une invite différente
Alors, comment effectuer une série d'opérations après l'expiration de la session ?
Ici, vous devez utiliser un écouteur, c'est-à-dire que lorsque la session échoue pour diverses raisons, l'écouteur peut écouter puis exécuter le programme défini dans l'écouteur
La classe d'écoute est : HttpSessionListener La classe a deux méthodes , sessionCreated et sessionDestroyed
Vous pouvez hériter de cette classe et les implémenter séparément
sessionCreated fait référence à la méthode exécutée lors de la création de la session
sessionDestroyed fait référence à la méthode exécutée lorsque la session échoue
Exemple :

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
        }
    }
}
Copier après la connexion

Ensuite, déclarez simplement l'écouteur dans web.xml


    com.demo.OnlineUserListener

Recommandations d'apprentissage associées :

Bases de Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!