PS:本人是新手,所写的博客大部分都是转摘或者摘录,为的是整合别人优秀的博文,供自己学习!!
一、Spring MVC是什么?
Spring MVC是一种MVC框架。
M代表model,一般指DAO和service;V代表View,一般指jsp,html等;C代表controller,比如struts和springMVC 中的action与controller。
C存在的目的,就是为了保证M和V的一致性。当M发生改变时,C把新内容更新到V中。
MVC执行步骤
用户发起Request请求至控制器(Controller),控制器接收用户的请求,并将请求委托给模型进行处理。
- 控制器请求模型(Model),模型处理业务数据并得到处理结果,模型通常是指业务逻辑,包括Pojo、Service、Dao等三层
- 模型将处理结果返回给控制器
- 控制器将模型数据在视图(View)中展示
说明:web中模型无法将数据直接在视图上显示,需要通过控制器完成。如果在C/S应用中模型是可以将数据在视图中展示的。 - 控制器将视图响应结果,Response响应给用户,通过视图展示给用户数据或者处理结果。
二、Spring MVC的执行流程
1、发起请求到前端控制器(DispatcherServlet )
2、前端控制器请求处理器映射器HandlerMapping查找处理器Handler(可以根据xml、注解进行查找),并返回Handler给前端控制器
3、前端控制器DispatcherServlet 调用处理器适配器HandlerAdapter 执行Handler,处理器适配器HandlerAdapter 执行完Handler向向前端控制器返回ModelAndView
(ModelAndView 是SpringMvc的底层对象 包括model和view)
4、前端控制器请求视图解析器ViewResolver去解析视图,视图解析器ViewResolver解析完视图后(解析成真正的视图)向前端控制器返回view
5、前端控制器进行视图渲染,视图渲染将模型数据(模型数据在ModelAndView对象中)填充到request域,并向用户响应结果
HandlerAdapter:这个是用来定位具体方法上的
ViewResolver:这个是用来解析视图,并返回资源到前端用到