首页 > 编程语言 > 详细

SpringMVC处理过程

时间:2015-03-01 01:40:08      阅读:368      评论:0      收藏:0      [点我收藏+]

关于SpringMVC的工作流程我引用其官方文档上的一幅截图:技术分享

上面这幅图从宏观上粗略的介绍了SpringMVC的整个工作流程,简洁明了。

下面我从代码的角度去感受一下:

技术分享

由于,我们在web.xml中声明了一个DispatcherServlet,那么,tomcat启动的时候就会初始化它。

我们知道,Servlet的初始化方法是init(),就从这里入手,看看它初始化都干了些什么

技术分享

技术分享

技术分享

一、初始化

在HttpServletBean中有一个init方法

技术分享

FrameworkServlet类中重写了initServletBean()方法

技术分享

FrameworkServlet中的initWebApplicationContext()方法

技术分享

Dispatcher类中重写onRefresh()方法

技术分享

至此,我们看到DispatcherServlet初始化的时候顺带初始化了一堆组件,什么视图解析器、处理器映射之类的。

二、处理请求

因为DispatcherServlet是继承HttpServlet的,所以处理请求时会调用doGet或者doPost方法

在FrameworkServlet类中重写了doGet和doPost方法

技术分享

FrameworkServlet中processRequest方法是这样的

技术分享

它调用了doService方法,接下来,好戏开始了

DispatcherServlet重写了doService()方法

技术分享


至此,请求处理完成

总结一下处理过程:

  1. 绑定资源到请求

  2. 检查是否文件上传

  3. 查找HandlerMappping获得HandlerExecutionChain

  4. 依次调用与处理器关联的所有拦截器的preHandle方法

  5. 调用处理器方法

  6. 依次调用与处理器关联的所有拦截器的postHandle方法

  7. 渲染视图

  8. 依次调用与处理器关联的所有拦截器的afterCompleting方法



本文出自 “十里稻花香” 博客,请务必保留此出处http://5880861.blog.51cto.com/5870861/1616032

SpringMVC处理过程

原文:http://5880861.blog.51cto.com/5870861/1616032

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!