什么是 Spring MVC

  学习某一样东西之前,我们一定要大致知道这个东西是什么,能干什么,为什么要用它。

  Spring MVC 是一个开源平台,一个基于 Spring 的 MVC 框架,它支持基于 Java 开发 Web 应用程序。MVC 架构很利于开发灵活、低耦合的 Web 应用程序组件。

  M(Model)模型,应用程序的数据载体。通常是一些 POJO。

  V(View)视图,用于渲染一些模型的数据,一般是用来生成用户浏览器的可以解释的HTML。

  C(Controller)控制器,用于处理用户的请求并构建相应的模型,然后交给视图渲染。

  Spring MVC的优点:

    (1)使用简单;

    (2)能够很容易的开发出性能很好的程序;

    (3)灵活,易于扩展;

    (4)具有 Spring 的一些特性;

    (5)支持 REST 风格;

  Spring MVC的缺点:

    (1)很难脱离容器进行独立运行;

    (2)需要编写一些对应的 web.xml配置;

Spring MVC 请求流程

  

                     (Spring MVC 请求处理流程)

  上图流程涉及到的几个组件的功能说明:

    DispatcherServlet(前端控制器):接收用户请求并返回请求结果。它控制着整个执行流程,对各个组件进行调度,降低组件之间的耦合,就像是一个团队的组织人。

    HandlerMapping(处理器映射器):根据用户的请求 URL,根据 XML 配置或注解找到对应的处理器 Handler。

    HandlerAdapter(处理器适配器):根据映射器找到的 Handler 完成调用处理器中的方法。

    Handler(处理器):处理请求的主要逻辑,返回模型数据和视图。

    ViewResolver(视图解析器):解析具体的视图。通过 ModelAndView 中的 View 将逻辑视图名解析为真正的 视图。

  请求具体步骤如下:

    1:客户端起请求,请求会被前端控制器(DispatcherServlet)拦截

    2:前端控制器(DispatcherServlet)请求处理器映射器(HandlerMapping)查找Handler

    3:处理器映射器(HandlerMapping)根据配置找到相应Handler,可能包含多个Interceptor拦截器,返回给前端控制器

    4:前端控制器(DispatcherServlet)请求处理器适配器(HandlerAdapter)去执行相应的Handler

    5:适配器交由对应Handler处理器执行

    6:  Handler处理器执行完成后返回ModelAndView对象给处理器适配器

    7:处理器适配器接受Handler处理器的返回结果,并将该结果返回给前端控制器(DispatcherServlet)

    8:前端控制器(DispatcherServlet)接收处理器适配器返回的数据和视图信息,请求视图解析器,解析对应的视图

    9:视图解析器根据View信息匹配相应的视图结果,反回给前端控制器

     10:前端控制器接收具体视图,进行视图渲染,将Model数据填充到View视图中,生成最终视图

     11:前端控制器向客户端返回请求结果

转载于:https://www.cnblogs.com/dream-saddle/p/9280725.html

Spring MVC 入门(一)相关推荐

  1. Spring MVC 入门--Hello World

    Spring MVC 学习 Hello world 步骤 添加jar包 在web.xml文件中配置DispatcherServlet 添加Spring MVC的配饰文件 编写处理请求的处理器,并且标识 ...

  2. Spring MVC入门 —— 跟开涛学SpringMVC

    2014-05-14 23:22:27 第二章 Spring MVC入门 -- 跟开涛学SpringMVC  浏览(84979)|评论(12)   交流分类:Java|笔记分类: 跟开涛学Spring ...

  3. Spring MVC 入门示例讲解

    在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...

  4. 11月17日spring mvc入门培训

    上午学员们继续动手实践,下午开始讲解Spring MVC. 在WEB应用程序中要使用spring,首先想要与哪个类打交道?ApplicationContext!但是ApplicationContext ...

  5. Eclipse开发Spring MVC入门示例

    一 新建一个动态web工程,并导入包 如图: 二 Spring控制器类 创建一个Spring MVC的一个控制类,并处理请求,打印一句话'Spring MVC示例 ', 那我们先创建包com.tian ...

  6. Spring MVC 入门

    这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本<Spring in Action>, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 We ...

  7. Spring MVC入门示例教程--静态页面跳转

    以下示例显示如何使用Spring MVC Framework编写一个简单的基于Web的应用程序,它可以使用<mvc:resources>标记访问静态页面和动态页面.首先使用Eclipse ...

  8. Spring MVC入门示例教程--表单处理

    以下示例演示如何编写一个简单的基于Web的应用程序,它使用Spring Web MVC框架使用HTML表单. 首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework ...

  9. Spring MVC 入门笔记

    主要名词解释 DispatcherServlet 前端控制器  相当于一个转发器 入口: protected void doDispatch(HttpServletRequest request, H ...

  10. 【Spring MVC学习】spring mvc入门示例

    之前进公司就直接使用spring mvc做项目了,并没有系统学习过,后来再回头去总结的时候发现我只是在项目中会使用,但是有关spring mvc的配置,还有注解什么的想起来会感觉很混乱,趁着这几天不忙 ...

最新文章

  1. ELF文件的加载和动态链接过程
  2. Pytorch上采样函数 包括interpolate
  3. Django+Linux+Uwsgi+Nginx项目部署文档
  4. python批量识别图中文字自动命名_python实现批量命名照片
  5. c语言修改windows系统时间,c语言实现系统时间校正工具代码分享
  6. bb10系统支持java吗_黑莓BB10怎么样 BlackBerry 10系统好用吗?
  7. web项目上之深入理解Java国际化
  8. 【转】SQLite3简介及在.Net程序中的使用(自增列的创建)
  9. 一代神机落幕!苹果把iPhone 6 Plus列为过时产品,网友吵翻了...
  10. spring boot 实现发送邮箱验证码
  11. Winform 可取消的单选按钮(RadioButton)
  12. 机器学习实战 - 读书笔记(05) - Logistic回归
  13. css background背景拉伸
  14. A very hard mathematic problem HDU - 4282(二分)
  15. 风雨萧关道【电视专题片解说词】
  16. 阿里王坚:用“机器智能”取代“人工智能”概念
  17. 自我规范模版A要求2:展示数据列表 (无从表)和导出数据页面
  18. 斜杠'/' 和反斜杠'\'
  19. android edittext 美化,android EditText的美化
  20. 在gerrit上cherry pick多笔提交到一个仓库中

热门文章

  1. linux执行windows创建的脚本,如何在Windows 10上创建和运行Bash Shell脚本 | MOS86
  2. mysql5.7.17的linux安装,linux下mysql5.7.17最新稳定版本安装教程
  3. python生成树状图_python 生成 树状结构
  4. linux 查询 lib信息,怎么查看linux是否使用 libarchive
  5. 常见的 Error 和 Exception
  6. html两个盒子怎么左右对其,关于html:在同一行上左右对齐两个内联块
  7. 电脑知识:新电脑数据迁移解决方案,看完你就会了!
  8. Redis都有哪些监控指标,看完你就懂了!
  9. 北漂、海漂的你,每个月发薪资支付生活成本后还剩多少钱
  10. mysql开方_MySQL数学函数的实际用法