SpringMVC简要概述

SpringMVC简要概述

  • SpringMVC简要概述
  • 一、MVC
    • 1.MVC简介
    • 2.MVC三层架构分析
    • 3、MVC框架使用机制
  • 二、SpringMVC
    • 1.SpringMVC简介
    • 2.SpringMVC特点
    • 3. 中间控制器
    • 4.SpringMVC的执行原理
    • 5.简要分析执行流程

一、MVC

1.MVC简介

  • MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。
  • 业务逻辑、数据、显示分离
  • MVC主要作用是降低视图与业务逻辑间的双向耦合
  • MVC不是一种设计模式,MVC是一种架构模式

2.MVC三层架构分析

Model(模型):数据模型,提供要展示的数据,也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Controller(控制器)接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。

职责分析:

Controller:控制器

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

Model:模型

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

View:视图

  1. 显示页面

3、MVC框架使用机制

  1. 将url映射到java类或java类的方法
  2. 封装用户提交的数据
  3. 处理请求–>调用相关的业务处理–>封装响应数据
  4. 将响应的数据进行渲染 jsp / html 等表示层数据显示

二、SpringMVC

1.SpringMVC简介

SpringMVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。

详见SpringMVC官方介绍

2.SpringMVC特点

  1. 轻量级,简单易学(依赖较少,代码减少
  2. 高效 , 基于请求响应的MVC框架
  3. 与Spring兼容性好,无缝结合(springmvc中的bean注册到spring中)
  4. 约定优于配置
  5. 功能强大:RESTful、数据验证等功能
  6. 简洁灵活

3. 中间控制器

Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的作用是将请求分发到不同的处理器
Spring MVC框架像许多其他MVC框架一样, 以请求为驱动 , 围绕一个中心Servlet分派请求及提供其他功能DispatcherServlet本质就是一个Servlet (它继承自HttpServlet 基类)。详见 DispatcherServlet

4.SpringMVC的执行原理

当发起请求时被前置的控制器拦截到请求,根据请求参数生成代理请求,找到请求对应的实际控制器,控制器处理请求,创建数据模型,访问数据库,将模型响应给中心控制器,控制器使用模型与视图渲染视图结果,将结果返回给中心控制器,再将结果返回给请求者。

上图中实线为框架提供,虚线为开发人员实现。

5.简要分析执行流程

  1. DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接收请求并拦截请求。

我们假设请求的url为 : http://localhost:8080/SpringMVC/hello
(http://localhost:8080服务器域名, SpringMVC部署在服务器上的web站点, hello表示控制器)

此url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。

  1. HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。

  2. HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:hello。

  3. HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。

  4. HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。

  5. Handler让具体的Controller执行。

  6. Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。

  7. HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。

  8. DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。

    10.视图解析器将解析的逻辑视图名传给DispatcherServlet。
    11. DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。

    12.最终视图呈现给用户。

SpringMVC简要概述相关推荐

  1. 「翻译」SAP零售预测和补货–简要概述

    SAP零售预测和补货–简要概述 总体目标和适用范围 SAP Forecasting and Replenishment(F&R)是专门为零售商门店和配送中心的高效补货而创建的解决方案.其主要目 ...

  2. drill apache_Apache Drill 1.4性能增强的简要概述

    drill apache 今天,我们很高兴地宣布,MapR发行版中现已提供Apache Drill 1.4. 钻1.4是MAPR生产就绪和支持的版本,可以从下载这里 ,找到1.4版本说明这里 . Dr ...

  3. Apache Drill 1.4性能增强的简要概述

    今天,我们很高兴宣布Apache Drill 1.4现已在MapR发行版中可用. 钻1.4是MAPR生产就绪和支持的版本,可以从下载这里 ,找到1.4版本说明这里 . Drill 1.4以其高度灵活和 ...

  4. jsp 内置的对象的简要概述(转)

    JSP 内置对象简要概述 (1) HttpServletRequest 类的 Request 对象 作用:代表请求对象,主要用于接受客户端通过 HTTP 协议连接传输到服务器端的数据. (2) Htt ...

  5. 记住密码 的 简要概述_密码错误的简要历史

    记住密码 的 简要概述 IT强制的密码策略似乎是一个好主意-毕竟,攻击者有机会在八字符字符串(至少包含一个大写字母,一个低个字母)中的7.82亿个潜在组合中猜出您的确切密码字母,两个数字和一个符号? ...

  6. MOOS-ivp 实验十四(2)behavior简要概述

    MOOS-ivp 实验十四(2)behavior简要概述 继续上一章的内容,对行为使命进行进一步的介绍和参数配置工作. 文章目录 MOOS-ivp 实验十四(2)behavior简要概述 前言 一.简 ...

  7. HashMap的实现原理(简要概述)

    HashMap的实现原理(简要概述) 基于哈希算法实现的,它通过put存储,通过get取值. 当传入一个key时,HashMap会根据key.hashCode()计算出哈希值,然后根据这个哈希值将va ...

  8. Spring 核心方法 refresh 刷新流程简要概述及相关源码扩展实现(二)

    前言 registerBeanPostProcessors initMessageSource 如何实际应用国际化处理 initApplicationEventMulticaster onRefres ...

  9. 数据治理从理论到实战系列(一)——简要概述

    数据治理从理论到实战系列 数据治理(一):简要概述 数据治理从理论到实战系列 一.为什么要进行数据治理? 二.什么是数据治理? 三.如何解决上述问题? 三.数据治理的体系 四.数据治理平台建设 跳转连 ...

最新文章

  1. 我在 GitHub 上发现了一款骚气满满的字体!
  2. [转]NYOJ-511-移动小球
  3. DataTable 的 JSON 序列化
  4. uva 1629——Cake slicing
  5. Ubuntu 如何定制桌面解放你的个性?
  6. NumPy的详细教程(官网手册翻译)
  7. 函数式编程的兴衰(Composing Software 1)
  8. 渗透测试教程(基础篇)-3
  9. 【2021ACM-ICPC亚洲区域赛济南站】C、D、J、K四题超详细题解
  10. 极速FLV合并器——合并FLV文件的好软件
  11. 【PhpSpreadsheet】实现excel冻结列和行(即左右滚动时指定列和行固定不动)
  12. android 车载app怎么开发,Android开发智能车载App(1)---android控件及属性介绍
  13. Scala知识点21---高阶方法
  14. 三菱PLC编程-MOV指令
  15. c语言程序的上标怎么打出来,c上标2下标5怎么算
  16. 2021年编程列入高考_什么是2021年最佳的后端编程语言?
  17. 解决Vue中重复点击相同路由控制台报错问题
  18. Android 图像处理软件
  19. 【Java 解析全国地址】Java 利用正则表达式完美解析全国省市区地址
  20. macOS制作系统启动盘教程

热门文章

  1. 漫画:什么是Linux管道
  2. python控制机器人走8字_爱,死亡和机器人 第十四集 齐马蓝 中文字幕(Python处理utf8文件获取想要的内容)...
  3. python rgb转换为gray
  4. 引用计数法的原理和优缺点
  5. 从零学习Nginx配置文件,呕心沥血w字长文
  6. 【计算机网络】网页相关基础知识(万维网,HTTP,动态网页)
  7. U-Boot启动过程完全分析(转)
  8. 使用python爬取招聘网站数据
  9. 企查查接口full的实现`
  10. uni-app生成分享图片( 使用 Painter 生成分享海报)