Java 类似tomcat的web容器如何处理struts 2变量?
我是个新手。我有一个关于struts 2框架和tomcat的问题。我知道每个请求都有自己的线程,但我的问题是struts操作中定义的全局变量是否在请求之间共享。 例如:如果我有一个名为say的全局变量 int pageNo;我在say中使用了称为paginational()的方法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中,不建议在操作类中有全局范围
我可以对另一个名为say paginatonMaterialAll()的方法使用相同的变量(pageNo)吗在同一操作中,还是每个线程都有自己的变量集,即使是全局定义的?在Struts 1中,不建议在操作类中有全局范围的变量/字段-它们在所有请求之间共享 然而,在Struts 2中,我相信这已经改变了——现在为每个请求构造了操作 见: Struts 2 Action对象为每个请求实例化,因此 没有线程安全问题。(在 实践中,servlet容器生成 许多人会按要求扔掉物品, 另外一个对象不会施加 性能惩罚或影响垃圾 收藏。)
您的问题不是很清楚,但这很有帮助:在Struts2中,会为每个请求创建一个新的Action对象实例。全局共享变量在我看来不是线程安全的。我会重新考虑这个设计。很难理解在你的行动中定义了哪些“全局变量”。Java没有“全局变量”(你指的是静态字段还是什么?)