SpringMVC & Struts2
这两个框架可谓Java中的经典,Java开发必懂的框架,这两天在面试中又问道两者的异同。这里简单做了整理供大家參考交流。
概念:
Spring MVC属于SpringFrameWork的兴许产品。已经融合在Spring Web Flow里面。
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC架构,从而在使用Spring进行WEB开发时。能够选择使用Spring的SpringMVC框架或集成其它MVC开发框架。如Struts1,Struts2等。
struts是开源框架。使用Struts的目的是为了帮助我们降低在运用MVC设计模型来开发Web应用的时间。假设我们想混合使用Servlets和JSP的长处来建立可扩展的应用。struts是一个不错的选择。
各自长处:
Spring MVC是一个典型的教科书式的mvc构架。而不像struts等都是变种或者不是全然基于mvc系统的框架,对于刚開始学习的人或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!
第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所没有的优势。并且框架本身有代码,看起来easy理解。
Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件。这是它的一大长处,使开发人员能更深入的了解其内部实现机制。除此之外。Struts的长处主要集中体如今两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活运用,能大大提高开发效率。另外,就眼下国内的JSP开发人员而言。除了使用JSP自带的经常使用标记外,非常少开发自己的标记,也许Struts是一个非常好的起点。关于页面导航。我觉得那将是今后的一个发展方向。其实,这样做,struts使系统的脉络更加清晰。通过一个配置文件,就可以把握整个系统各部分之间的联系,这对于后期的维护有着莫大的长处。尤其是当还有一批开发人员接手这个项目时。这种优势体现得更加明显。
MVC即Model-View-Controller的缩写,是一种经常使用的设计模式。
MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并依据J2EE的特点,做了相应的变化与扩展。
spring3 mvc开发效率高于struts,spring3 mvc能够觉得已经100%零配置。struts2是类级别的拦截, 一个类相应一个request上下文,springmvc是方法级别的拦截,一个方法相应一个request上下文,而方法同一时候又跟一个url相应所以说从架构本身上 spring3 mvc就easy实现restful url ,而struts2的架构实现起来要费劲。由于struts2 action的一个方法能够相应一个url。而其类属性却被全部方法共享,这也就无法用注解或其它方式标识其所属方法了 。spring3mvc的方法之间基本上独立的,独享request response数据
请求数据通过參数获取。处理结果通过ModelMap交回给框架。方法之间不共享变量,而struts2搞的就比較乱,尽管方法之间也是独立的。但其全部Action变量是共享的,这不会影响程序执行,却给我们编码 读程序时带来麻烦 。由于Struts2须要针对每一个Request进行封装,把Request,Session等Servlet生命周期的变量封装成一个一个Map,供给每一个Action使用,并保证线程安全。所以在原则上,是比較耗费内存的。
怎样取舍:
Struts2依靠技术上的革新赢得了程序猿的青睐。
可是,这些年来Struts2在技术革新上的作为似乎步子就迈得比較小。我们能够看到,在JDK1.5普及之后,Annotation作为一种新兴的Java语法,逐渐 被大家熟知和应用。这一点上SpringMVC紧跟了时代的潮流,直接用于请求-响应的映射。而Struts2却迟迟无法在单一配置源的问题上形成突破。
当然。这仅仅是技术革新上的一个简单的样例,其它的样例还有非常多。
至少给人的感觉是这种。在这一点上Struts并非非常沾光。由于Spring的口碑和影响力也客观程度上加深了大家对SpirngMVC是技术领导者的印象。
SpringMVC & Struts2的更多相关文章
- springmvc和struts2的区别
springmvc和struts2的区别 1.springmvc基于方法开发的,struts2基于类开发的. 2.单例和多例的区别:springmvc在映射的时候,通过形参来接收参数的,是将url和c ...
- springmvc和struts2的差别
springmvc和struts2的区别相关内容 1.spring mvc的入口是servlet,而struts2是filter filter功能:用户可以改变一个request和修改一个resp ...
- 终于有SpringMvc与Struts2的对比啦
目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvc和Struts2进行各方面的比较: 1. 核 心控 ...
- SpringMVC 和Struts2的区别
SpringMVC 和Struts2的区别 1. 机制: spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能: spring会稍微比s ...
- 终于有SpringMvc与Struts2的对比啦(转)
本文转自:http://www.itsource.cn/web/news/5/20150318/370.html 目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区 ...
- <转>SpringMVC与Struts2 比较总结
原链接:http://blog.csdn.net/chenleixing/article/details/44570681 个人整理: 1.级别不同:SpringMVC :方法 Struts是 类级 ...
- SpringMVC与Struts2配置区别
Spring MVC模型与Struts2模型应用: Html表单: 上述这两段代码无论是SpringMVC还是Struts2,都可以共用.而在请求响应处理类(也就是Controller)上的设计差 ...
- 最终有SpringMvc与Struts2的对照啦
眼下企业中使用SpringMvc的比例已经远远超过Struts2,那么两者究竟有什么差别,是非常多刚開始学习的人比較关注的问题,以下我们就来对SpringMvc和Struts2进行各方面的比較: 1. ...
- SpringMVC和Struts2的比较
整体的框架机制 1.Struts2的入口是StrutsPrepareAndExecuteFilter,SpringMVC的入口是通过DispatcherServlet实现. 2.Str ...
- JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别
1. 学习计划 第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) Sp ...
随机推荐
- LightOJ-1341 Aladdin and the Flying Carpet 分解质因数(注意对大素数的优化)
题目链接:https://cn.vjudge.net/problem/LightOJ-1341 题意 给出一个长方形的面积a 让你算整数边长的可能取值,并且两个边都大于给定数字b 思路 唯一分解定理: ...
- 到2023年将会有超过90%的PC采用SSD硬盘
本文转载自超能网,其他媒体转载需经超能网同意 现在买电脑或者自己装机,还有谁不要SSD硬盘吗?这个问题似乎没什么可说的,SSD硬盘各种好,装机可以说是必选了,但实际上现在的SSD适配率并没有想象中那么 ...
- eBay起诉指控亚马逊利用非法手段挖走其卖家
[摘要]eBay在诉状中称,亚马逊的代表滥用eBay的内部电子邮件系统联系卖家,这违反了市场政策. 腾讯科技讯 10月18日消息,据外媒报道,拍卖网站eBay对亚马逊提起诉讼,指控这家美国零售巨头利用 ...
- 紫书 习题 10-15 UVa 12063(数位dp)
大佬真的强!!https://blog.csdn.net/u014800748/article/details/45225881 #include<cstdio> #include< ...
- Bitmap缓存机制
Bitmap缓存机制 载入一个bitmap到UI里面比較简单直接.可是,假设我们一次载入大量的bitmap数据的时候就变得复杂了.很多情况下(比方这些组件:ListVIew,GridView或者Vie ...
- _DataStructure_C_Impl:LinkListBasedSort
#include<stdio.h> #include<stdlib.h> #include"LinkList.h" //创建单链表 void CreateL ...
- 英语音乐---一、Scarborough Fair
英语音乐---一.Scarborough Fair 一.总结 一句话总结:斯卡布罗集市 <斯卡布罗集市>诉说了一个缠绵凄美的爱情故事:一个参军的男青年远离自己相爱的姑娘在战争中不幸遇难,但 ...
- Linux下清除系统日志方法
摘要:相信大家都是用过Windows的人.对于Windows下饱受诟病的各种垃圾文件都需要自己想办法删除,不然你的系统将会变得越来越大,越来越迟钝!windows怎么清理垃圾相信大家都知道的,那么li ...
- javascript中运算符有哪些? 他们的优先级 呢?
一元操作符 ++, -- + -(正负)逻辑操作符 ! && ||基本运算符 +, -, *, /, %关系操作符 >, <, >=, <=, ===, ==, ...
- POJ 1682 DP
原创: http://www.cnblogs.com/proverbs/archive/2012/10/03/2711151.html 超高仿: http://blog.csdn.net/mars_c ...