1、机制
spring mvc 和 struts2的加载机制不同:spring mvc的入口是servlet,而struts2是filter;(servlet和filter的区别?)

2、性能
spring mvc 在性能上会稍微比struts2快。
sturts2是基于类的设计,是类级别的拦截,每次发一次请求都会实例一个action,然后调用setter getter方法把 request中的数据注入,struts2实际上是通过setter getter方法与request打交道的,struts2中,一个Action对象对应 一个request上下文;spring mvc是基于方法的设计,粒度更细,是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进 去,在spring mvc中,一个方法对应一个request上下文;

3、参数传递
struts2在接受参数的时候,可以用成员属性来接受参数,这就说明参数是让多个方法共享的,即其类属性却所有方法共享;
spring mvc的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量;

4、框架集成
spring MVC和Spring是无缝(无缝:无须数据格式转换,直接访问来自数据源数据格式)的。从这个项目的管理和安全上也比Struts2高;
5、数据验证
SpringMVC验证支持JSR303(一种数据验证的规范),处理起来相对更加灵活方便,而Struts2验证比较繁琐;
6、Ajax交互
spring mvc处理ajax的请求十分方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可;
Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便;
7、拦截机制的实现
spring mvc用的是独立的AOP方式实现,而struts2有自己的interceptor机制,这样导致了struts2的配置文件量又比spring mvc大;
8、RESTful架构的实现
spring mvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上spring mvc就容易实现restful url;
struts2是类级别的拦截,一个类对应一个request上下文,struts2 action的一个方法可以对应一个url;而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了,所以实现restful url比较费劲

开源框架SpringMvc和Struts2的区别的更多相关文章

  1. SpringMVC 和Struts2的区别

    SpringMVC 和Struts2的区别 1. 机制: spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能: spring会稍微比s ...

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

    1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) Sp ...

  3. SpringMVC和Struts2的区别及优势

    1.SpringMVC和Struts2的区别比较 1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方 ...

  4. SpringMVC 和 Struts2的区别

    SpringMVC 和 Struts2的区别   1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方 ...

  5. springmvc和struts2的区别

    springmvc和struts2的区别 1.springmvc基于方法开发的,struts2基于类开发的. 2.单例和多例的区别:springmvc在映射的时候,通过形参来接收参数的,是将url和c ...

  6. SpringMVC跟Struts2的区别

    SpringMVC跟Struts2的区别 1.SpringMVC的入口是servlet:Struts2的入口是Filter. 2.SpringMVC性能方面会比Struts2好一点,SpringMVC ...

  7. SpringMVC与Struts2配置区别

     Spring MVC模型与Struts2模型应用:  Html表单: 上述这两段代码无论是SpringMVC还是Struts2,都可以共用.而在请求响应处理类(也就是Controller)上的设计差 ...

  8. 传递集合参数以及SpringMVC和Struts2的区别

    一.传递集合参数 二.和Struts2的区别 Struts2是基于类封装请求参数,SpringMVC是基于方法封装参数:

  9. springmvc和struts2的区别(转)

    1.客户端浏览器发出HTTP请求.   2.根据web.xml配置,该请求被FilterDispatcher接收.   3.根据struts.xml配置,找到需要调用的Action类和方法, 并通过I ...

随机推荐

  1. V2019 Super DSP3 Odometer Correction Vehicle List

    Comparing v2017 Super DSP3 mileage programmer, the newest V2019 Super DSP III adds newer vehicles, i ...

  2. win10无法访问服务器上的共享文件夹怎么设置,提示:你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问

    此问题需要修改Win10 网络策略 按window+R键输入gpedit.msc 来启动本地组策略编辑器. 依次找到“计算机配置-管理模板-网络-Lanman工作站”这个节点,在右侧内容区可以看到“启 ...

  3. 洛谷P1576||最小花费||dijkstra||双向建边!!

    题目描述 在n个人中,某些人的银行账号之间可以互相转账.这些人之间转账的手续费各不相同.给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问A最少需要多少钱使得转账后B收到100元. 数据范 ...

  4. 重启rabbitmq服务

    重启rabbitmq服务通过两个命令来实现: rabbitmqctl stop :停止rabbitmq rabbitmq-server restart : 重启rabbitmq 因为rabbitmqc ...

  5. android listview里包含组件(checkbox)点击事件和Item的点击事件冲突

    在listview的item中包含有textview和checkBox.我们既想获取listitem的点击事件,又想获取listitem中textview的点击事件和listitem中checkBox ...

  6. 二、PyQt5基本功能和操作入门

    在这里,我将根据自己的学习历程从初级到高级介绍pyqt5.因为是学到哪里就写道哪里,所以内容排版比较随意.有两点问题需要先说明: 1.虽然界面的设计可以借助qt designer进行拖拽创建,并且可以 ...

  7. 第二阶段第九次spring会议

    今天我将对软件进行宠物信息的添加. 清屏功能 private void button5_Click(object sender, EventArgs e) { textBox2.Text = &quo ...

  8. Appium+Python自动化 2 定位元素方式

    1.找到 Android SDK安装路径tools 下面的 uiautomatorviewer.bat,如下截图 2.点击uiautomatorviewer.bat进行启动,左上角一共四个按钮,作用分 ...

  9. 高速上手C++11 14 笔记1

    1 constexpr constexpr关键字可以让已经具备常量返回的函数运用于常量的位置. c++14起可以在函数内部使用局部变量.循环和分支等简单语句. 2 委托构造&继承构造 委托构造 ...

  10. sklearn svm基本使用

    SVM基本使用 SVM在解决分类问题具有良好的效果,出名的软件包有libsvm(支持多种核函数),liblinear.此外python机器学习库scikit-learn也有svm相关算法,sklear ...