HttpSessionBindingListener
在会话即将到期之前,我正在使用 valueUnbound 方法释放锁(来自数据库的条目):
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
String user = (String) event.getSession().getAttribute("currentUsr");
removeLock(user);
}
设置锁定后,我将用户名设置为会话变量。
我在删除锁定方法中需要这个“用户名”。但是 getAttribute 抛出异常:
java.lang.IllegalStateException:getAttribute:会话已经失效
我需要帮助来获取会话变量??或者有没有其他方法可以获取用户名?
不,因为会话已失效。
虽然,我想出了解决方案,但我在 valueBound 方法中通过 servlet 上下文设置属性并通过: event.getSession().getServletContext().getAttribute("cUser");
它工作正常。谢谢 EJP
我明白了你的观点 EJP,你是对的,我让它变得复杂,我可以从 event.getValue() 中得到它。+1 对您的回答,谢谢。