【问题标题】:Request counter for individual all the web service api个人所有 Web 服务 api 的请求计数器
【发布时间】:2014-10-25 23:24:12
【问题描述】:
我已经为我的项目创建了 web 服务,使用 rest 和一些只使用 servlet。
我想为individual 创建request counter 所有web service api 以每小时、每天等分析individual request ratio。
我不想为每个 api 设置计数器。我可以通过使用 Servlet Listner 或 Servlet Filter 来实现它吗?是的,然后如何???如果可能的话,小型演示会很棒。
注意:我知道我可以从访问日志中分析大部分细节。
【问题讨论】:
标签:
java
web-services
rest
servlets
servlet-listeners
【解决方案1】:
最简单的解决方案是创建并注册一个Filter。
在 web.xml 中,您可以使用通配符 (*) 将其映射到任何 url 或只是您想要计算的 Servlet 的 url,因此一个 Filter 可以对您的所有 Servlet 进行计数,包括您创建的自定义或来自 3rd 方库的任何已发布的 Servlet(因为它们也在您的 web.xml 中创建并映射到您选择的 URL 模式)。
在Filters 中,您还可以提供额外的过滤器,是否要根据 url、参数等计算调用。
提供与任何已注册Filters 的 URL 模式匹配的所有请求以 Filters 的代码开始和结束,因此在 Filter 中,您还可以在服务之前或之后进行计数请求。您还可以根据响应状态码等进行计数。
因此,在Filter 中,您可以进行高级计数,例如计数所有请求、它们的平均执行时间、错误率、平均接收和发送字节数等也分解为 Servlet。 p>