Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Struts2中ActionMapper、ActionProxy、ActionInvocation和ActionContext对象的作用域?_Struts2_Scope_Actioncontext - Fatal编程技术网

Struts2中ActionMapper、ActionProxy、ActionInvocation和ActionContext对象的作用域?

Struts2中ActionMapper、ActionProxy、ActionInvocation和ActionContext对象的作用域?,struts2,scope,actioncontext,Struts2,Scope,Actioncontext,有谁能描述一下ActionMapper、ActionProxy、ActionInvocation和ActionContext的对象是在Struts2应用程序中创建的。由于我是Struts2框架的新手,我对这些对象的作用域非常困惑。是在启动时创建的,它有一个单例作用域 是由在准备要执行的操作时创建的,它是,并且没有任何作用域 当操作正在执行时,创建的和也没有作用域 您可以在Struts2体系结构上看到这一点。感谢Roman提供了这一信息,但我知道ActionContext包含表示会话的映射对象,在

有谁能描述一下ActionMapper、ActionProxy、ActionInvocation和ActionContext的对象是在Struts2应用程序中创建的。由于我是Struts2框架的新手,我对这些对象的作用域非常困惑。

是在启动时创建的,它有一个单例作用域

是由在准备要执行的操作时创建的,它是,并且没有任何作用域

当操作正在执行时,创建的和也没有作用域


您可以在Struts2体系结构上看到这一点。

感谢Roman提供了这一信息,但我知道ActionContext包含表示会话的映射对象,在其他请求中可以访问的应用程序范围的对象意味着其他线程。如果ActionContext是ThreadLocal,那么我们如何访问其他线程中包含的ActionContext对象?通过创建和初始化一个新的ActionContext。如果我们创建另一个,那么ActionContext的旧内容将被销毁。那么,在新请求中,如何仍然能够访问包含先前ActionContext对象的会话呢?@user2485767,因为会话是在action context上设置的。会话只是servlet规范会话。在其他线程中它不会破坏,但是正如Dave在这里提到的,谢谢Dave,在使用它之前,您需要将会话设置为action context。http会话中有相同的会话对象,因此可以使用ServletAPI轻松访问它们。