Implementando a interface HttpSessionListener é possível saber quando é criado, destruído ou consultado uma sessão http dentro da aplicação, segue abaixo o exemplo:
public class HttpSessionCollector implements HttpSessionListener { private final Logger logger = LogManager.getLogger(getClass().getName()); private static final Map<String, HttpSession> sessions = new HashMap<String, HttpSession>(); @Override public void sessionCreated(HttpSessionEvent event) { HttpSession session = event.getSession(); logger.info("Criado sessão: " + session.getId()); sessions.put(session.getId(), session); } @Override public void sessionDestroyed(HttpSessionEvent event) { logger.info("Destruida sessão: " + event.getSession().getId()); sessions.remove(event.getSession().getId()); } public static HttpSession find(String sessionId) { return sessions.get(sessionId); } }
Observação
A classe acima contem o comportamento padrão de uma sessão então qualquer alteração pode influenciar no funcionamento da sessão dentro da aplicação.
A classe acima contem o comportamento padrão de uma sessão então qualquer alteração pode influenciar no funcionamento da sessão dentro da aplicação.