关于Struts2中action请求之间共享数据
2018-03-22 17:15
176 查看
struts1的Action 是在第一次请求的时候实例化的,比如第一次请求Action时会创建这个Action, 之后并没有放弃这个Action实例 而是将Action实例放在一个Map 中 当你再一次请求这个Action的时候会先从这个Map中去找,如果找到了就直接用,没找到才创建。换句话就是仅有Action的一个实例来处理所有的请求。
struts2中当请求到达Action时,Action对象为每一个请求产生一个实例,因此没有线程安全问题。
相比之下,struts2 的Action 是每次请求的时候都会帮你创建一个对象。这也比对出来了struts2的好处: struts2中的Action因为有JavaBean的CURD操作功能,如果是struts1的单例模式的话,可能造成数据的共享,比如A用户访问到的可能是B用户的数据,特别是当并发量多的时候尤为明显。
那么,在struts2中当多个请求时,如何共享数据又满足线程安全呢?个人认为有以下两种方法:
^_^有问题欢迎讨论。。。。。。
struts2中当请求到达Action时,Action对象为每一个请求产生一个实例,因此没有线程安全问题。
相比之下,struts2 的Action 是每次请求的时候都会帮你创建一个对象。这也比对出来了struts2的好处: struts2中的Action因为有JavaBean的CURD操作功能,如果是struts1的单例模式的话,可能造成数据的共享,比如A用户访问到的可能是B用户的数据,特别是当并发量多的时候尤为明显。
那么,在struts2中当多个请求时,如何共享数据又满足线程安全呢?个人认为有以下两种方法:
1.把变量定义到web.xml里,定义为全局变量,使用<context-param>标签。在action类中从servletContext里获得这个全局变量。 2.可以将数据存进session域中或request域中(setAttribute()方法),需要访问就从中拿。
^_^有问题欢迎讨论。。。。。。
相关文章推荐
- rails关于一个Action的多次或多个Action之间共享数据的思路
- rails关于一个Action的多次或多个Action之间共享数据的思路
- rails关于一个Action的多次或多个Action之间共享数据的思路
- 关于java不同类之间的数据共享
- Base-Jsp-5-在页面、请求和用户之间共享数据
- struts2笔记之共享数据的3种方式和请求参数封装
- struts2关于多用户同时请求一个action会不会报错问题
- struts2中action向action之间传数据和action向jsp传数据理解
- struts1及struts2中action和jsp之间数据和参数传输传递
- 关于jQuery获取Action返回的JSON数据 项目真实案例 记录(Struts2)
- 关于jQuery获取Action返回的JSON数据 项目真实案例 记录(Struts2)
- 关于struts2中action请求会执行两次的问题
- 关于struts2在页面请求转发到action的问题
- 关于线程、进程之间的数据共享
- jquery发送ajax请求,以及struts2的action响应请求并传回json数据的做法
- Struts2第四篇【请求数据自动封装、Action得到域对象】
- 解决会话多个请求之间数据共享的问题:使用Cookie
- 关于Struts2使用redirectAction方式在两个Action之间传值时中文乱码问题的解决方法
- Struts2 Action接收POST请求JSON数据及其实现解析
- struts处理.do后缀请求报Struts2中关于"There is no Action mapped for namespace / and action name"的总结