Struts1中action线程安全问题
来源:互联网 发布:数控车床圆弧编程 编辑:程序博客网 时间:2024/06/06 02:58
struts 1.x的一个安全性问题是值得注意的。因为过去的模式是前台页面数据通过actionForm传入,action中的excute方法接收,这个问题是不存在的。
但是,如果在action 中直接定义实例变量,问题就很大了。原因其实也很简单:
为了确保线程安全(thread-safe),在一个应用的生命周期中,Struts框架只会为每个Action类创建一个Action实例(与servlet是一样的)。所有的客户请求共享一个Action实例,并且所有请求线程可以同时执行它的execute()方法。
所以,每个action只有一个实例, 在action打印this也可以看到, 确实是一样的,
所以,
不要在Action里面使用全局变量记忆数据, 没有意义而且不安全
使用actionForm则不会有问题,原因也很简单:
actionForm 是通过参数形式传入action的,不存在共享变量的问题,其实每个request产生的actionForm实例也是不同的。
因此在使用struts 1.x的时候要注意线程安全性问题
但是,如果在action 中直接定义实例变量,问题就很大了。原因其实也很简单:
为了确保线程安全(thread-safe),在一个应用的生命周期中,Struts框架只会为每个Action类创建一个Action实例(与servlet是一样的)。所有的客户请求共享一个Action实例,并且所有请求线程可以同时执行它的execute()方法。
所以,每个action只有一个实例, 在action打印this也可以看到, 确实是一样的,
所以,
不要在Action里面使用全局变量记忆数据, 没有意义而且不安全
使用actionForm则不会有问题,原因也很简单:
actionForm 是通过参数形式传入action的,不存在共享变量的问题,其实每个request产生的actionForm实例也是不同的。
因此在使用struts 1.x的时候要注意线程安全性问题
- Struts1中action线程安全问题
- struts1 action线程安全问题
- struts1和struts2中action的线程安全问题
- Struts1和Struts2的Action线程安全问题
- Struts1和Struts2的Action线程安全问题
- Struts1和Struts2的Action线程安全问题
- Struts1 Action-线程安全问题 -》浅析Strtus2 Action线程安全对比
- struts中Action线程安全问题
- 浅析Struts1和Struts2的Action线程安全问题
- struts1+struts2+spring实例化action的线程安全问题
- 浅析Struts1和Struts2的Action线程安全问题
- 浅析Struts1和Struts2的Action线程安全问题
- 浅析Struts1和Struts2的Action线程安全问题
- 浅析Struts1和Struts2的Action线程安全问题
- 浅析Struts1和Struts2的Action线程安全问题
- 浅析Struts1和Struts2的Action线程安全问题
- 浅析Struts1和Struts2的Action线程安全问题
- 解决struts1线程安全问题
- 进入当前文件直接拉分支
- lcov检查覆盖率命令
- MySQL中修改密码及访问限制设置详解
- 用VC进行COM编程的初级教程(转)
- php - zoj 1295
- Struts1中action线程安全问题
- NHibernate进行 Text字段映射
- valgrind检查内存泄露命令
- 备忘 - centos5.6 安装 python 2.7
- Linux的王者时代即将到来
- google就是牛
- IDE(集成开发环境)
- .NET简谈反射(动态调用)
- 乒乓操作引起的数据的错误