2016-03-30 6 views
0

Для целей тестирования, я сделал следующие записи в web.xmlJava SessionDestroyed не вызывается, когда сессия неактивна

<session-config> 
     <session-timeout>1</session-timeout> 
</session-config> 

Теперь проблема в том, что пользователь выходит логаут через 1 минуту In-деятельности, но Метод sessionDestroyed моего слушателя сеанса не вызывается. Как всегда, когда я выхожу вручную, все работает нормально.

Есть ли способ, которым это может быть обработано?

Использование Tomcat 8

Заранее спасибо за помощь.

+0

какой контейнер сервлетов вы используете? – wero

+0

Я использую tomcat 8 –

+0

Как долго вы ждали, прежде чем быть нетерпеливым? – BalusC

ответ

1

Согласно сервлета спецификации 11.2.1 HttpSessionListener сообщается, когда

HttpSession был создан, признан недействительным, или тайм-аут.

Но вы не должны ожидать, что контейнер сервлетов будет немедленно вызвать sessionDestroyed после тайм-аута - он будет использовать фоновый поток периодически проверять действительность сеанса.

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

 Смежные вопросы

  • Нет связанных вопросов^_^