学完spring后,紧接着步入了springmvc的学习。学习完springmvc后就是整合spring、springmvc、mybatis。
学习springmvc之前我们先来看一下传统的MVC的设计模式:
1.用户想控制器(controller)发出请求。
2.控制器请求模型(model)进行业务处理,这些model包括Pojo,service,dao.
3.将调用模型得到的数据返回给controller.
4.controller根据返回的数据进行视图的渲染。
这里我们注意一下传统的b/s模型,是不能将模型中的数据直接推送到视图的。
了解了传统的mvc设计模式后,我们来看一下springmvc;
什么是spring mvc?
spring mvc是一个mvc的框架,是spring框架的一个模块。
那spring包括哪些模块呢?
我们今天说的spring mvc是指spring的web模块中的spring mvc。
首先我们来看一下spring的执行流程:
具体的流程:
1、用户发起请求,请求到DispatcherServlet前端控制器
DispatcherServlet(中央调度),负责request和response,负责调用处理器映射器查找Handler,负责调用处理器适配器执行Handler,有了前端控制器降低了各各组件之间的耦合性,系统扩展性提高。
2、DispatcherServlet前端控制器请求处理器映射器HandlerMapping查找Handler
根据用户请求的url,根据一定的规则去查找(比如:xml配置,注解)
3、HandlerMapping处理器映射器将Handler返回给前端控制器
4、DispatcherServlet前端控制器调用HandlerAdapter处理器适配器执行Handler
程序员编写的Handler是按照适配器要求的规则去执行Handler
5、HandlerAdapter处理器适配器执行Handler
适配器按照一定规则去执行Handler
6、Handler执行完成,返回ModelAndView
ModelAndView是springmvc的封装对象,将model和view封装在一起。
7、HandlerAdapter处理器适配器将ModelAndView返回给前端 控制器
8、前端控制器调用视图解析器,进行视图解析,解析完成给前端控制器返回View
View是springmvc的封装对象,是一个接口,实现类包括jspview,pdfview。。。。
9、前端控制器调用view进行视图渲染
将模型数据填充到view(将model数据填充到request)响应给用户
10、前端控制器响应给用户。