spring mvc的工作流程

MVC即模型-视图-控制器

(1)模型:模型持有所有的数据、状态和程序逻辑;模型独立于视图和控制器。
一个模型提供多个不同的视图表现形式,当一个模型创建新的视图也无须重写模型。一旦模型的数据发生变化,模型将通知有关的视图,每个视图相应地刷新自己。
(2)视图:用来呈现模型。视图通常直接从模型中取得它需要显示的状态与数据。对于相同的信息可以有多个不同的显示形式或视图。
(3)控制器:位于视图和模型中间,负责接受用户的输入,将输入进行解析并反馈给模型,通常一个视图具有一个控制器。spring mvc的工作流程

SpringMVC

Spring为展现层提供了一个优秀的web框架——Spring MVC。它基于MVC的设计理念(模型-视图-控制器),此外,它采用了松 散耦合可插拔组件结构,比其它MVC框架更具扩展性和灵活性。让我们能非常简单的设计出干净的Web层和薄薄的Web层,并能够简单的进行web层单元测试。
SpringMVC提供:
前端控制器DispatcherServlet(DispatcherServlet是spring项目的入口)
请求处理映射器(Handler Mapping)
处理适配器(Handler Adapter)
视图解析器(View Resolver)进行视图管理
动作处理器Controller接口(包含ModelAndView,以及处理请求响应对象request和response),配置灵活,支持文件上传,数据简单转化等强大功能

spring mvc的工作流程

  1. 发起:使用者从客户端发送url请求(request)到和核心控制器(dispatcherServlet)
  2. 调用查找:核心控制器接收到请求,调用请求处理映射器(handlermapping)请求找到hander
  3. 具体查找:handlermapping对url进行解析、并判断并找到将其交给哪一个具体处理器(controller)处理
  4. 映射返回:handermapping并将请求映射为一个handlerExecutionchain对象。包括处理器对象(页面控制器) 、多个处理器拦截器对象(如果有则生成)一并返回给DispatcherServlet
  5. 调用:Dispacherservlet调用HandlerAdapter处理器适配器
  6. 执行:HandlerAdapter经过适配调用 具体实现其对应接口的处理器(Controller,也叫后端控制8器)
  7. 返回:Controller执行完成返回ModelAndView给handlerAdapter
  8. 解析:dispatcherServlet请求视图解析器(View Resolver)来对视图进行解析。根据逻辑视图名解析成真正的视图jsp
  9. 返回:viewResolver向dispatcherServlet返回view
  10. 渲染:dispatcherServlet进行视图渲染。将模型数据填充到request域中
  11. 响应:dispatcherServlet向用户层响应结果
    图示如下:spring mvc的工作流程