attributeRemoved не вызывается после session.invalidate - PullRequest
1 голос
/ 26 ноября 2009

У меня есть объект, который реализует HttpSessionAttributeListener, и, как и следовало ожидать, он выполняет некоторую работу, когда определенные объекты добавляются, заменяются и удаляются из сеанса.

Я думал, что если сеанс закончится [session.invalidate()], каждый объект из этого сеанса будет удален из сеанса, так как будет вызван метод attributeRemoved()? Я не вижу такого поведения и задавался вопросом, мечтал ли я об этом.

Чтобы получить уведомление о том, что сессия недействительна, нужно ли вводить HttpSessionBindingListener в объект, который меня интересует? или есть другой способ.

Ответы [ 2 ]

1 голос
/ 26 ноября 2009

Когда вы вызываете session.invalidate(), вы просто сообщаете контейнеру, что сеанс больше не должен использоваться. Однако он не обязан делать что-либо еще, например, удалять атрибуты сеанса. В конечном итоге это будет сделано, но нет никакой гарантии, что оно сделает это немедленно, и ваше приложение не должно полагаться на то, что это происходит своевременно.

0 голосов
/ 26 ноября 2009

HttpSessionListener, реализовать метод sessionDestroyed

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...