我想基本上监控java端的服务器调用。那么有什么方法可以直接获取收到请求时的时间戳。
换句话说,我不想明确地制作日期对象并找出时间戳。相反,如果请求对象提供了任何时间戳参数实用程序,我很感兴趣。
由 ServletActionContext.getRequest() 或任何可用解决方案提供的东西,无需编写代码来创建 Date() 对象并找出答案。
我说的原因是我有大约 50-60 个服务器调用,并且将来在我的应用程序中可能会更多,所以每次我需要应用程序层中的代码时,我都会使用这个现成的工具。
HttpServletRequest.getDateHeader为您提供时间戳作为long值。
尽管这是来自请求标头而不是接收时间,但它可能会起作用,因为它提供了自纪元以来的毫秒数。
您还可以查看Filter,它允许您
已为此设计确定的示例有:
1. 身份验证过滤器
2.日志记录和审计过滤器
......
事件侦听器可能是另一种工具,您可以在其中挂钩到 servlet 的处理。
回到你的问题:
ServletActionContext.getRequest() -> HttpServletRequest.getSession() -> HttpSession.getLastAccessedTime
返回客户端上次发送与此会话关联的请求的时间,作为自格林威治标准时间 1970 年 1 月 1 日午夜以来的毫秒数,并以容器收到请求的时间为标记。