springmvc和struts2的区别

1Struts2是类级别的拦截, 一个类对应一个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大。

5SpringMVC的入口是servlet,而Struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。

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

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

8spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少)。

9 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。

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

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

时间: 2024-12-28 00:51:25

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

SpringMVC与Struts2的区别

两都均为MVC框架,从技术上来看它们的区别,个人认为有以下区别: 1.SpringMVC是以Servlet为入口,而Struts则是以Filter为入口: 2.SpringMVC是基于方法的设计,而Struts则是基于类的设计,因此,从效率与速度上来说SpringMVC会微快些: 3.SpringMVC相对于Struts开发会快速简洁些,支持JSR303,处理ajax请求较为方便: 4.SpringMVC优雅的支持restful风格请求,而Struts则本身没有这方面的优势: 5.在页面开发方面

控制层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