关于Action传参问题

来源:4-8 接收参数-深入Struts2

藏红

2015-08-15 09:51

如果使用 private String username 这种方式传参数

我的理解是: 多个用户访问时共用一个 Action  ,  此时会不会对 username这个变量产生 多线程的竞态呢?

写回答 关注

1回答

  • Fcming
    2015-08-19 00:07:32

     Struts 2 的 Action 对象为每一个请求产生一个实例,因此,虽然在Action中定义了很多全局变量,也不存在线程安全问题。Struts 2框架在处理每一个用户请求的时候,都建立一个单独的线程进行处理,值栈ValueStack也是伴随着局部线程而存在的。在该线程存在过程中,可以随意访问值栈,这就保证了值栈的安全性。在Struts 2中,ActionContext是一个局部线程,这就意味着每个线程中的ActionContext内容都是唯一的。所以开发者不用担心Action的线程安全。

    藏红

    原来如此! 谢谢,那么相对应的 spring-mvc controller类中的全局变量也是一样,服务器为每一个请求产生一个实例?

    2015-08-21 11:37:15

    共 1 条回复 >

Struts2入门

本教程带你踏上Struts2学习之旅,对Struts2进行更深入讲解

95061 学习 · 456 问题

查看课程

相似问题