1、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。
2、由上边原因,SpringMVC的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量,而Struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码 读程序时带来麻烦,每次来了请求就创建一个Action,一个Action对象对应一个request上下文。
3、由于Struts2需要针对每个request进行封装,把request,session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上,是比较耗费内存的。
4、 拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。
5、SpringMVC的入口是servlet,而Struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。
6、SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。
7、SpringMVC验证支持JSR303,处理起来相对更加灵活方便,而Struts2验证比较繁琐,感觉太烦乱。
8、spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少)。
9、 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。
10、SpringMVC开发效率和性能高于Struts2。
11、SpringMVC可以认为已经100%零配置。

最新文章

  1. ubuntu无限卡在logo界面
  2. VMware如何实现和主机共享网络上网
  3. linux 学习10 shell 基础
  4. Information
  5. Java创建WebService服务及客户端实现
  6. Linux实用命令
  7. 《计算机问题求解》总结——2014年CCF计算机课程改革导教班(2014.07.11)
  8. Using Apache Maven
  9. CQOIX2007余数之和
  10. 为ListView添加头和脚
  11. Dijkstra算法and Floyd算法 HDU 1874 畅通工程续
  12. ORACLE表建立自增列
  13. C++ STL学习之容器set和multiset (补充材料)
  14. [转]Android sharedpreferences使用
  15. Oauth2.0 用Spring-security-oauth2
  16. android9.0系统适配遇到的问题
  17. 扒一扒.net、.net framework、mono和Unity
  18. 定时任务Task
  19. Django框架---- 信号
  20. modbus ASCII和MODBUS RTU区别

热门文章

  1. Authentication token manipulation error报错解决办法
  2. XAMPP虚拟主机配置--20150423
  3. Django2.x中url路由的path()与re_path()参数解释
  4. PAT Basic 1047
  5. Django之单表的增删改查
  6. prometheus + mysqld_exporter + grafana 实现对mysql db的监控
  7. STM32F407 窗口看门狗 个人笔记
  8. Android开发调试无法连接到夜神模拟器的解决方法
  9. Leetcode 368.最大整除子集
  10. [uiautomator篇] 获取当前页面的方法