DispatcherServlet解析

image.png
image.png
image.png
image.png

1.initMultipartResolver(context); 处理文件上传

2.initLocaleResolver(context);处理国际化配置

3.initThemeResolver(context);主题配置

4.initHandlerMappings(context);

5.initHandlerAdapters(context);

(1)HttpRequestHandlerAdapter:Http请求适配器

(2)SimpleControllerHandlerAdapter:简单控制器处理器适配器,处理实现org.springframework.web.servlet.mvc.Controller接口的控制器

(3) AnnotationMethodHandlerAdapter:基于注解的实

6.initHandlerExceptionResolvers(context):异常处理,实现

7.initRequestToViewNameTranslator(context);加载逻辑视图解析

8.initViewResolvers(context);初始化视图解析器

9.initFlashMapManager(context);用户存储、检索、管理FlashMap实例

一个真实的处理流程

(1)绑定请求参数到当前线程

image.png

(2)委托给doService进一步处理

    1.checkMultipart。如果是文件上传则转换request请求为DefaultMultipartHttpServletRequest

2.获取对应的handle

image.png

2.根据Hadler找到对应的HadlerAdapter
image.png

3.缓存处理,Last-Modified机制,只要实现LastModified接口即可

image.png

4.拦截器的处理
image.png
image.png

5.真正的逻辑处理

image.png

SimpleControllerHandlerAdapter中的处理,最终调用的是你实现了org.springframework.web.servlet.mvc.AbstractController#handleRequest的接口

image.png

6.拦截器的postHandle处理
image.png

7.根据视图跳转页面

image.png
image.png

(3)请求结束恢复线程至原始状态

(4)请求处理后发布时间通知

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,592评论 1 92
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,374评论 11 349
  • 3.1、DispatcherServlet作用 DispatcherServlet是前端控制器设计模式的实现,提供...
    秋名山车神_f776阅读 2,975评论 0 0
  • 看著你的背影 踩著你印的步伐 我再重疊我的腳印 走在你熟悉的步道 我第一次來到的地方 兩個人 在一起 相處自在 沒...
    羽熐阅读 218评论 1 2