关于SSH并发的问题

springe 2013-11-02 02:56:33
大家好,我是个Java新手,目前在用SSH框架来做网站,在这过程中遇到一个问题,用户访问action的时候,出现用户干扰的问题,比如说:其中有一个action(test.action),该action里有一个变量(name),并且做了get和set操作。当用户a访问test.action的时候,传入了参数name,因此触发了name的get和set函数。这个时候如果b也访问test.action也传入了参数name那么a返回name的值会变成b传入的值,这个是怎么回事呢?
...全文
428 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qpc353386051 2013-11-21
  • 打赏
  • 举报
回复
spring默认是单例模式,多例模式一般不需要,可以在对对象进行赋值前将对象所有值清空。
轻翎 2013-11-21
  • 打赏
  • 举报
回复
在bean 加上scope="prototype 目测是单例
礼拜一 2013-11-21
  • 打赏
  • 举报
回复
你的Action是有spring托管的,spring在创建bean的时候默认是单例模式
ghw554557313 2013-11-04
  • 打赏
  • 举报
回复
这是多线程安全的现象,原因是你的action是单例,所以struts会以多线程的方式使用同一个对象去处理多个不同的请求,这样,多个不同的访问抢用了同一个对象的成员变量,造成了线程安全问题,用prototype模式创建多个实例即可
xuan.ye 2013-11-04
  • 打赏
  • 举报
回复
不知道是不是 js 的“模式窗体”
Mr-稻帅 2013-11-02
  • 打赏
  • 举报
回复
你的action应该是用spring进行默认方式管理的吧!spring默认方式是单例的,struts需要使用的是prototype的action,spring管理bean处加上scope="prototype"
springe 2013-11-02
  • 打赏
  • 举报
回复
引用 3 楼 huxiweng 的回复:
[quote=引用 2 楼 springe 的回复:] [quote=引用 1 楼 huxiweng 的回复:] 你是用同一个浏览器先是a登陆了,然后b登陆吧?那你a那个页面刷新下就是b的session了
不是的,我是在运行过程中,不同用户,不同电脑访问的时候,把数据保存进数据库的时候,保存的内容乱了,例如说,a保存的会是b访问get和set的信息,奇怪了,是不是我设置什么的原因呢?[/quote] 不可能吧,要么你那个action是单例的[/quote] 很有可能是,我这就修改一下,实在是,太感谢了
springe 2013-11-02
  • 打赏
  • 举报
回复
引用 3 楼 huxiweng 的回复:
[quote=引用 2 楼 springe 的回复:] [quote=引用 1 楼 huxiweng 的回复:] 你是用同一个浏览器先是a登陆了,然后b登陆吧?那你a那个页面刷新下就是b的session了
不是的,我是在运行过程中,不同用户,不同电脑访问的时候,把数据保存进数据库的时候,保存的内容乱了,例如说,a保存的会是b访问get和set的信息,奇怪了,是不是我设置什么的原因呢?[/quote] 不可能吧,要么你那个action是单例的[/quote] 单例是什么意思呢?我的页面用了很多Ajax,会不会跟这个有关呢?
.Xing. 2013-11-02
  • 打赏
  • 举报
回复
非常有可能是单列的!
teemai 2013-11-02
  • 打赏
  • 举报
回复
引用 2 楼 springe 的回复:
[quote=引用 1 楼 huxiweng 的回复:] 你是用同一个浏览器先是a登陆了,然后b登陆吧?那你a那个页面刷新下就是b的session了
不是的,我是在运行过程中,不同用户,不同电脑访问的时候,把数据保存进数据库的时候,保存的内容乱了,例如说,a保存的会是b访问get和set的信息,奇怪了,是不是我设置什么的原因呢?[/quote] 不可能吧,要么你那个action是单例的
springe 2013-11-02
  • 打赏
  • 举报
回复
引用 1 楼 huxiweng 的回复:
你是用同一个浏览器先是a登陆了,然后b登陆吧?那你a那个页面刷新下就是b的session了
不是的,我是在运行过程中,不同用户,不同电脑访问的时候,把数据保存进数据库的时候,保存的内容乱了,例如说,a保存的会是b访问get和set的信息,奇怪了,是不是我设置什么的原因呢?
teemai 2013-11-02
  • 打赏
  • 举报
回复
你是用同一个浏览器先是a登陆了,然后b登陆吧?那你a那个页面刷新下就是b的session了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧