Простой пример HttpSessionListener - счетчик активных сессий

Простой пример HttpSessionListener - счетчик активных сессий

Вот простой пример «HttpSessionListener» для отслеживания общего количества активных сеансов в веб-приложении. Если вы хотите следить за поведением создания и удаления вашего сеанса, рассмотрите этот слушатель.

Java Source

package com.example;

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");
  }
}

web.xml


        
        com.example.SessionCounterListener
    

Как это работает?

- Если создается новый сеанс, например, «request.getSession ();» будет выполняться sessionCreated () слушателя.
- Если сеанс уничтожен, например тайм-аут сеанса или session.invalidate (), будет выполнен sessionDestroyed () слушателя.

  HttpSession session = request.getSession(); //sessionCreated() is executed
  session.setAttribute("url", "example.com");
  session.invalidate();  //sessionDestroyed() is executed