SpringMVC与Struts2的区别

两都均为MVC框架,从技术上来看它们的区别,个人认为有以下区别:

1、SpringMVC是以Servlet为入口,而Struts则是以Filter为入口;

2、SpringMVC是基于方法的设计,而Struts则是基于类的设计,因此,从效率与速度上来说SpringMVC会微快些;

3、SpringMVC相对于Struts开发会快速简洁些,支持JSR303,处理ajax请求较为方便;

4、SpringMVC优雅的支持restful风格请求,而Struts则本身没有这方面的优势;

5、在页面开发方面由于Struts支持OGNL表达式,则Struts会稍优于SpringMVC;

从两者的开源社区来看,目前SpringMVC社区较为活跃些,不过从公司用人看,由于Struts曾经有过很辉煌的一段时间,因此,从目前市面上的人才掌握情况看,熟Struts的会相对多些,也正因为Struts曾经的辉煌,研究其漏洞的人也相对多,目前Struts存在不少的安全漏洞,对于原有的老系统来解决这些漏洞还是挺麻烦的,直接升级较高版本的Struts则需要考虑到相关版本的兼容性,据我了解,Struts高版本对低版本的兼容性方面做得不是太好,所以直接升级风险相对也比较高。

综合以上几方面来看,个人更倾向于采用SpringMVC。

时间: 2024-08-08 06:40:59

SpringMVC与Struts2的区别的相关文章

SpringMVC 和Struts2的区别

SpringMVC 和Struts2的区别 1. 机制: spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能: spring会稍微比struts快.spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样.spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把r

Java面试题之《SpringMVC和Struts2的区别》

SpringMVC和Struts2的区别 一.框架机制 1.Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用Servlet实现. 2.Filter在容器启动之后即初始化:服务停止以后坠毁,晚于Servlet.Servlet在是在调用时初始化,先于Filter调用,服务停止后销毁. 这里就牵涉到servlet和filter的区别了. 二.拦截机制 1.Struts2 a.Struts2框

JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别

1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) SpringMVC默认支持的类型 b) 简单数据类型 c) Pojo类型 d) Pojo包装类型 e) 自定义参数绑定 6.SpringMVC和Struts2的区别   第二天 1.高级参数绑定 a) 数组类型的参数绑定 b) List类型的绑定 2.@RequestMapping注解的使用 3.Con

springmvc和struts2的区别

1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了. 2.由上边原因,SpringMVC的方法之间基本上独立的,独享request r

SpringMvc 与 Struts2的区别

1.SpringMVC的入口是Servlet,struts2的入口是Filter,两者的实现机制不同. 2.SpringMVC基于方法设计,传递参数是通过方法的形参,其实现是单例模式(当然也可以修改成多例,推荐使用单例),Struts2基于类设计,传递参数是通过类的属性,只能是多例实现,性能上会比SpringMVC更高一些. 3.参数传递方面,Struts2是用类属性接收,也就是等同于在多个方法中共享,而SpringMVC基于,多个方法之间不能共享. SpringMVC 执行流程图:

控制层SpringMVC和Struts2的区别

我们现在流行的常用的MVC层,控制层Controller层的框架主要有Struts2和SpringMVC两个框架,分别对应着Action和Controller.那么SpringMVC和Struts的主要区别有那些呢? 一.框架机制 我们知道Struts2采用Filter实现,而SpringMVC则采用Servlet实现. Struts2使用StrutsPrepareAndExecuteFilter,而SpringMVC使用DispatcherServlet.Filter是一种特殊的Servlet

SpringMVC与struts2区别和第一个springMVC应用

首先先从网上找到一篇描述SpringMVC和Struts2的区别的文章 文章转载路径:http://blog.csdn.net/chenleixing/article/details/44570681 下面是原文: 1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,

StringMVC 与 Struts2 的区别

SpringMVC 和Struts2的区别 1. 机制: spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能: spring会稍微比struts快.spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样.spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把r

java经典面试题---2----->SpringMVC跟Struts2的区别

SpringMVC跟Struts2的区别 1.SpringMVC的入口是servlet:Struts2的入口是Filter. 2.SpringMVC性能方面会比Struts2好一点,SpringMVC是基于方法设计,每次请求会调用方法:而Struts2是基于类设计,每次发送请求都会实例化一个action. 3.SpringMVC的Model模型的数据传递是在方法model上的:而Struts2的Model是与整个Action整合在一起. 4.SpringMVC使用大量的注解来完成Controll