Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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
Java 类似tomcat的web容器如何处理struts 2变量?_Java_Tomcat_Struts2 - Fatal编程技术网

Java 类似tomcat的web容器如何处理struts 2变量?

Java 类似tomcat的web容器如何处理struts 2变量?,java,tomcat,struts2,Java,Tomcat,Struts2,我是个新手。我有一个关于struts 2框架和tomcat的问题。我知道每个请求都有自己的线程,但我的问题是struts操作中定义的全局变量是否在请求之间共享。 例如:如果我有一个名为say的全局变量 int pageNo;我在say中使用了称为paginational()的方法 我可以对另一个名为say paginatonMaterialAll()的方法使用相同的变量(pageNo)吗在同一操作中,还是每个线程都有自己的变量集,即使是全局定义的?在Struts 1中,不建议在操作类中有全局范围

我是个新手。我有一个关于struts 2框架和tomcat的问题。我知道每个请求都有自己的线程,但我的问题是struts操作中定义的全局变量是否在请求之间共享。 例如:如果我有一个名为say的全局变量 int pageNo;我在say中使用了称为paginational()的方法
我可以对另一个名为say paginatonMaterialAll()的方法使用相同的变量(pageNo)吗在同一操作中,还是每个线程都有自己的变量集,即使是全局定义的?

在Struts 1中,不建议在操作类中有全局范围的变量/字段-它们在所有请求之间共享

然而,在Struts 2中,我相信这已经改变了——现在为每个请求构造了操作

见:

Struts 2 Action对象为每个请求实例化,因此 没有线程安全问题。(在 实践中,servlet容器生成 许多人会按要求扔掉物品, 另外一个对象不会施加 性能惩罚或影响垃圾 收藏。)


您的问题不是很清楚,但这很有帮助:在Struts2中,会为每个请求创建一个新的Action对象实例。

全局共享变量在我看来不是线程安全的。我会重新考虑这个设计。

很难理解在你的行动中定义了哪些“全局变量”。Java没有“全局变量”(你指的是静态字段还是什么?)