Я использую метод valueUnbound, равный HttpSessionBindingListener
, чтобы снять блокировку (запись из базы данных), до истечения сеанса:
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
String user = (String) event.getSession().getAttribute("currentUsr");
removeLock(user);
}
Когда блокировка установлена, я настраиваюusername в качестве переменной сеанса.
Мне нужно это "username" в моем методе удаления блокировки.Но getAttribute вызывает исключение:
java.lang.IllegalStateException: getAttribute: Сессия уже признана недействительной
Мне нужна помощь в получении переменной сеанса ??или есть какой-то другой способ получить имя пользователя?
Нет, поскольку сессия была признана недействительной.
Несмотря на то, что я выяснил решение, я устанавливаю атрибут через контекст сервлета в методе valueBound и получаю его через : event.getSession (). GetServletContext (). GetAttribute ("cUser ");
работает нормально.Спасибо EJP
Я получил вашу точку зрения, EJP, вы правы, я делаю это сложно, я могу получить это из event.getValue ().+1 к вашему ответу, спасибо.