当浏览器发送一个请求时,先访问到Controller控制层。控制层会调用Service层的业务逻辑,业务层通过dao层处理完业务后返回信息给控制层。控制层把返回信息传给Model模型层,View视图层将模型层返回的数据生成HTML,显示到浏览器。Controller负责控制调度,View负责展现,Model是两者连接的纽带。
SpringMVC 由 核心组件DispatcherServlet(前端控制器)调度
DispatcherServlet前端控制器可以调度Controller组件,通过Controller组件再去调度Service和Repositroy组件。另外前端控制器还可以调度ViewResolve和HandlerMapping(形成一个路径交由Controller去管理,例:@RequestMapping("/alpha"))。
当浏览器发送一个请求时,先访问到组件前端控制器DispatcherServlet,前端控制器调用Controller。控制层将处理完的信息打包给Model返回给前端控制器。前端控制器再把Model的信息传给View template视图层 通过模板引擎 将模型层返回的数据生成动态的HTML,显示到浏览器。
模板引擎:
——主要作用:生成动态的HTML
Thymeleaf是目前最流行的模板引擎之一。
模板引擎通过 模板文件(网页结构和可被Model提换的表达式)+Model返回的信息动态生成HTML代码。
MVC的整个流程:
Http
请求到
DispatcherServlet
(1) 客户端请求提交到 DispatcherServlet。
HandlerMapping
寻找处理器
(2) 由 DispatcherServlet 控制器查询一个或多个 HandlerMapping,找到处理请求的
Controller。
调用处理器
Controller
(3) DispatcherServlet 将请求提交到 Controller。
Controller
调用业务逻辑处理后,返回
ModelAndView
(4)(5)调用业务处理和返回结果:Controller 调用业务逻辑处理后,返回 ModelAndView。
DispatcherServlet
查询
ModelAndView
(6)(7)处理视图映射并返回模型: DispatcherServlet 查询一个或多个 ViewResoler 视图解析器,
找到 ModelAndView 指定的视图。
ModelAndView
反馈浏览器
HTTP
(8) Http 响应:视图负责将结果显示到客户端。