【发布时间】:2016-12-26 18:58:20
【问题描述】:
我有一个基于 jsp 的网站,我在 mysql 数据库中跟踪登录时间。 我还在 mysql 数据库中跟踪注销时间。 但是,只有当用户通过正确的方法(即单击注销按钮)进行注销时,注销时间才有效。 如果用户直接关闭浏览器,那么我无法跟踪注销时间。 请帮忙。
【问题讨论】:
我有一个基于 jsp 的网站,我在 mysql 数据库中跟踪登录时间。 我还在 mysql 数据库中跟踪注销时间。 但是,只有当用户通过正确的方法(即单击注销按钮)进行注销时,注销时间才有效。 如果用户直接关闭浏览器,那么我无法跟踪注销时间。 请帮忙。
【问题讨论】:
这种情况的典型方法是使用Heart-beat 监视器。简单的想法是:从客户端代码(通过AJAX)向服务器发送每个特定时间段的请求。当下一个请求未到达时,您将了解用户已关闭其浏览器。
你也可以在这里阅读:http://softwareas.com/heartbeat-pattern-supporting-library/
【讨论】:
您在时间跟踪中的错误标准是什么?
如果最多 30 分钟,那么您可以使用 HttpSessionBindingListener 来完成。这将
否则,如果它最多 5 分钟或更短,那么如上所述,您可以做的是对单独的 servlet 进行 ajax 调用,该 servlet 将更新数据库的最后请求时间。如果您更新数据库中收到的最后一个请求的时间,那么您甚至不需要检查上一个请求和当前请求。
For example,如果你选择第二个选项,我在上午 12:05 打开一个页面并保持打开到 12:19,然后关闭我的浏览器,那么在你的数据库中,我的最后一次请求时间将是上午 12:15,如果您每 5 分钟从客户端调用一次服务器。他可以解决你的问题。
一些公司使用某种类似的方式进行不同的登录,即提取一些数据而不是更新一些数据到数据库以保持会话持续一整天,即使您只是保持浏览器打开,甚至在登录后不做任何事情。
【讨论】: