请问spring与struts有什么区别?

请问既然spring也是框架那为什么还能和struts在一起用呢?二者的区别谁能详细的讲解一下吗?非常感谢!... 请问既然spring也是框架那为什么还能和struts在一起用呢?二者的区别谁能详细的讲解一下吗?非常感谢! 展开
 我来答
Gz陶克说
高粉答主

推荐于2019-10-31 · 繁杂信息太多,你要学会辨别
知道答主
回答量:179
采纳率:100%
帮助的人:4.6万
展开全部

struts是表现层框架,spring是业务层框架

区别一:

Struts的核心是基于一个Filter即StrutsPreparedAndExcuteFilter 

Spring的核心是基于一个Servlet即DispatcherServlet(前端控制器)

区别二:

Struts是基于类开发的,传递的参数是通过类的属性传递(属性驱动和模型驱动),所以只能设计成多例prototype

Spring是基于类中的方法开发的,也就是一个url对应一个方法,传递参数是传到方法的形参上面,所以既可以是单例模式也可以是多例模式singiton

区别三:

Struts2采用的是值栈存储请求以及响应数据,OGNL存取数据

Spring采用request来解析请求内容,然后由其内部的getParameter给方法中形参赋值,再把后台处理过的数据通过ModelAndView对象存储,Model存储数据,View存储返回的页面,再把对象通过request传输到页面去。

扩展资料:

spring框架的优点有以下几点:

1、JAVA EE应该更加容易使用。

2、面向对象的设计比任何实现技术(比如JAVA EE)都重要。

3、面向接口编程,而不是针对类编程。Spring将使用接口的复杂度降低到零。(面向接口编程有哪些复杂度?)

4、代码应该易于测试。Spring框架会帮助你,使代码的测试更加简单。

5、提供了应用程序配置的最好方法。

6、在Java中,已检查异常(Checked exception)被过度使用。框架不应该迫使你捕获不能恢复的异常。

参考链接:百度百科—spring架构

次次次蛋黄米亚
高粉答主

推荐于2019-09-05 · 说的都是干货,快来关注
知道小有建树答主
回答量:7778
采纳率:100%
帮助的人:217万
展开全部

1、实现机制不同

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

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

spring mvc的入口是servlet,而struts2是filter。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高。

参考资料:百度百科—struts

参考资料:百度百科—spring

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
train_01
2009-06-22 · TA获得超过181个赞
知道小有建树答主
回答量:91
采纳率:0%
帮助的人:121万
展开全部
spring是一套完整框架,其中springmvc这部分完全可以替代struts的功能,只是狭义的来说我们并不会使用spring整套。
一般所说的ssh是指利用spring框架中的某些特性譬如“依赖注入”来更好的利用struts框架编写代码。
也就是说这是两个不同的框架,而我们使用时习惯将两个框架的优点集中在一起
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
推荐于2018-02-26 · TA获得超过503个赞
知道小有建树答主
回答量:628
采纳率:0%
帮助的人:432万
展开全部
struts是表现层框架,spring是业务层框架(但不局限于业务层)

打个比方,想做爱做的事,找老婆也可以,找情人也可以。

难道你会问既然有了老婆,为什么还想找情人?

一言以蔽之,作用不同!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友aa6ca21
2009-06-22 · TA获得超过511个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:290万
展开全部
structs是个Web框架

spring可以看作是个JEE的轻量级中间件

spring支持整套企业计算的特性,比如事务、切面、分布式调用、安全等,并且具有很强的第三方框架整合能力。

Struts最多就是个Web框架。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式