开发环境
基于:IntelliJ IDEA
、Maven构建工具
、JDK1.8
、SpringBoot 2.3.4
、Spring4.3.28
编写。
官人如需使用 IDEA 请阅读教程:IntelliJ IDEA
官人如需使用 Maven 请阅读教程:Maven 构建工具的下载与安装
更多干货
请参考:《穿越 Java 之 语法基础篇》 系列文章
请参考:《穿越 Java 之 Web基础篇 》系列文章
请参考:《穿越 Java 之 开发必备框架篇 》 系列文章
请阅读:《穿越 Java 之 SpringBoot框架篇》系列文章
请阅读:《穿越 Java 之 SpringCloud微服务架构篇》 系列文章
原理
解读:
-
Http 请求到 DispatcherServlet
-
(1) 客户端请求提交到 DispatcherServlet。
HandlerMapping 寻找处理器 -
(2) 由 DispatcherServlet 控制器查询一个或多个 HandlerMapping,找到处理请求的
Controller。
调用处理器 Controller -
(3) DispatcherServlet 将请求提交到 Controller。
Controller 调用业务逻辑处理后,返回 ModelAndView -
(4)(5)调用业务处理和返回结果:Controller 调用业务逻辑处理后,返回 ModelAndView。
DispatcherServlet 查询 ModelAndView扫描二维码关注公众号,回复: 12687551 查看本文章 -
(6)(7)处理视图映射并返回模型: DispatcherServlet 查询一个或多个 ViewResoler 视图解析器,
找到 ModelAndView 指定的视图。
ModelAndView 反馈浏览器 HTTP -
(8) Http 响应:视图负责将结果显示到客户端
组件
- DispatcherServlet在TomCat容器中创建时会调用自己的生命周期方法,创建Spring容器,并将Spring容器封装到Application域对象中,在容器启动时初始化九大组件
1. initMultipartResolver(context); 解决文件上传的组件
2. initLocaleResolver(context); 国际化解析组件
3. initThemeResolver(context); 皮肤解析组件
4. initHandlerMappings(context); 处理映射器,根据url地址找到后台 处理器
5. initHandlerAdapters(context); 处理器适配器
6. initHandlerExceptionResolvers(context); 处理器的异常解析器
7. initRequestToViewNameTranslator(context); 如果没有视图返回的情况下,根据请求来解析视图名
8. initViewResolvers(context); 视图解析器,负责根据逻辑视图名称,结合数据,渲染视图
9. initFlashMapManager(context); 重定向传值的组件