无需注销即可检索注销时间

时间:2012-03-22 10:15:45

标签: java session servlets httpsession

如果用户在没有注销的情况下关闭浏览器,我怎么能看到注销时间?

所以我实现了从here获取的HttpSessionBindingListener并添加了Listener in web.xml但是在关闭浏览器后没有将注销时间插入到数据库中。请问我在哪里错了?

logout.jsp

 <%
    ObjectWillBeInSession owi = new ObjectWillBeInSession();
    owi.setProperty1("I am a value for Property1");
    owi.setProperty2("I am a value for Property2");
    //this will call HttpSessionBindingListener's 
    //valueBound method for the object
    session.setAttribute("owi", owi);

    //this will call HttpSessionBindingListener's 
    //valueUnbound method for the object
    session.removeAttribute("owi");   
        //INSERT INTO DB.......BUT IT IS NOT WORKING
 %>

2 个答案:

答案 0 :(得分:1)

关闭浏览器不会触发对服务器的任何请求,因此您无法知道用户关闭了他的浏览器。 您可以使用侦听器来使会话超时,然后在发生这种情况时存储当前时间。但是,会话通常会在客户端的最后一次请求后几小时到期。

答案 1 :(得分:0)

您可以使用JavaScript的window.onbeforeunload向servlet发送AJAX请求,以记录用户关闭浏览器的时间,并在会话对象中执行您需要的操作。