SpringMvc与Struts2的区别

1.使用框架不同
Struts2:采用Filter(StrutsPrepareAndExecuteFilter)实现。Filter在容器启动之后即初始化;服务停止以后坠毁,晚于Servlet。
SpringMVC:采用Servlet实现。Servlet在是在调用时初始化,先于Filter调用,服务停止后销毁。
2.拦截机制不同
Struts2:是类级别的拦截,每次请求就会创建一个Action。Struts2有自己的拦截Interceptor机制。
SpringMVC:是方法级别的拦截,一个方法对应一个Request上下文。SpringMVC主要用的是独立的Aop方式。
3.性能方面
Struts2:和Spring整合时Struts2的ActionBean注入作用域是原型模式prototype(多例模式,否则会出现并发问题),然后通过setter,getter把request数据注入到属性。Struts2中,一个Action对应一个request,response上下文,在接收参数时,可以通过属性接收,这说明属性参数是让多个方法共享的。Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了,只能设计为多例。性能比SpringMVC低。
SpringMVC:由于SpringMVC基于方法的拦截,所以方法直接基本上是独立的,独享request,response数据。而每个方法对应一个url,参数的传递是直接注入到方法中的,是方法所独有的。处理结果通过ModeMap返回给框架。在Spring整合时,SpringMVC的Controller Bean默认单例模式Singleton,所以默认对所有的请求,只会创建一个Controller,由于没有共享的属性,所以是线程安全的。性能比Struts2高。
4.配置方面
Struts2:Struts2配置文件复杂,且项目的管理较难。
SpringMVC:spring MVC和Spring是无缝的,配置文件比Struts2少。项目的管理和安全上也比Struts2高。
5.设计思想
Struts2:Struts2更加符合OOP的编程思想。
SpringMVC:SpringMVC就比较谨慎,在servlet上扩展。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值