问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Spring MVC和Struts2的区别

发布网友 发布时间:2022-04-23 03:46

我来回答

3个回答

懂视网 时间:2022-04-15 02:48

1.struts是apache基金会的发布的一个开源软件框架,我们进入apache的官网可以看到。 struts2是基于WebWork而改进的一个框架,其跟struts1没有较大的关系 2.struts2介绍 而在现实的开发中,我们更应对struts2有以下一些认识(前端到后端的处理过程) struts有

1.struts是apache基金会的发布的一个开源软件框架,我们进入apache的官网可以看到。

struts2 是基于WebWork而改进的一个框架,其跟struts1没有较大的关系

2.struts 2 介绍

而在现实的开发中,我们更应对struts 2 有以下一些认识(前端到后端的处理过程)

struts有以下的优势:



3.MVC设计模型(model-view-control)

模型结构图如下:

其优点:


4.struts的环境搭建

(1)解压缩所下载的文件

(2)新建一个web项目

(3)导入日常需要的jar包,jar包地址在struts的lib目录内


(4)修改web.xml来让struts融入到我们的项目中,假设我们要做一个登陆demo,就必须引入struts的过滤器


(5)在项目的src目录下新建一个struts.xml文件(疑问:为什么要在src目录下建xml文件?因为src下的xml文件会把src下的struts.xml文件拷贝到WEB-INF下的classes中,而且IDE只能对src中源代码进行查错),在struts.xml中输入


(6)在webRoot下新建一个jsp的登陆界面,再在src下建一个LoginAction,其作用与servlet相似


(7)最后建一个result.jsp来显示输入的用户名和密码

热心网友 时间:2022-04-14 23:56

spring3mvc与struts2比较
项目刚刚换了web层框架,放弃了struts2改用spring3mvc
当初还框架的时候目的比较单纯---springmvc支持rest,小生对restful url由衷的喜欢
不用不知道 一用就发现开发效率确实比struts2高

我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置
spring3 mvc可以认为已经100%零配置了(除了配置springmvc-servlet.xml外)

比较了一下strus2与spring3 mvc的差别

============================================
struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入
struts2实际上是通过setter getter方法与request打交道的
struts2中,一个Action对象对应一个request上下文

spring3 mvc不同,spring3mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去
在spring3mvc中,一个方法对应一个request上下文

好了 我们来整理一下
struts2是类级别的拦截, 一个类对应一个request上下文,
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上 spring3 mvc就容易实现restful url
而struts2的架构实现起来要费劲
因为struts2 action的一个方法可以对应一个url
而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了

===================================
spring3mvc的方法之间基本上独立的,独享request response数据
请求数据通过参数获取,处理结果通过ModelMap交回给框架
方法之间不共享变量

而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的
这不会影响程序运行,却给我们编码 读程序时带来麻烦

====================================
spring3 mvc的验证也是一个亮点,支持JSR303
处理ajax的请求更是方便 只需一个注解@ResponseBody ,然后直接返回响应文本即可

附上一段代码
Java代码
@RequestMapping(value="/whitelists")
public String index(ModelMap map){
Account account = accountManager.getByDigitId(SecurityContextHolder.get().getDigitId()) ;
List<Group> groupList = groupManager.findAllGroup(account.getId()) ;
map.put("account", account);
map.put("groupList", groupList);
return "/group/group-index" ;
}
//@ResponseBody ajax响应
@RequestMapping(value="/whitelist/{whiteListId}/del")
@ResponseBody
public String delete(@PathVariable Integer whiteListId){
whiteListManager.deleteWhiteList(whiteListId) ;
return "success" ;
}

热心网友 时间:2022-04-15 01:14

一、拦截机制的不同
  Struts2是类级别的拦截,每次请求就会创建一个Action,和Spring整合时Struts2的ActionBean注入作用域是原型模式prototype,然后通过setter,getter吧request数据注入到属性。Struts2中,一个Action对应一个request,response上下文,在接收参数时,可以通过属性接收,这说明属性参数是让多个方法共享的。Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了,只能设计为多例。
  SpringMVC是方法级别的拦截,一个方法对应一个Request上下文,所以方法直接基本上是独立的,独享request,response数据。而每个方法同时又何一个url对应,参数的传递是直接注入到方法中的,是方法所独有的。处理结果通过ModeMap返回给框架。在Spring整合时,SpringMVC的Controller Bean默认单例模式Singleton,所以默认对所有的请求,只会创建一个Controller,有应为没有共享的属性,所以是线程安全的,如果要改变默认的作用域,需要添加@Scope注解修改。
  Struts2有自己的拦截Interceptor机制,SpringMVC这是用的是独立的Aop方式,这样导致Struts2的配置文件量还是比SpringMVC大。
二、底层框架的不同
  Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用Servlet实现。Filter在容器启动之后即初始化;服务停止以后坠毁,晚于Servlet。Servlet在是在调用时初始化,先于Filter调用,服务停止后销毁。
三、性能方面
  Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,SpringMVC实现了零配置,由于SpringMVC基于方法的拦截,有加载一次单例模式bean注入。所以,SpringMVC开发效率和性能高于Struts2。
四、配置方面
  spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
酸醋萝卜怎么做又脆又好吃 账簿启用及交接表填写的步骤 账簿启用及交接表怎样填写 说的是精神分裂症,吃了二年多的药,分别是利培酮片,苯海索片,补脑_百度... 精神分裂症急性期适当的治疗方法 快递三斤荔枝的话要多少钱? 求高手指点一个plc编程问题,计算时间差,还有时间比较后,输出执行... 你好高手 我现在买了个松下fp0的PLC我想写一个步进程序,请问能否... 【plc执行程序步骤】 plc执行程序时 若有一步不能满足条件而执行不了... 电脑屏幕的壁纸怎么更换? springmvc和struts2的区别 坐飞机能带多大充电宝? 核磁共振结果:左膝外侧半月板后角2级撕裂 ,已经3个月了,,如何才能痊愈? 会阴撕裂的伤口,几天会不疼了啊,多久能愈 半月板2度损伤能自己恢复吗? 如何选择LED灯珠? 飞机可以携带多大的充电宝? 右膝关节半月板损伤2度,前交叉韧带损伤,是否要手术 如何选择LED车灯,新手车主在线等答案! 家庭装修LED灯带如何选择? 半月板损伤二度多长时间自愈 请问如何选购LED射灯呀? 顺产撕裂伤口多久能好 如何选择LED灯泡呢?有什么标准吗? 半月板二度损伤多长时间能痊愈需不需要手术 如何挑选好的led灯具 顺产撕裂的伤口多久能完全愈合 如何正确选择LED灯 请问内侧半月板前后角损伤(II度)这个损伤的情况可以愈合不,一般需要多久时间,没有打石膏的话影响不? 求助,想买LED灯具,怎么选? 广州公积金租房可以提取吗 飞机上怎么带充电宝? SpringMVC 和Struts2的区别 30000毫安的充电宝可以带上飞机吗? springmvc和struts2的区别是什么? 在广州,租房合同如何提取公积金? struts2和springmvc的区别 广州市公积金提取条件哪些? SpringMVC和Struts2 的区别 广州公积金如何提取出来 坐飞机能带充电宝吗 关于Struts2和SpringMVC的区别简单介绍 苏州旺集标识标牌有限公司怎么样? 广州租房公积金提取? 停车位的标准尺寸是多少? 广州如果有租房是否能提取公积金啊? 苏州金鸡湖音乐喷泉现在什么时间喷放 吴江东太湖顾家荡音乐喷泉在哪条路 热熔标线涂料多少一平米 广州户口,怎么样可以提取住房公积金?