当用户会话过期时,我需要更改ServletContext中的属性。
如何建议how-to-call-a-method-before-the-session-object-is-destroyed,我在我的java类中实现了方法valueUnbound(HttpSessionBindingEvent事件),允许在使用事件引用销毁之前访问Session对象。
在此方法中,我需要更改ServletContext中属性的数组中的值。我该怎么办?
public class myClass implements HttpSessionBindingListener {
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
int userid = Integer.valueOf((Integer) event.getSession().getAttribute("IDplayer"));
boolean[] id_used = (boolean[]) getServletContext().getAttribute("id_used");
}
问题是getServletContext()。getAttribute()没有建立,如果我包含" import javax.servlet。*"。
如何从会话关闭前调用的方法访问ServletContext属性?
答案 0 :(得分:1)
通过HttpSessionBindingEvent访问它。 使用此:
event.getSession().getServletContext().getAttribute("id_used");
答案 1 :(得分:1)
试试此代码
session = event.getSession();
contextObj = session.getServletContext();