记一次HTTP请求实例(笔记)

闲来无事,分析一下页面发一次请求需要经过哪些类;

首先直接从过滤器开始说,ApplicationFilterChain,这个过滤器是tomacat下面的;

走过这个过滤器之后,就到了我们最核心的DispacherServlet这个调度器了;

到了DispacherServlet之后,这个请求首先会走的就是service这个方法;

这个主要就是交换下request,response的值;

这个时候service方法就是走的是 DispacherServlet的父类FrameworkServlet里面的service方法;

HttpMethod这个确定请求的是什么方法,这个请求的是GET,然后继续走的是FrameworkServlet的父类HttpServlet的doGet方法;

 然后由于父类没有doGet方法,就去子类FrameworkServlet找寻doGet方法,

processRequest(request,response)这个方法就是处理一些request的变量和方法;

 最主要的就是doService这个方法,这个方法会跳到DispacherServlet的doService(request,response);

这个方法里面最主要的就是doDispacher()这个方法了,

经过这个方法就是去RequestMappingInfo 这个类去匹配,检查此请求映射信息中的所有条件是否与提供的请求和返回匹配,得到请求的URL,返回RequestMappingInfo 这个对象;

然后到这个RequestMappingInfoHandlerMapping,然后到RequestMappingInfoHandlerMapping的addMatchingMappings方法

 把请求的URL转成对象,塞入集合,转到AbstractHandlerMethodMapping里面的lookupHandlerMethod方法,

 

 得到该URL映射的控制器以及方法;

然后到了DispacherServlet里面的doDispacher()方法;

然后就可以跳到URL对应的方法上了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值