struts 2的Action是多实例的并非单例,也就是每次请求产生一个Action的对象。原因是:struts 2的Action中包含数据,例如你在页面填写的数据就会包含在Action的成员变量里面。如果Action是单实例的话,这些数据在多线程的环境下就会相互影响,例如造成别人填写的数据被你看到了。所以Struts2的Action是多例模式的。

问题出现了,可以让struts2的action变成单例模式么?我在使用spring来生成action的时候,发现生成的action居然全是单例的。这不是让我的程序默认就跑出bug来么?上个用户提交的信息,如果下个用户没填,居然跑到上个用户输入的信息去了。

如果单例改成多例,会报一个action找不到的异常,可能是你在方法之中时用到的变量你没有传值,action报错比较奇怪

Invalid action class configuration that references an unknown class named [adminLogQueryAction]

检查前台提交参数和后台接收值,和方法需要的值

背景 :

1) Struts2 会对每个浏览器,产生一个Action的实例来处理.

2) Spring的Ioc容器管理的bean默认是单实例的.

首先从数据安全性的问题上考虑,我们的Action应该保证是多例的,这样才不会出现数据问题。但是如果有的action比如只有admin才能操作,或者某些action,全站公用一个来提高性能,这样的话,就可以使用单例模式。

不过幸好,Spring的bean可以针对每一个设置它的scope,所以,上面的问题就不是问题了。如果用多例,就在spring的action bean配置的时候设置scope="prototype".好吧,问题到此结束。

  1. <!--多例-->
  2. <bean id="localFileTaskConFigureAction" class="com.top.fgap.localfiletask.action.LocalFileTaskConAction" scope="prototype">
  3. <property name="localFileTaskConfigureService">
  4. <ref bean="localFileTaskConfigureService"/>
  5. </property>
  6. </bean>
  7. <!--默认情况下是单例-->
  8. <bean id="locFTIpFilterAction" class="com.top.fgap.localfiletask.action.LocFTIpFilterAction">
  9. <property name="localIpFilterService">
  10. <ref bean="locFTIpFilterService"/>
  11. </property>
  12. </bean>

最新文章

  1. CSS 魔法系列:纯 CSS 绘制三角形(各种角度)
  2. poj 3070
  3. 浅谈TypeScript
  4. 读TCP-IP详解卷1:协议(1)
  5. UISegmentedControl 分段器加载不同的viewcontroller
  6. WP开发笔记——日期时间DateTime.Now函数
  7. Java API —— JDK5新特性
  8. poj 2503 字符串hash
  9. cocos2d-x中的Tiled地图
  10. [Leetcode][Python]35: Search Insert Position
  11. hdu1443 Joseph---约瑟夫环
  12. Swift中的for循环基本使用
  13. iOS NSInteger 的输出 %d %ld %zd %ld (long)
  14. 复习centos7命令---vim常用
  15. Linux&#160;学习笔记之超详细基础linux命令&#160;Part&#160;12
  16. Cannot find wrapper assembly for type library &quot;ADODB&quot;. in VS2017
  17. 7.16顺便贴一下 pep8的标准
  18. c语言中如何通过二级指针来操作二维数组
  19. redis的哨兵集群,redis-cluster
  20. 06-Git-Linux命令

热门文章

  1. javascript实现列表的点击展开折叠
  2. ubuntu14.04 wifi驱动
  3. C# Request中修改header信息
  4. Bootstrap&lt;基础二&gt; 网格系统
  5. Emmet 使用说明。
  6. js正则实现二代身份证号码验证详解
  7. Volley之 JsonRequest 解析JSON 数据
  8. MVC教程相关
  9. [WinForm] VS2010发布、打包安装程序
  10. iOS仿直播带有气泡动画的UIButton