Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构
1.什么SpringMVC
Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一个模块。SpringMVC和Spring无需通过中间整合层进行整合。
SpringMVC是一个基于mvc的web框架。
2.mvc在b/s系统下的应用
(1)用户发起request请求至控制器(Controller)
控制接收用户请求的数据,委托给模型进行处理。
(2)控制器通过模型(Model)处理数据并得到处理结果
模型通常是指业务逻辑
(3)模型处理结果返回给控制器
(4)控制器将模型数据在视图(View)中展示
web中模型无法将数据直接在视图上显示,需要通过控制器完成。如果在C/S应用中模型是可以将数据在视图中展示的。
(5)控制器将视图response响应给用户
通过视图展示给用户要的数据或处理结果。
3.SpringMVC框架
3.1架构流程
(1)用户发请求至前端控制器(DispatcherServlet)
(2)DispatcherServlet接收到请求调用HandlerMapping处理器映射器
(3)处理器映射器根据请求url找到具体的处理器(Handler,可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
(4)DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
(5)执行处理器(Controller,也叫后端控制器)
(6)Controller执行完后返回ModelAndView
(7)HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet
(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器
(9)ViewResolver解析后返回具体View
(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
(11)DispatcherServlet响应用户
3.2组件说明
(1)前端控制器DispatcherServlet(不需要程序员开发)
作用:接收请求、响应结果,相当于转发器,中央处理器。
有了DispatcherServlet可以减少其它组件之间的耦合度。
(2)处理器映射器HandlerMapping(不需要程序员开发)
作用:根据请求的url查找Handler
(3)处理器适配器HandlerAdapter
作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler
(4)处理器Handler(需要程序员开发)
注意:编写Handler时按照HandlerAdapter的要求去做,注意适配器才可以去正确执行Handler。
(5)视图解析器Viewresolver(不需要程序员开发)
作用:进行谁解析,根据逻辑视图名解析成真正的视图(View)
(6)视图View(需要程序员开发jsp)
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf....)
转自http://www.cnblogs.com/Joanna-Yan/p/6985816.html