0.MVC 模型由来

0.1 Model1 模型

Model1 模型是很早以前项目开发的一种常见模型,项目主要由 jsp 和 JavaBean 两部分组成。

它的优点是:结构简单,开发小型项目时效率高。

它的缺点也同样明显:
第一:JSP的职责兼顾于展示数据和处理数据(也就是干了控制器和视图的事)
第二:所有逻辑代码都是写在 JSP中的,导致代码重用性很低。
第三:由于展示数据的代码和部分的业务代码交织在一起,维护非常不便。
所以,结论是此种设计模型已经被淘汰没人使用了。

总结:在Model1模式下,整个Web应用几乎全部有JSP页面组成,JSP页面接受处理客户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。

0.2 Model2 模型

Model2 模型是在Model 1的基础上进行改良,它是MVC模型的一个经典应用。它把处理请求和展示数据进行分离,让每个部分各司其职。此时JSP已经救是纯粹的展示数据了,而处理请求的事情交由控制器来完成,使每个组件充分独立,提高了代码可重用性和易维护性。

Model2是基于MVC架构设计模式。
在Model2架构中,Servlet作为前端控制器,负责接收客户端发送的请求
在Servlet中只包含控制器逻辑和简单的前端处理;
后端JavaBean来完成实际的逻辑处理;
最后转发到相应的JSP页面处理显示逻辑。

总结:Model2 具有组件化的特点,更适用于大规模应用的开发。

10.0 SpringMVC源码分析之MVC 模型由来相关推荐

  1. SpringMVC源码分析(4)剖析DispatcherServlet重要组件

    简单介绍了一个请求的处理过程, 简略描述了调用过程,并没有涉及过多细节,如url匹配,报文解析转换等. <SpringMVC源码分析(2)DispatcherServlet的初始化>:介绍 ...

  2. Android 11.0 Settings源码分析 - 主界面加载

    Android 11.0 Settings源码分析 - 主界面加载 本篇主要记录AndroidR Settings源码主界面加载流程,方便后续工作调试其流程. Settings代码路径: packag ...

  3. Android Q 10.1 KeyMaster源码分析(二) - 各家方案的实现

    写在之前 这两篇文章是我2021年3月初看KeyMaster的笔记,本来打算等分析完KeyMaster和KeyStore以后再一起做成一系列贴出来,后来KeyStore的分析中断了,这一系列的文章就变 ...

  4. 简单直接让你也读懂springmvc源码分析(3.1)-- HandlerMethodReturnValueHandler

    该源码分析系列文章分如下章节: springmvc源码分析(1)-- DispatcherServlet springmvc源码分析(2)-- HandlerMapping springmvc源码分析 ...

  5. Android 8.0系统源码分析--Camera processCaptureResult结果回传源码分析

    相机,从上到下概览一下,真是太大了,上面的APP->Framework->CameraServer->CameraHAL,HAL进程中Pipeline.接各种算法的Node.再往下的 ...

  6. SpringMVC源码分析_1 SpringMVC容器启动和加载原理

                                                                    SpringMVC源码分析_1 SpringMVC启动和加载原理     ...

  7. Pushlet 2.0.3 源码分析

    转载地址:http://blog.csdn.net/yxw246/article/details/2418255 Pushlet 2.0.3 源码分析 ----服务器端 1 总体架构 Pushlet从 ...

  8. Spark2.4.0 SparkEnv 源码分析

    Spark2.4.0 SparkEnv 源码分析 更多资源 github: https://github.com/opensourceteams/spark-scala-maven-2.4.0 时序图 ...

  9. 菜鸟读jQuery 2.0.3 源码分析系列(1)

    原文链接在这里,作为一个菜鸟,我就一边读一边写 jQuery 2.0.3 源码分析系列 前面看着差不多了,看到下面一条(我是真菜鸟),推荐木有入门或者刚刚JS入门摸不着边的看看,大大们手下留情,想一起 ...

最新文章

  1. mysql存储过程导出_Mysql导出存储过程
  2. linux 循环shell脚本,shell脚本的使用---for循环
  3. linux如何给用户加sudo权限,如何在Linux环境为用户添加sudo权限
  4. ThreadPoolExecutor 的八种拒绝策略 | 含番外!
  5. how is service url defined in configuration.js consumed
  6. 写一个高性能的敏感词检测组件
  7. 奥数会不会彻底被信息奥赛取代?
  8. firefox使用掘金插件_Mozilla发布新的附加组件来修复旧版Firefox中的扩展禁用问题...
  9. centos6.6装mysql5.7_centos 6.5装mysql5.7
  10. MangoDB基础-02
  11. Ubuntu18.04安装COMSOL 5.3a
  12. 135编辑器html点击图片播放音乐,135编辑器怎么给文章添加音频和视频?135编辑器给文章添加音频和视频教程...
  13. Web 攻防第一阶段 I-03:收集 Web 站点信息
  14. 【设计模式】05模板方法模式学习笔记
  15. 题目 1341. 十三号星期五
  16. 算法效率的衡量方式 - 时间复杂度与空间复杂度
  17. 美联储历次加息周期及结果
  18. 微信小程序appid的修改方法
  19. 阿里云服务器运行环境配置教程
  20. 软件测试工作学习必备指南——硬实力

热门文章

  1. 联想小新15/小新Air15锐龙版开机或者重启bootmenu错误
  2. .NET快速开发平台成功案例之大型ERP人事工资考勤系统|C/S框架网
  3. mate20por3d人脸识别_华为厉害!Mate20Pro3D结构光支持两张面孔
  4. HTML语言的规律,回文数的算式规律
  5. 【备忘】合付宝-灵工对接测试案例
  6. C++语言之vector用法
  7. Microsoft Project 常用快捷键
  8. C# 读取台达PLC
  9. mysql 书签查找_SQL Server 索引 之 书签查找 第十一篇
  10. Python Floyd算法求最短路径