码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC处理过程

时间:2015-03-01 01:43:23      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:springmvc dispatcherservlet

关于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处理过程

标签:springmvc dispatcherservlet

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!