我在Tomcat 8上部署了一个Web应用程序。我想跟踪特定用户使用我的应用程序的时间 - 由执行每个请求的用户花费了多少时间来定义。也就是说,系统中有效工作的时间。
Tomcat中是否已存在此类功能?
在Tomcat中,我已经看到Tomcat Manager application可以使用使用时间和非活动时间,但已用时间并不是我想要的:它只是减去创建时间和上次访问时间,给予"总会话有效年龄"。
如何确定用户的实际使用时间?
答案 0 :(得分:0)
您希望使用Filter
记录每个请求的时间,然后将该时间添加到用户的总使用时间。您可以将其存储在用户HttpSession
中,假设已有会话可用。
请注意,如果您将会话存储在会话中,则会话到期后,用户的累计使用时间将会丢失。如果您希望信息在会话到期后继续存在,您需要将使用时间写在磁盘上的文件或关系数据库中。
上面评论中的@angryip引用是Filter
的一个很好的例子,但不是如何实际计算请求的好例子。 doFilter
的{{1}}方法非常简单。像这样:
Filter
从会话中获取信息取决于您。您可以使用JMX通过其标识符请求会话然后调用" getAttribute"来查看它。参数"用法"。