如何确定特定用户实际使用我的应用程序的时间?

时间:2016-07-13 18:02:44

标签: tomcat web-applications

我在Tomcat 8上部署了一个Web应用程序。我想跟踪特定用户使用我的应用程序的时间 - 由执行每个请求的用户花费了多少时间来定义。也就是说,系统中有效工作的时间。

Tomcat中是否已存在此类功能?

在Tomcat中,我已经看到Tomcat Manager application可以使用使用时间非活动时间,但已用时间并不是我想要的:它只是减去创建时间上次访问时间,给予"总会话有效年龄"。

如何确定用户的实际使用时间?

1 个答案:

答案 0 :(得分:0)

您希望使用Filter记录每个请求的时间,然后将该时间添加到用户的总使用时间。您可以将其存储在用户HttpSession中,假设已有会话可用。

请注意,如果您将会话存储在会话中,则会话到期后,用户的累计使用时间将会丢失。如果您希望信息在会话到期后继续存在,您需要将使用时间写在磁盘上的文件或关系数据库中。

上面评论中的@angryip引用是Filter的一个很好的例子,但不是如何实际计算请求的好例子。 doFilter的{​​{1}}方法非常简单。像这样:

Filter

从会话中获取信息取决于您。您可以使用JMX通过其标识符请求会话然后调用" getAttribute"来查看它。参数"用法"。