Как ты это проверял? Знаете ли вы, что каждый новый запрос снова откладывает время ожидания? Таким образом, запрос F5 до ожидаемого таймаута не поможет. Веб-контейнер также не сразу уничтожит сеанс, поэтому вы не увидите немедленного результата от любого HttpSessionListener
. Он будет пожинать их через определенные промежутки времени, которые могут быть каждую минуту, но также могут быть каждые 15 минут. Однако он сразу же пожнет его, если новый запрос поступил через после времени ожидания.
Что касается вашей фразы "сеанс должен быть общим", лучший способ убедиться в этом, конечно, путем проверки идентификатора сеанса либо программно (например, отображая ${pageContext.session.id}
), либо просто путем значение файла cookie jsessionid
в вашем веб-браузере.
Для отслеживания фактического создания и уничтожения сеанса используйте пустышку HttpSessionListener
. Вот базовый пример:
public class MyHttpSessionListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event) {
System.out.printf("%s session %s created %n", new Date(), event.getSession().getId());
}
public void sessionDestroyed(HttpSessionEvent event) {
System.out.printf("%s session %s destroyed %n", new Date(), event.getSession().getId());
}
}
Надеюсь, это поможет.