2

我想基本上监控java端的服务器调用。那么有什么方法可以直接获取收到请求时的时间戳。

换句话说,我不想明确地制作日期对象并找出时间戳。相反,如果请求对象提供了任何时间戳参数实用程序,我很感兴趣。

由 ServletActionContext.getRequest() 或任何可用解决方案提供的东西,无需编写代码来创建 Date() 对象并找出答案。

我说的原因是我有大约 50-60 个服务器调用,并且将来在我的应用程序中可能会更多,所以每次我需要应用程序层中的代码时,我都会使用这个现成的工具。

4

1 回答 1

5

HttpServletRequest.getDateHeader为您提供时间戳作为long值。

尽管这是来自请求标头而不是接收时间,但它可能会起作用,因为它提供了自纪元以来的毫秒数。

您还可以查看Filter,它允许您

已为此设计确定的示例有:
1. 身份验证过滤器
2.日志记录和审计过滤器
......

事件侦听器可能是另一种工具,您可以在其中挂钩到 servlet 的处理。

回到你的问题:

ServletActionContext.getRequest() -> HttpServletRequest.getSession() -> HttpSession.getLastAccessedTime

返回客户端上次发送与此会话关联的请求的时间,作为自格林威治标准时间 1970 年 1 月 1 日午夜以来的毫秒数,并以容器收到请求的时间为标记。

于 2013-01-16T12:49:24.307 回答