SprigMVC的运行流程

SprigMVC的运行流程

发送一次请求的流程图
在这里插入图片描述

首先准备一个Contorller类,写上一个hello方法,定义好他的请求路径,在浏览器上请求他的路径

@RestController
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/hello")
    public String hello(){
        return "success";
    }
}

在这里插入图片描述
上图为请求路径后,他的返回值,说明请求没有错,执行成功


以下来看看他的请求的运行过程(debug方式:对应上图步骤)

1、前端控制器(DispatcherServlet)收到请求,调用doDispatch()进行处理
先在DispatcherServlet类中的doDispatch()打上断点
在这里插入图片描述
2-3、根据HandlerMapping中保存的请求映射信息找到,处理当前请求的,处理执行链(包含了拦截器,请求地址方法)
->debug往下走到1016行,会看到如图(hello()和两个拦截器
在这里插入图片描述
4、根据当前处理器找到它的HandlerAdapter(适配器)
->适配器模式
->debug往下走到1023行在这里插入图片描述
5、拦截器的preHandle先执行
->debug往下走到1035行
在这里插入图片描述
6、适配器执行目标方法
->debug往下走到1040行
->执行目标方法并返回ModelAndView
在这里插入图片描述
7、拦截器的postHandle()执行
->debug往下走到1047行
在这里插入图片描述
8-9、处理结果(页面渲染流程)
->debug往下走到1057行,进入该方法
在这里插入图片描述
8.1 如果有异常使用异常解析器处理异常;处理完后还会返回ModeAndView
在这里插入图片描述
8.2 调用render() 进行页面渲染
在这里插入图片描述
8.3 执行拦截器的afterCompletion(异常(如果有)已经处理)
在这里插入图片描述


10-11、渲染视图,response响应freemarker、jsp、json、xml给用户,请求结束

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值