总的来说,Struts1的Action是单例模式,因此应用开发者必须保证它是线程安全的或者是同步的,因为Struts1中的每个Action仅有一个实例来处理所有请求。
但是在用Struts1开发时并没有考虑到线程安全问题,这是因为我们在anction中使用的基本都是局部变量,而"局部变量是线程安全的。因为每执行一个方法,都会在独立的空间创建局部变量,它不是共享资源,局部变量包括方法的参数变量".
在Struts1中,所有的变量都是定义在action中我们要执行的方法里的(Action中的excute方法或DispachterAction中指定要执行的方法),我们用于封装客户端请求参数的ActionForm,也是作为一个参数传入的,也属于局部变量,因此也不存在线程安全问题。
Struts2 的Anction对象为每一个请求产生一个实例,因此虽然在Action中定义了很多全局变量,也不存在线程安全问题。
Struts2框架在处理每一个用户请求的时候,都建立一个单独的线程进行处理,值栈ValueStack也是伴随着局部线程而存在 的,在该线程存在的过程中,可以随意访问值栈,这就保证了值栈的安全性。
在Struts2中,ActionContext是一个局部线程,这就意味着每个线程中的ActionContext内容都是唯一的,所以开发都不用担心Action的线程安全。
分享到:
相关推荐
struts1,struts2,webwork,线程安全问题,easy518网 http://www.easy518.com/
servlet与Struts action线程安全问题分析
Struts 2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。 3 Servlet依赖方面的对比:Struts 1 Action依赖于Servlet API,因为Struts 1 Action的execute方法中有HttpServletRequest和...
servlet与Struts action线程安全问题分析 <br>===================================================== Servlet的线程安全问题只有在大量的并发访问时才会显现出来,并且很难发现,因此在编写Servlet程序时要...
struts1与struts2的区别,线程模式,servlet的依赖...
struts线程安全,里面讲述了struts中的一些关于线程的安全方面的介绍。
Struts2和Struts1的不同 Action 类: 线程模式:
主要为大家详细介绍了java struts2学习笔记之线程安全,感兴趣的朋友可以参考一下
主要介绍了Struts中action线程安全问题解析,涉及实例代码,还是挺不错的,具有一定参考价值,需要的朋友可以了解下。
不同点 Action 类 线程模式 Servlet 依赖 可测性 捕获输入 表达式语言 绑定值到页面(view) 类型转换 校验 Action执行的控制 文档更详细……
Struts2与Struts1的对比 对Action 类、线程模式、捕获输入、表达式语言、 绑定值到页面(view)、类型转换、Action执行的控制 等等读做了解析.
5、作者对不同的struts2漏洞测试语句做了大量修改,执行命令、上传功能已经能通用。 6、支持HTTPS。 7、支持GET、POST、UPLOAD三种请求方法,您可以自由选择。(UPLOAD为Multi-Part方式提交) 8、部分漏洞测试支持...
struts1的服务器端验证,一个很好的验证配置文件,线程安全问题有保障
深入剖析struts2 的各种存储数据的范围,解析因为存储范围混乱而导致的线程混乱, 解决web开发总的界面跳转混乱问题
通过产生临时文件下载之后,再通过线程删除临时文件
springmvc的controller是singleton的(非线程安全的),这也许就是他和struts2的区别吧和Struts一样,Spring的Controller默认是Singleton的,这意味着每个request过来,系统都会用原有的instance去处理,这样导致了...
清晰的介绍了Struts 2.0框架的工作流程,Action线程安全,程序入口,配置文件。
1) 在Action实现类方面的对比 2) 线程模式方面的对比 3) Servlet依赖方面的对比...