请求接收时间戳没有应用层代码

时间:2013-01-16 12:44:14

标签: java servlets request

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

换句话说,我不想显式创建日期对象并找出时间戳。相反,如果有任何与Request Object一起提供的timestamp参数实用程序,我感兴趣。

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

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

1 个答案:

答案 0 :(得分:4)

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

虽然这是来自请求标头而不是接收时间,但它可能有效,因为它提供了自纪元以来的毫秒数。

你也可以查看Filter,它允许你

  

已为此设计确定的示例是:
  1.认证过滤器
  2. 记录和审核过滤器
  ...

Event Listeners可能是另一个工具,您可以在其中挂钩处理servlet。

回到你的问题:

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

  

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