从valueUnbound(HttpSessionBindingEvent事件)方法修改ServletContext的属性

时间:2014-11-24 17:26:31

标签: java session servlets servlet-listeners

当用户会话过期时,我需要更改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属性?

2 个答案:

答案 0 :(得分:1)

通过HttpSessionBindingEvent访问它。  使用此:

 event.getSession().getServletContext().getAttribute("id_used"); 

答案 1 :(得分:1)

试试此代码

session = event.getSession();  
contextObj = session.getServletContext();