如果用户在没有注销的情况下关闭浏览器,我怎么能看到注销时间?
所以我实现了从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
%>
答案 0 :(得分:1)
关闭浏览器不会触发对服务器的任何请求,因此您无法知道用户关闭了他的浏览器。 您可以使用侦听器来使会话超时,然后在发生这种情况时存储当前时间。但是,会话通常会在客户端的最后一次请求后几小时到期。
答案 1 :(得分:0)
您可以使用JavaScript的window.onbeforeunload
向servlet发送AJAX请求,以记录用户关闭浏览器的时间,并在会话对象中执行您需要的操作。