Struts2主要改进是取代了Struts1的Servlet和Action。

1、Struts2的核心框架是当作一个filter来实现其功能的,而Struts1是ActionServlet。这是本质区别。struts1通过servlet来拦截客户端的请求,因为在web.xml里定义了一个ActionServlet。struts2通过filter来拦截客户端的请求,因为在web.xml里定义了一个FilterDispatcher。struts1 是struts的核心,是基于servlet的API,struts2 是webwork的核心。基于自己的API。

2、 struts1通过actionform来封装客户端提交的表单数据,struts2通过在action中定义getter setter来获取表单数据。

3、在Action上,Struts1都少不了要传递Request等参数,还要继承Action父类,而Struts2只要实现了一个publicString execute()就可以了,这样Action就可以实现脱离Servlet 测试。

Struts2还提供了拦截器(Interceptot)等Struts1所没有的技术。

4、线程方面,Struts1 Action是单例模式并且必须是线程安全的,因为只有Action的一个实例来处理所有请求。要求线程必须是安全的。Struts2 Action对象为每一个请求创建一个独立的对象实例,因此不存在线程安全的问题。Struts1,server启动后,对用户的每个request, 后台controller会mapping其对应的ACTION,如果是首次访问,则initialize。单例的好处:多个request共享一个ACTION instance,节省了资源,但由于共享,not thread safe,需要额外小心。Struts 2,采用Webwork的核心引擎,每个request会new 出一ACTION instance, 不用考虑thread safe问题。

5、一个简单的配置文件struts.xml取代了struts1里面的strut-config.xml。

struts1和2的区别总结相关推荐

  1. Struts1和Struts2的区别和对比(完整版)

    struts2不是struts1的升级,而是继承的webwork的血统,它吸收了struts1和webwork的优势. 先看struts的Action官方注释(struts1.3.8源代码) /** ...

  2. Struts1和Struts2的区别和对比(完整版)(转)

    Struts1和Struts2的区别和对比(完整版)(转) Struts1和Struts2的区别和对比: Action 类:  • Struts1要求Action类继承一个抽象基类.Struts1的一 ...

  3. Struts1和Struts2的区别和对比

    2019独角兽企业重金招聘Python工程师标准>>> 类: •Struts1要求Action类继承一个抽象基类.Struts1的一个普遍问题是使用抽象类编程而不是接口. • Str ...

  4. Struts1与Struts2的区别

    Action 类:  • Struts1要求Action类继承一个抽象基类.Struts1的一个普遍问题是使用抽象类编程而不是接口.  • Struts 2 Action类可以实现一个Action接口 ...

  5. struts1和struts2的区别2

    1) 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类:Struts 1的一个具体问题是使用抽象类编程而不是接口.Struts 2 Action类可以实现一个Acti ...

  6. Struts1、Struts2及SpringMVC对比

    Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物. 简 ...

  7. Struts1与Struts2对比分析

    Struts2其实并不是一个陌生的Web框架,Struts2是以Webwork的设计思想为核心,吸收了Struts1的优点,因此,可以认为Struts2是Struts1和Webwork结合的产物. 简 ...

  8. java创建描述文件,IT技术交流:Java 轻量级整合开发

    原标题:IT技术交流:Java 轻量级整合开发 ervlet-ActionServlet 控制器,接受用户请求和状态改变,以及发出视图选择 FilterDispatcher Action 控制器的一部 ...

  9. Java笔试题之《流行的框架与新技术》

    流行的框架与新技术 1.谈谈你对Struts的理解.      答: 1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionSe ...

  10. struts、hibernate、spring、 mybatis、 spring boot 等面试题汇总

    1.谈谈你对Struts的理解. 答: 1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionS ...

最新文章

  1. 关于Docker目录挂载的总结(转)
  2. sqlserver往oracle写数据,Sqlserver连接oracle进行读写数据库
  3. linux c++开发环境_使用 VM VirtualBox 搭建完善的Linux开发环境
  4. qt-designer使用教程3--编写自己的槽
  5. C语言面向对象编程(四):面向接口编程
  6. python换源还是不行_浅析Python3 pip换源问题
  7. Thymeleaf模板如何获取springMVC返回的model值
  8. 无心剑中译狄金森诗36首
  9. 使用 matlab 进行正太拟合
  10. Spark Architecture
  11. 私人影院音响效果如何有效提升?
  12. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-3.微信Oauth2.0交互流程讲解...
  13. 计算机合成音乐及扩展名为,计算机合成声音
  14. SpringBoot+SpringSecurity+Thymeleaf 演示CSRF攻击
  15. 腾讯云轻量应用服务器搭建即时通信 IM系统
  16. 个人网站接入live2d详细教程
  17. ue4 android log,UE4+Log日志
  18. Hadoop大数据单词统计
  19. Apache Storm中KafkaSpout使用
  20. thinkphp框架源码交易系统资源网站源码

热门文章

  1. 改winpe注册信息及OEM信息
  2. python代码示例-Python代码样例列表
  3. winpe装双系统linux_自制WINPE+MAC安装U盘及双系统存储U盘(增加多系统安装)
  4. swfupload 无法加载_解决SWFUpload的按钮图片加载慢的问题
  5. 源码阅读:PointNet++
  6. css下拉菜单代码(用纯css实现下拉菜单)
  7. 这10个免费电子书网站合集赶紧收藏了!
  8. UCHome全面大解析【二】----基本体系结构
  9. linux init进程源码,Android启动Init进程源码分析
  10. web漏扫问题处理1