全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Struts中的Action 单例与多例详解

 Struts中的Action 单例与多例详解

struts2中action是多例的,即每次访问网络地址的时候都会产生一个action

public class pr_action {
  public pr_action(){
    System.out.println("创建action成功!!!");
  }
  public void execute(){

  }
}

运行代码可以看到,每次访问该网络地址都会在控制台输出一次!!!

如果是单例的话,若出现两个用户都修改一个对象的属性值,则会因为用户修改时间不同,两个用户访问得到的属性不一样,操作得出的结果不一样。

举个例子:有一块布长度300cm,能做一件上衣(用掉100cm)和一件裤子(用掉200cm);甲和乙同时访问得到的长度都是300cm,
甲想做上衣和裤子,他先截取100cm去做上衣,等上衣做完再去做裤子,而乙这时正好也拿100cm去做上衣,那好,等甲做完上衣再做裤子的时候发现剩下的布(100cm)已经不够做裤子了…..这就是影响系统的性能,解决的办法就是给甲和乙一人一块300cm的布,就不会出现布被别人偷用的事情,也是就单实例和多实例的区别

如果设置成单例,那么多个线程会共享一个ActionContext和ValueStack,这样并发访问的时候就会出现问题了

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

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

背景:

1) Struts2会对每一个请求,产生一个Action的实例来处理.

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

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

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Struts中的Action  # 单例与多例  # Struts  # Action  # 关于struts2中Action名字的大小写问题浅谈  # jQuery ajax请求struts action实现异步刷新  # Struts2中Action三种接收参数形式与简单的表单验证功能  # struts2通过action返回json对象  # Struts2 ActionContext 中的数据详解  # 详解在Java的Struts2框架中配置Action的方法  # 用js模拟struts2的多action调用示例  # struts2中action实现ModelDriven后无法返回json的解决方法  # 详解Struts2中Action访问Servlet API的几种方法  # 就会  # 去做  # 上个  # 做完  # 都是  # 网络地址  # 用掉  # 我在  # 就在  # 去了  # 多个  # 这就是  # 一人  # 你在  # 你看  # 会在  # 跑到  # 希望能  # 这不是  # 会对 


相关文章: 云南网站制作公司有哪些,云南最好的招聘网站是哪个?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  如何构建满足综合性能需求的优质建站方案?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  如何快速选择适合个人网站的云服务器配置?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  如何通过虚拟主机快速完成网站搭建?  建站之星如何快速解决建站难题?  如何通过FTP空间快速搭建安全高效网站?  青岛网站建设如何选择本地服务器?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  建站DNS解析失败?如何正确配置域名服务器?  家庭服务器如何搭建个人网站?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  制作旅游网站html,怎样注册旅游网站?  如何快速查询网站的真实建站时间?  设计网站制作公司有哪些,制作网页教程?  营销式网站制作方案,销售哪个网站招聘效果最好?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  怀化网站制作公司,怀化新生儿上户网上办理流程?  ,南京靠谱的征婚网站?  如何在七牛云存储上搭建网站并设置自定义域名?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何高效利用亚马逊云主机搭建企业网站?  网站制作报价单模板图片,小松挖机官方网站报价?  seo网站制作优化,网站SEO优化步骤有哪些?  简单实现Android文件上传  建站主机核心功能解析:服务器选择与网站搭建流程指南  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何在阿里云部署织梦网站?  Python lxml的etree和ElementTree有什么区别  ,柠檬视频怎样兑换vip?  潮流网站制作头像软件下载,适合母子的网名有哪些?  建站之星伪静态规则如何正确配置?  建站之星在线版空间:自助建站+智能模板一键生成方案  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何在云主机上快速搭建多站点网站?  如何通过建站之星自助学习解决操作问题?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何高效配置香港服务器实现快速建站?  制作网站怎么制作,*游戏网站怎么搭建?  如何生成腾讯云建站专用兑换码?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  建站之星展会模版如何一键下载生成?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。