首页 > 编程语言 > 详细

SpringMVC(1)--基本概念

时间:2020-04-11 18:20:56      阅读:58      评论:0      收藏:0      [点我收藏+]

一、MVC

1.什么是MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码。

  • M层:处理数据,业务逻辑等
  • V层:处理界面的显示结果
  • C层:起到桥梁的作用,来控制V层和M层通信

MVC并不是一个新的语言,只是一个设计模式和管理代码的规范。

2.MVC的运行流程

2.1简略流程

(1)视图是用户看到并与之交互的界面。

(2)模型表示业务数据,并提供数据给视图。主要对数据库操作

(3)控制器接受用户的输入并调用模型和视图去完成用户的需求。主要是业务逻辑

  • 所有的终端用户请求被发送到控制器。
  • 控制器依赖请求去选择加载哪个模型,并把模型附加到对应的视图。
  • 附加了模型数据的最终视图做为响应发送给终端用户。

技术分享图片

功能性 三层 / 分层架构 Model view controller architecture
显示与交互 用户界面 视图
UI逻辑 用户界面 控制器
商业逻辑 / 验证 中间层 模型
请求首先发送给谁? 用户界面 控制器
访问数据 数据链接层 数据链接层,属于桥梁,非任何层

技术分享图片

2.2详细流程

(1)首先根据需求,写出对应的代码逻辑。使用一个实体类模拟

(2)写出该实体类的方法,即运行逻辑和表现形式

(3)根据需求建立数据库,然后连接数据库,通过数据库里面的表映射成实体类。以数据的形式表现该模型

(4)建立ORM模型的映射

技术分享图片

2.3Java的Spring框架的运行流程

简述

技术分享图片

(1)用户从界面输入数据,交给控制器处理

(2)控制先要知道交给谁处理,然后交对应的模块

(3)将结果进行优化,转换成最终需要返回的样子

详述

技术分享图片

(1)用户发送请求至前端控制器DispatcherServlet;
(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;
(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
(4)DispatcherServlet 调用 HandlerAdapter处理器适配器;
(5)HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);
(6)Handler执行完成返回ModelAndView;
(7)HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
(9)ViewResolver解析后返回具体View;
(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
(11)DispatcherServlet响应用户。

3.MVC的历史发展

3.1Model1时代

  • 在web早期的开发中,通常采用的都是Model1。
  • Model1中,主要分为两层,视图层和模型层。

技术分享图片

Model1优点:架构简单,比较适合小型项目开发;

Model1缺点:JSP职责不单一,职责过重,不便于维护;

3.2、Model2时代

Model2把一个项目分成三部分,包括视图、控制、模型。

技术分享图片

  1. 用户发请求
  2. Servlet接收请求数据,并调用对应的业务逻辑方法
  3. 业务处理完毕,返回更新后的数据给servlet
  4. servlet转向到JSP,由JSP来渲染页面
  5. 响应给前端更新后的页面

职责分析:

Controller:控制器

  1. 取得表单数据
  2. 调用业务逻辑
  3. 转向指定的页面

Model:模型

  1. 业务逻辑
  2. 保存数据的状态

View:视图

  1. 显示页面

4.关系

? Java中通过对象关系映射机制来操作的。即ORM框架:对象关系映射机制 。
? 面向对象的对象模型和关系型数据之间的相互转换。基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。

只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。当前ORM框架主要有五种:Hibernate(Nhibernate),iBATIS,mybatis,EclipseLink,JFinal。

二、RestFul

1.什么是RestFul

一种代码设计风格,不是模块功能
参考资料:

三、数据跳转

1.Ajax

2.Json

3.Java数据跳转

3.1 路由

就是一个路径的解析,根据客户端提交的路径,将请求解析到相应的控制器上从 URL 找到处理这个 URL 的类和函数

3.2数据类型

注意: 很难去记住所有的12种类型。但是一些重要的你可以记住,例如:ActionResultViewResult,和 JsonResult。详情如下:

MVC中的12种结果类型,最主要的是ActionResult类,它是一个基础类,它有11个子类型,如下:

  1. ViewResult - 给响应流渲染指定的视图
  2. PartialViewResult - 给响应流渲染指定的局部视图
  3. EmptyResult - 返回空的响应结果。
  4. RedirectResult - 执行一个HTTP转向到指定的URL。
  5. RedirectToRouteResult - 执行一个HTTP转向到一个URL,这个URL由基于路由数据的路由引擎来决定
  6. JsonResult - 序列化一个ViewData对像到JSON格式。
  7. JavaScriptResult - 返回一段Javascript代码,它可以在客户端执行。
  8. ContentResult - 写内容到响应流,不需要视图支持。
  9. FileContentResult - 返回一个文件到客户端。
  10. FileStreamResult - 返回一个文件到客户端,它提供的是流。
  11. FilePathResult - 返回一个文件到客户端。

SpringMVC(1)--基本概念

原文:https://www.cnblogs.com/code906/p/12679952.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!