分析springmvc底层调用流程
2016-03-27 21:48
429 查看
因为DispatcherServlet继承了FrameworkServlet,而FrameworkServlet继承了HttpServletBean,而HttpServletBean继承了HttpServlet,所以本质上说,DispatcherServlet也是一个servlet。
因为springmvc实现了httpServlet所以需要先做如下配置来对请求进行拦截。
![](http://img.blog.csdn.net/20160327210225379)
一个请求过来之后,先看请求路径是否满足如上图图标出的规则。(注:此段配置在web.xml)
如果满足以上规则,则会执行doPost或者doGet方法。因为FrameworkServlet重写了doPost和doGet方法,如下:
![](http://img.blog.csdn.net/20160327213024359)
而在processRequest方法中调用了doService方法。如下图:
![](http://img.blog.csdn.net/20160327213247611)
(方法未结束,此处忽略部分代码)
在DispatcherServlet实现了doService抽象方法,并且在doService中做了一些准备工作后,调用了doDispatch方法,如下图:
![](http://img.blog.csdn.net/20160327213827291)
在doDispatch中调用了具体的我们实现的业务controller,并且返回了modelAndView对象。源码如下图:
![](http://img.blog.csdn.net/20160327214738099)
(方法未结束,此处忽略部分代码)
将返回的mv返回给用视图解析器处理后返回前端。
因为springmvc实现了httpServlet所以需要先做如下配置来对请求进行拦截。
一个请求过来之后,先看请求路径是否满足如上图图标出的规则。(注:此段配置在web.xml)
如果满足以上规则,则会执行doPost或者doGet方法。因为FrameworkServlet重写了doPost和doGet方法,如下:
而在processRequest方法中调用了doService方法。如下图:
(方法未结束,此处忽略部分代码)
在DispatcherServlet实现了doService抽象方法,并且在doService中做了一些准备工作后,调用了doDispatch方法,如下图:
在doDispatch中调用了具体的我们实现的业务controller,并且返回了modelAndView对象。源码如下图:
(方法未结束,此处忽略部分代码)
将返回的mv返回给用视图解析器处理后返回前端。
相关文章推荐
- java.util.Calendar简介
- 《Java程序设计》第4周学习总结
- Java语法01
- 深入理解JVM之一:Java内存区域
- 20145325张梓靖 《Java程序设计》第4周学习总结
- 20145127《java程序设计》第四周学习总结
- java.text.SimpleDateFormat使用介绍
- java图形界面异常处理的简单利用
- 20145109 《Java程序设计》第四周学习总结
- Java的几个同步辅助类
- Java基础--反射机制的知识点梳理
- Java笔记---部署 JavaWeb 项目到云服务器
- java 求解第n个丑数
- Java如何获取所查询的结果集的列数,并将每条记录打印出来
- JAVA常用集合框架用法详解基础篇一之Colletion接口
- 排序
- 理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc/datasource 的不同之处。
- Spring动态连接Mongo(mongo读写分离,连接不同副本集)
- Java中finalize方法用途何在?
- Java反射机制探究