2016-02-23 3 views
1

Si le cache du navigateur est effacé, la session en cours sera inutilisée et une nouvelle session sera créée. Mais selon ma situation lorsque la session est inutilisée, je veux appeler la méthode java.Je veux appeler une méthode Java lorsqu'une session est effacée?

Mes objectifs sont une fois que le cache du navigateur est effacé, l'ancienne session reste inutilisée et une nouvelle session créée avant que je veux appeler une méthode.

Y at-il un moyen de le faire ou ma façon de penser est erronée s'il vous plaît corrigez-moi.

Ce n'est pas la même chose que Comment appeler une méthode avant que l'objet session soit détruit? cette question, car après expiration du délai, cette session est détruite mais dans ma situation, la session n'est pas détruite par un serveur d'application. La session reste inutilisée en raison de la suppression du cache du navigateur.

+2

effacer le cache du navigateur n'implique pas que la session du serveur est détruite immédiatement – wero

Répondre

0

En Java, nous le faisons habituellement cela en utilisant un Listener, dans ce cas, un javax.servlet.http.HttpSessionListener pour vérifier l'événement de sessionDestroyed et sessionCreated:

package com.mkyong; 

import javax.servlet.http.HttpSessionEvent; 
import javax.servlet.http.HttpSessionListener; 

public class SessionCounterListener implements HttpSessionListener { 

    private static int totalActiveSessions; 

    public static int getTotalActiveSession(){ 
     return totalActiveSessions; 
    } 

    @Override 
    public void sessionCreated(HttpSessionEvent arg0) { 
     totalActiveSessions++; 
     System.out.println("sessionCreated - add one session into counter"); 
    } 

    @Override 
    public void sessionDestroyed(HttpSessionEvent arg0) { 
     totalActiveSessions--; 
     System.out.println("sessionDestroyed - deduct one session from counter"); 
    } 
} 

Après créer la classe, vous devez ajoutez votre classe d'auditeur dans le web.xml:

<web-app ...> 
    <listener> 
     <listener-class>com.mkyong.SessionCounterListener</listener-class> 
    </listener> 
</web-app> 

Tout cela fait référence à une explication que j'ai obtenu d'ici là: Mkyong - A simple HttpSessionListener example