Spring MVC与Struts比较

情到浓时终转凉″ 提交于 2019-11-29 05:22:03

Struts2与SpringMVC都是比较优秀,也是被广泛使用的Web开发框架,那么他们之间有什么区别呢?今天小博老师就跟大家来讨论下这个问题。

Struts工作流程图

Struts与Spring之间主要有以下几点区别:

1、Struts2是类级别的拦截, 一个类对应一个request上下文。SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现restful比较困难。因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。

2、SpringMVC的方法之间基本上是独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量。而Struts2方法之间也虽然是独立的,但其所有Action变量是共享的,一个Action对象对应一个request上下文。

3、由于Struts2需要针对每个request进行封装,把request,session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上,是比较耗费内存的。

4、 拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件比SpringMVC复杂。

5、SpringMVC的入口是servlet,而Struts2是filter,二者的机制不同,这里就牵涉到servlet和filter的区别了。

6、SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时需要安装插件或者自己写代码集成进去,使用起来也相对不方便。

7、SpringMVC验证支持JSR303,处理起来相对更加灵活方便,而Struts2验证比较繁琐。

8、spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高。

9、SpringMVC开发效率和性能高于Struts2。

10、SpringMVC可以认为已经100%零配置。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!