springmvc一个简单概括
近期因为工作原因,对很多基础知识进行了学习了下,发现好多都忘记。脑子中的记忆停留在这个技术如何用的基础上,而不是理论扎实。
今天对springmvc进行了系统的学习,同时将路程记录下,老话说的好好记性不如烂笔头,何况记性很差。
Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。正式名称“Spring Web MVC”来自其源模块(springwebmvc)的名称,但它通常称为“springmvc”。
一, springmvc的原理图
二,流程总结
- 客户端请求request到SpringMVC前端控制器(DispatcherServlet)
- 前端控制器(DispatcherServlet)去请求处理器映射器(HandlerMapping)
- 根据xml配置,
- 注解配置进行查找 - 处理器映射器(HandlerMapping)向前端控制器(DispatcherServlet)返回一个Handler
- 前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行Handler
- 处理器适配器(HandlerAdapter)去执行Handler
- 控制器(Handler)执行完成给处理器适配器返回 ModelAndView
- 处理器适配器(HandlerAdapter)向前端控制器(DispatcherServlet)返回ModelAndView
- 前端控制器(DispatcherServlet)请求视图解析器(View)去进行视图解析
- 根据逻辑视图名解析成真正的视图 - 视图解析器向前端控制器(DispatcherServlet)返回view
- 前端控制器(DispatcherServlet)进行视图渲染
- 视图渲染将模型数据(在ModelAndView对象中)填充到request 域中 - 向客户端返回一个response响应
三,重要的组件
- 前端控制器(DispatcherServlet)
作用: 接收请求,响应结果 - 处理器映射器(HandlerMapping)
作用: 根据请求的url查找Handler(处理器) - 处理器适配器(HandlerAdapter)
作用: 按照特定规则(HandlerAdapter要求的规则)去执行控制器(Handler) - 视图解析器(View resolver)
作用: 进行视图解析,根据逻辑视图名解析成真正的视图(View) - 视图View
View 是一个接口,实现类支持不同的View类型(jsp,freemarker,pdf,excel)