SpringMVC简介
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。
spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内 置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种 视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用 的视图,所以不会强迫您只使用
JSP 技术。
Spring的MVC框架主要由DispatcherServlet、HandlerMapping、HandlerAdapter、Handler/View Resolver、
View组成。
SpringMVC组件:
1)前端控制器--DispatcherServlet
DispatcherServlet是Spring MVC的心脏和灵魂, DispatcherServlet是Spring MVC的灵魂和心脏,
它负责接收HTTP请求并协调Spring MVC的各个组件完成请求处理的工作。和任何Servlet一样,
用户必须在web.xml中配置好DispatcherServlet,并且让其接受一 切HTTP请求。
2)处理器映射器--HandlerMapping
根据请求的URL查找Handler
3)处理器适配器--HandlerAdapter
定义去执行Handler的规则
4)处理器--Handler
也就是我们通常所说的Controller,这个需要按照HandlerAdapter的要求去做,
这样适配器才能正确执行Handler
5)视图解析器--View Resolver
进行视图解析,根据逻辑视图名返回真正的视图View
6)视图--View
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)
SpringMVC原理图
SprinvgMVC运行原理:
1)发起请求到前端控制器(DispatcherServlet)
2)前端控制器请求HandlerMapping查找 Handler
可以根据xml配置、注解进行查找
3)处理器映射器HandlerMapping向前端控制器返回Handler
4)前端控制器调用处理器适配器去执行Handler
5)处理器适配器去执行Handler
6)Handler执行完成给适配器返回ModelAndView
7)处理器适配器向前端控制器返回ModelAndView
ModelAndView是springmvc框架的一个底层对象,包括 Model和view
8)前端控制器请求视图解析器去进行视图解析
根据逻辑视图名解析成真正的视图(jsp)
9)视图解析器向前端控制器返回View
10)前端控制器进行视图渲染
视图渲染将模型数据(在ModelAndView对象中)填充到request域
11)前端控制器向用户响应结果