struts2.1笔记01:MVC框架思想浅层理解
1. Struts 1是全世界第一个发布的MVC框架:
它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,Struts 1框架更加成熟、稳定,性能也有了很好的保证。因此,到目前为止,Struts 1依然是世界上使用最广泛的MVC框架。
目前,基于Web的MVC框架非常多,发展也很快,每隔一段时间就有一个新的MVC框架发布,例如像JSF、Tapestry和Spring MVC等。除了这些有名的MVC框架外,还有一些边缘团队的MVC框架也很有借鉴意义。
对于企业实际使用MVC框架而言,框架的稳定性则应该是最值得考虑的问题。一个刚刚起步的框架,可能本身就存在一些隐藏的问题,会将自身的BUG引入自己的应用。这也是笔者不推荐开发者自己实现框架的原因。
虽然Struts 2号称是一个全新的框架,但这仅仅是相对Struts 1而言。Struts 2与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Strut2没有继承Struts 1的血统,而是继承了WebWork的血统。或者说,WebWork衍生出了Struts 2,而不是Struts 1衍生了Struts 2。因为Struts 2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证;而且吸收了Struts 1和WebWork两者的优势,因此,是一个非常值得期待的框架。
2. MVC简述:
是一种可以简化应用程序开发和维护的设计模式。Model负责应用程序的业务逻辑,封装访问数据库的方法并提供一个可重用的类。
View包括web设计活模板设计,提供从用户收集数据的机制。Controller将视图设计和Model合并在一起,负责从视图收集数据,并决定程序的执行逻辑调用模型层并解析返回数据,使其能在视图层显示。
3.MVC思想浅层理解:
首先要理解什么是MVC,M(Model模型),V(View视图),C(Controller控制器),MVC思想就是将一个应用分成三个部分即MVC,这三个部分以最少的耦合协同工作,从而提高应用程序的可扩展性和可维护性,(实现高内聚,低耦合,模块之间耦合的高低取决于模块间接口的复杂性,调用的方式和传递的信息)。
一个模型可以对应多个视图,反之多个视图也可以对应一个模型。
控制器控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。
如果用户不对应用发出请求,视图无法主动更新自己。
struts2.1笔记01:MVC框架思想浅层理解的更多相关文章
- Unity 背包系统的完整实现(基于MVC框架思想)
前言: 项目源码上传GitHub:Unity-knapsack 背包系统: 背包系统是游戏中非常重要的元素,几乎每一款游戏都有背包系统,我们使用背包系统可以完成装备栏的数据管理,商店物体的数据管理等等 ...
- Struts2学习笔记01 之 简介及配置
一.Struts简介 * 是轻量级的MVC框架,主要解决了请求分发的问题,重心在控制层和表现层.运用ASOP的思想,使用拦截器来扩展业务控制器 二.使用步骤: 1.引入Sturts2的相关JAR包 2 ...
- 转载《浅析MVC框架中View层的优雅设计及实例》
在基于B/S的应用程序开发中,从基本的技术分工上来说就是两大块,一是软件显示界面,另一个是程序逻辑.在N年前的脚本语言时代,无论是asp.php还是jsp,我们基本是都是把这两者柔和在一起的.尽管我们 ...
- 对poi-excel导出的浅层理解
上一篇对excel导入做了浅层的解释,本文将对导出再做浅层解释. 仍然是相同的套路,只不过是反过来而已. 反过来方向理论上本来是这样的:cell-->row-->sheet-->wo ...
- 啃掉Hadoop系列笔记(01)-Hadoop框架的大数据生态
一.Hadoop是什么 1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构 2)主要解决,海量数据的存储和海量数据的分析计算问题. 3)广义上来说,HADOOP通常是指一个更广泛的概 ...
- altera rom ram IP的浅层理解
1.altera 提供了两种rom :单口rom和双口rom. 官方文档偷图: 单口rom:输出可以配置寄存器寄存再输出,时钟可以输入输出用不同的时钟. 双口rom:输入输出时钟可不同或者A与B的时钟 ...
- 对poi-Excel导入的浅层理解
本文即将对POI方式导入excel文件最核心的步骤予以说明,为的是简单,也是为了阐明文件导入的原理. 文件导入有一个很明显的线索: 1.首先是我们知道硬盘中的文件,即:文件对象File file 2. ...
- Struts2学习笔记①
Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ...
- 初步认识Spring MVC框架
Spring MVC 框架和Struts2等一样属于MVC框架,用于处理页面和后台的交互,据说它的效率要高于Struts2.下面县先说一下Spring MVC的结构,Spring MVC主要由Disp ...
随机推荐
- 用Windows Live Writer发来
文字 package com.myeclipseide.example.myblog.secure; import com.opensymphony.xwork2.ActionSupport; ...
- [转]sublime 使用技巧总结
原文链接:http://www.cnblogs.com/yingzi/archive/2012/04/24/2469056.html 对于用惯了editplus的人来说,突然接触到sublime有点无 ...
- 我从其他人的Shell脚本中学到的
我从其他人的Shell脚本中学到的 2013/08/20 | 分类: 程序员 | 2 条评论 | 标签: SHELL, 脚本 分享到:17 本文由 伯乐在线 - 伯乐在线读者 翻译自 Fizer Kh ...
- HDU4456-Crowd(坐标旋转+二位树状数组+离散化)
转自:http://blog.csdn.net/sdj222555/article/details/10828607 大意就是给出一个矩阵 初始每个位置上的值都为0 然后有两种操作 一种是更改某个位置 ...
- mybatis中为sql中传值#{}和${}的区别
在mybatis中,配置文件中sql的值,用#{}表示,例如: <select id="getTeacher" resultType="Teacher"& ...
- [iOS 多线程 & 网络 - 2.1] - 解析json
A.iOS中json的基本使用 1.解析json数据 (1)json反序列化 对象{}格式 {key : value, key : value,...} 的键值对的结构可以反序列化为OC中的NSDic ...
- iOS 8版本信息与屏幕尺寸
原文 http://www.cnblogs.com/smileEvday/p/iOS8.html 1.UIWindow的bounds iOS 7之前Window的bounds不会随着方向而变化, ...
- MSSQL导入数据时,出现“无法截断表 因为表正由Foreign key引用”错误
* 错误 0xc002f210: 准备 SQL 任务: 执行查询“TRUNCATE TABLE [dsc100552_db].[dbo].[ALV_SalesBigClass] ”失败,错误如下:“无 ...
- ios 调试
http://www.cnblogs.com/weilaikeji/p/3306597.html http://www.cnblogs.com/Twisted-Fate/p/4760156.html ...
- 看京东如何把Intel RealSense技术用在物流上
提起Intel RealSense 3D 深度摄像头,总是离不开无人机.机器人等前沿硬件产品,比如 CES 2016 上让人眼前一亮的自动避障无人机Yuneec “台风 H”,Segway.Nineb ...