一、概述
学习之后,记下笔记,理清思路。
带着问题去思考:
springMVC接收到用户请求之后,如何工作?
springMVC核心组件有哪些?
哪些是程序员需要编写的部分?
二、SpringMVC工作流程
工作流程:
- 用户发送请求;
- DispatcherSerlvet(前端控制器) 接收请求,调用HandlerMapping;
- HandlerMapping(处理器映射器) 去查找处理器Handler(就是Controller),HandlerMapping 返回执行链HandlerExecutionChain(包括Handler对象、拦截器数组)给DispatcherSerlvet;
- DispatcherSerlvet调用HandlerAdapter(处理器适配器);
- HandlerAdapter去执行Handler;
- Handler返回ModelAndView给HandlerAdapter;
- HandlerAdapter返回ModelAndView给DispatcherSerlvet;
- DispatcherSerlvet调用ViewResolver(视图解析器)进行视图解析;
- ViewResolver返回视图对象;
- DispatcherSerlvet进行视图渲染
- 返回渲染后对象;
- 响应请求。
三、核心组件
-
前端控制器DispatcherSerlvet
控制中心,接收请求,转发请求,响应请求
-
处理器映射器 HandlerMapping
查找处理器Handler
-
处理器适配器 HandlerAdapter
执行处理器Handler
扫描二维码关注公众号,回复:
6277543 查看本文章
-
视图解析器 ViewResolver
解析ModelAndView
-
处理器Handler (需要工程师开发)
Controller
-
视图View (需要工程师开发jsp...)
前端页面
四、源码分析
-
IDEA创建SpringMVC项目
参考:https://www.cnblogs.com/chenlinghong/p/8339555.html
创建出现的问题:
1 | web.xml中出现“element servlet-name is not allow here”,导致系统启动失败 | |
2 |
创建一个简单的SpringMVC项目,只关注SpringMVC的工作流程。
-
调试源码