文档章节

Spring与Struts区别联系

Simon丶Ma
 Simon丶Ma
发布于 2016/04/14 14:55
字数 802
阅读 16
收藏 1

区别联系
1. 实现机制
         struts2框架是类级别的拦截,每次来了请求就创建一个controller中对应的Action,然后调用setter getter方法把request中的数据注入 。struts2实际上是通过setter getter方法与request打交道的。struts2中,一个Action对象对应一个request上下文。
         spring3 mvc不同,spring3mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去。在spring3mvc中,一个方法对应一个request上下文,而方法同时又跟一个url对应。所以说从架构本身上 spring3 mvc就容易实现restful url。而struts2的架构实现起来要费劲,因为struts2 action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法。
   spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的)
spring MVC会稍微比struts快。

2. Request数据共享
         spring3mvc的方法之间基本上独立的,独享request response数据。请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量。而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的。这不会影响程序运行,却给我们编码、读程序时带来麻烦 。

3. 参数传
   struts是在接受参数的时候,可以用属性来接受参数,这就说明参数是让多个方法共享的。

4. 设计思想上
    struts更加符合oop的编程思想, spring就比较谨慎,在servlet上扩展。

5. intercepter的实现机制
   struts有以自己的interceptor机制,spring mvc用的是独立的AOP方式。这样导致struts的配置文件量还是比spring mvc大,虽然struts的配置能继承,所以我觉得论使用上来讲,spring mvc使用更加简洁,开发效率Spring MVC确实比struts2高。
    spring mvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上spring3 mvc就容易实现restful url。struts2是类级别的拦截,一个类对应一个request上下文;实现restful url要费劲,因为struts2 action的一个方法可以对应一个url;而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。spring3 mvc的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架方法之间不共享变量,而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码,读程序时带来麻烦。

6. 另外,spring3 mvc的验证也是一个亮点,支持JSR303
   ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可。送上一段代码:

© 著作权归作者所有

共有 人打赏支持
Simon丶Ma
粉丝 4
博文 134
码字总数 299850
作品 0
深圳
程序员
私信 提问
为什么有了Struts 还要Spring MVC

很多人学习了ssh ,都晓得struts最早被人用来控制表现层,但是struts已经有了mvc 为什么还有spring mvc呢? 所以我稍微查阅了一些资料,总结了一下他们的区别: 1. 机制。spring mvc 的入口是...

dengzhangtao
2010/12/06
0
0
SpringMVC基础知识 (1)

1. Spring体系结构  如图所示,MyBatis属于其管理下的ORM(持久层映射)层,而SpringMVC则属于Web-MVC处理层的框架。 Spring MVC有以下优点: Spring MVC技术是与Spring框架结合而成的,它同...

LeaveStyle
2018/08/31
0
0
使用 Spring 更好地处理 Struts 动作

Struts Recipes 的合著者 George Franciscus 将介绍另一个重大的 Struts 整合窍门 —— 这次是将 Struts 应用程序导入 Spring 框架。请跟随 George,他将向您展示如何改变 Struts 动作,使得...

SeanCai
2010/08/29
0
0
spring2.5 管理sturts2 action问题

今天小弟着实悲剧了很长时间 麻烦各位兄台抽空看下 网速有问题 就直接贴了 struts配置文件 struts-index.xml配置文件 /index.jsp spring部分配置文件 web.xml配置 部分 contextConfigLocatio...

编码小兵
2011/07/29
1K
1
Struts2和Spring整合中的Action是由谁创建的,有什么区别

以下配置均未在Struts配置文件中加入 情况说明如下:登录页面提交到Action中,Action在execute方法中调用ms对象中的valid方法进行验证,返回SUCCESS. 在Action的构造方法中输出一行文字 第一...

李血甜
2012/12/15
2.4K
2

没有更多内容

加载失败,请刷新页面

加载更多

centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
3
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
5
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部