mvc源码初读

mvc请求流程

1、DispatcherServlet继承体系

在这里插入图片描述

2、请求调用流程

首先调用的是FrameworkServlet#service方法

在这里插入图片描述

然后在FrameworkServlet#doGet中调用了FrameworkServlet#processRequest方法

在这里插入图片描述

在FrameworkServlet#processRequest中又调用了FrameworkServlet#doService(FrameworkServlet#doService是一个接口它的实现在DispatcherServlet中)

在这里插入图片描述

最终请求交给了DispatcherServlet#doService来处理

在这里插入图片描述

在这里插入图片描述

在DispatcherServlet#doDispatch方法中

1)getHandler()方法获取HandlerExecutionChain处理器执行链

2)getHandlerAdapter()通过handler找到对应的处理器适配器

3)由适配器的handle()方法执行处理器,返回ModelAndView视图对象

4)processDispatchResult()完成页面跳转

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

getHandler方法细节

DispatcherServlet#getHandler

handlerMappings包含BeanNameUrlHandlerMapping,RequestMappingHandlerMapping

1)BeanNameUrlHandlerMapping处理xml配置开发

2)RequestMappingHandlerMapping处理注解开发

在这里插入图片描述

AbstractHandlerMapping#getHandler

在这里插入图片描述

AbstractHandlerMethodMapping#getHandlerInternal

根据request中携带的url从handlerMapping中获取handler(url与handler的映射关系在容器初始化时被解析到handlerMapping中)

在这里插入图片描述

getHandlerAdapter方法细节

DispatcherServlet#getHandlerAdapte

在这里插入图片描述

AbstractHandlerMethodAdapter#supports

在这里插入图片描述

RequestMappingHandlerAdapter#supportsInternal

在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值