博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2多线程数据乱窜问题
阅读量:6788 次
发布时间:2019-06-26

本文共 683 字,大约阅读时间需要 2 分钟。

转自:http://love398146779.iteye.com/blog/1781680

1.struts2为每个线程提供一个action实例,多线程访问时不会出现问题。当使用spring管理struts2的action实例对象时,scope必须配置为prototype或者session,若配置为 singleton则多线程访问时会出现问题,多用户访问时有的用户访问到的是另一个用户的数据,数据会发生乱窜现象。

无论是action还是service等待,只要是带有成员变量的类,为了防止多个线程串数据,就不能是单例的。

2.scope=“prototype”是为每个请求提供一个action实例。 

scope=“session”是为每个会话提供一个action实例。

3.通常使用prototype,即让spring容器为每个请求提供一个action实例,好处是服务器端不用维护用户状态信息,否则使用session服务器端必须存储状态信息,用户多时占用服务器端内存过多。使用prototype时,必须自己在客户端维护用户的状态,每次访问服务端时将相应状态信息提交给服务器。例如scope=“prototype”时,页面一般< input name="id" type="hidden" value="${id}"/>用来存储用户的id信息,访问action时提交到server端供action中函数使用。而使用scope=“session”时,页面不必使用hidden的对象隐藏id信息,只要服务端获取过用户的id,action中的 id属性即会保存这个信息。 

 

转载地址:http://ncbgo.baihongyu.com/

你可能感兴趣的文章
rpm安装软件时提示warning
查看>>
如何面向学生主体与项目驱动设计软件工程教学模式
查看>>
linux+apache+svn域账号认证
查看>>
快速安装linux的配置方法
查看>>
ubuntu 安装SVN
查看>>
终于晴了。。。。。
查看>>
spring事物属性(个人觉得写的很不错)
查看>>
linux的基础
查看>>
CentOS通过bind配置DNS服务器
查看>>
odoo二次开发
查看>>
Struts2用户输入验证(2)
查看>>
linux基础学习第十二天(shell函数、数组以及yum使用及编译安装)
查看>>
yii2解决百度编辑器umeditor图片上传问题
查看>>
MTU值导致KVM虚机wget ,scp无法正常使用
查看>>
windows8 初始界面和功能
查看>>
windows 8 自动保存截图
查看>>
/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc
查看>>
Maximizing XOR
查看>>
如何调整PPT幻灯片播放速度?
查看>>
一个功能比较全的WPF免费控件库
查看>>