SpringMVC系列十三: SpringMVC执行流程 - 源码分析

在这里插入图片描述

执行流程图

在这里插入图片描述

实验设计

1.新建com.zzw.web.debug.HelloHandler

@Controller
public class HelloHandler {

    //编写方法, 响应请求, 返回ModelAndView
    @RequestMapping(value = "/debug/springmvc")
    public ModelAndView hello(HttpServletRequest request, HttpServletResponse response) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("ok");//对应到 /WEB-INF/pages/ok.jsp
        modelAndView.addObject("name", "老韩");//在model中放入了数据
        return modelAndView;
    }
}

2.新建web路径/WEB-INF/ok.jsp

<head>
    <title>ok页面</title>
</head>
<body>
<h1>进入到ok页面</h1>
</body>

3.测试
在这里插入图片描述
3.调整ok.jsp, 再次测试

<body>
<h1>进入到ok页面</h1>
name - ${requestScope.name}
</body>

在这里插入图片描述

前端控制器分发请求

在这里插入图片描述

地址栏输入: http://localhost:8088/springmvc/debug/springmvc
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

❀❀Spring容器结构剖析❀❀

这里就体现了SpringMVC前端控制器和容器的关系

在这里插入图片描述

分发请求

在这里插入图片描述

处理器映射器

在这里插入图片描述
在这里插入图片描述

getHandler()

在这里插入图片描述

拿到目标方法

在这里插入图片描述

处理器适配器

在这里插入图片描述

根据Handler拿到适配器, 不同的适配器对应不同的handler

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

因为是浏览器地址栏请求, 所以是GET请求

在这里插入图片描述

反射调用handler

在这里插入图片描述

进入

在这里插入图片描述

进入

在这里插入图片描述
在这里插入图片描述

进入

在这里插入图片描述
在这里插入图片描述

调用目标方法

直接放行, 在目标方法打个断点

在这里插入图片描述

对modelAndView估值

在这里插入图片描述

不停地往下走, 往下走N步

在这里插入图片描述

mav就是我们目标方法的ModelAndView

在这里插入图片描述

继续往下走, 回到DisPatcherServlet

在这里插入图片描述

调用视图解析器

在这里插入图片描述

往下走

在这里插入图片描述

进入

在这里插入图片描述
在这里插入图片描述

进入

在这里插入图片描述

在这里插入图片描述

进入, 前端控制器调用某个视图解析器返回

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

渲染视图

在这里插入图片描述

下一步

在这里插入图片描述

进入

在这里插入图片描述

下一步

在这里插入图片描述

在这里插入图片描述

进入Step Into, 出来 Step out, 再进入Step Into. 拿到RequestDispatcher

在这里插入图片描述

请求转发

在这里插入图片描述

作业布置

1.把前面我们学过的SpringMVC异常处理相关代码和案例, 自己写一遍. - 一定要自己写一遍, 否则没有印象, 理解不会深入
2.简述SpringMVC执行流程, 并画出示意图
3.把我们Debug过的SpringMVC执行流程代码, 自己也走一下, 加深理解(不用每一条语句都debug, 主要是梳理流程)

在这里插入图片描述
下一讲, 我们学习springboot初步入门

  • 22
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~ 小团子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值