MVC设计模式
SpringMVC简介
Springmvc是Spring框架的一个模块,Spring和Springmvc无需中间整合层整合Springmvc是一个基于mvc的web框架
Spring MVC 原理
Spring 的模型-视图-控制器(MVC)框架是围绕一个 DispatcherServlet 来设计的,这个 Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。
Springmvc执行原理
(1) .用户发送请求 至 前端控制器(DispatcherServlet);
提示:DispatcherServlet的作用:接收请求,调用其它组件处理请求,响应结果,相当于转发器、中央
处理器,是整个流程控制的中心
(2) .前端控制器(DispatcherServlet)收到请求后调用处理器映射器(HandlerMapping)
处理器映射器(HandlerMapping)找到具体的Controller(可以根据xml配置、注解进行查找),并将
Controller返回给DispatcherServlet;
(3) .前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)。处理器适配器经过适配调用
具体的Controller;(Controller–> service --> Dao --> 数据库)
Controller执行完成后返回ModelAndView,
提示:Model(模型数据,即Controller处理的结果,Map) View(逻辑视图名,即负责展示结果的JSP页
面的名字)
处理器适配器(HandlerAdapter)将controller执行的结果(ModelAndView)返回给前端控制器
(DispatcherServlet);
(4) .前端控制器(DispatcherServlet)将执行的结果(ModelAndView)传给视图解析器(ViewReslover)
视图解析器(ViewReslover)根据View(逻辑视图名)解析后返回具体JSP页面
(5) .前端控制器(DispatcherServlet)根据Model对View进行渲染(即将模型数据填充至视图中);
前端控制器(DispatcherServlet)将填充了数据的网页响应给用户。
其中整个过程中需要开发人员编写的部分有Controller、Service、Dao、View;
面试题
描述 Spring MVC 处理流程及应用优势
答:
1、客户端发出一个 http 请求给 web 服务器,web 服务器对 http 请求进 行 解析,如
果匹配前端控制器(或分发器/DispatcherServlet)的请求映射路径, web 容器将请求
转交给 DispatcherServlet.
2、DipatcherServlet 接收到这个请求之后将根据请求的信息以及处理器映射 器
(HandlerMapping)的配置找到处理请求的处理器(Handler)。
3、由具体的处理器适配器(HandlerAdapter)对 Handler 进行具体的调用。
4 、 Handler 对 数 据 处 理 完 成 以 后 将 返 回 一 个 ModelAndView() 对 象 给
DispatcherServlet。
5、DispatcherSevlet 通过视图解析器(ViewResolver)将 ModelAndView()转 化
为真正的视图 View。
6、Dispatcher 通过 model 解析出 ModelAndView()中的参数进行解析最终展 现出完整的 view 并返回给客户端。