【问题标题】:does action class has any scope like formbean动作类有没有像formbean这样的范围
【发布时间】:2011-11-08 18:10:49
【问题描述】:

这是关于 Struts1.x 的

  1. Action 类是否有像表单 bean 一样的范围?
  2. 是否为每个用户会话创建了一个新的Action 实例?
  3. 如果两个用户同时使用同一个动作类,他们会有两个不同的动作类对象,还是同一个?

提前致谢。

【问题讨论】:

    标签: java struts struts-1


    【解决方案1】:

    1) 一个动作的作用域决定了它的动作形式是存储在会话作用域还是请求作用域中。所以不,与它的表单 bean 分开,动作没有范围。

    2) 不,Action 类实例在应用程序启动时创建并共享。

    3) 针对相同操作的请求(意味着它们具有相同的路径)将被发送到相同的操作对象。作为单独的方法调用,它们将获得方法本地变量的单独副本,但它们将看到相同的实例变量(可能存在竞争条件)。

    【讨论】:

    • 感谢 Dave Newton 和 Nathan Hughes,
    • 感谢 Dave Newton 和 Nathan Hughes,(1)Action 类的 execute(-,-,-,-) 方法默认是线程安全的吗?如果我们只使用 ActionServlet 给出的方法参数(在执行方法除了提供的方法参数之外不使用实例变量并且不处理 ant 事务代码的场景)?
    • user1036204:Action 就像没有样板的 Servlet。 “线程安全”不是我会使用的词。只要您只访问局部变量和参数就可以了。 (每个方法调用都有自己的堆栈帧,因此 jvm 确保它们是分开的)例如和类变量,它们将被多个线程同时访问。我不知道“蚂蚁交易代码”是什么意思。这有帮助吗?
    • 感谢您的快速回复。对不起,我提到了持久性逻辑,这是正确的词,然后是“和事务代码”。
    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2013-07-30
    • 2021-10-17
    • 2011-03-06
    相关资源
    最近更新 更多