0

是否可以在struts中找到一个动作类被访问的次数?面试题?

4

2 回答 2

1

是的。解析容器的访问日志。

这是最通用、最灵活、最常见的解决方案,并且有很多工具可以做到这一点。

如果这不是一个可接受的答案(如果不是,而且这是一次采访,请害怕)然后我实际上会使用过滤器或拦截器来做,保持由 URL 键入的映射具有同步的写访问权限,更新一个计算每个请求的 URL(如果存在,则减去查询字符串)。如果需要持久化,可以。

这与 S2 配置的组合将使您可以非常精确地查看请求统计信息。

于 2012-08-06T14:53:50.613 回答
0

一种可能的解决方案是将其存储在数据库/应用程序上下文或文件中,因为 Struts2 动作也可以作为数据对象工作,因此框架为每个请求创建一个唯一的动作实例,以使它们成为线程安全的。您可以在 prepare 方法中添加计数器逻辑,该方法将在任何 Action 方法调用之前被调用。

在此之前仍有许多问题需要回答。

  1. 在许多情况下,实际操作不会被调用并且拦截器会发回流程。
  2. 操作调用是指操作的特定方法调用还是仅操作实例创建。

我们不能将逻辑放在拦截器中,因为不会为每个请求创建拦截器,并且将特定于操作的数据保存在拦截器中是不安全的。

于 2012-08-06T05:16:47.933 回答