Witam,
Mam problem z utworzeniem licznika sesji w JSP. Jako licznik służy mi klasa implementująca HttpSessionListener:
public class Counter implements HttpSessionListener {
private static int counter = 0;
@Override
public void sessionCreated(HttpSessionEvent se) {
counter++;
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
counter--;
}
public static int getCounter() {
return counter;
}
}
W pliku .jsp wyświetlam licznik instrukcją <%= Counter.getCounter() %>. Plik web.xml również zawiera wpis o listenerze.
Niestety, mam pewien problem - po uruchomieniu serwera pojawiają się różne wartości - raz wyświetla się 0, raz 1; raz udało mi się nawet uzyskać wartość -1. Docelowo zawsze powinna być wyświetlana wartość 1.
Wiem, że jsp tworzy dla każdego połączenia swoją sesję (chyba chodzi o kontener). Nie wiem tylko czemu raz ta sesja "jest", a raz jej "nie ma".
Co pominąłem po drodze? Jak wykorzystać klasę nasłuchującą, aby osiągnąć pożądany rezultat?
Pozdrawiam,
Marcin