springMVC请求的步骤

1.用户向服务器发送请求,被Spring前端控制DispatcherServlet捕获,调用doService()方法
2.doService()方法调用doDispatcher()方法
3.遍历当前这个servlet所有注册的HandlerMapping,根据request获得此次请求的HandlerExecutionChain,如果没有找到,则返回404
4.遍历当前这个servlet所有注册的HandlerAdapter,根据当前这个HandlerExecutionChain找到合适的HandlerAdapter,如果没有,则抛出异常。
5.处理 header头里有last-modified的get方法
6.先获得该servlet对应的HandlerInterceptor,如果为空,则新建一个HandlerInterceptor数组。
7.遍历所有的HandlerInterceptor,当preHandle(拦截一个handler执行)返回false,则往回执行所有拦截器的afterCompletion,再退出拦截器链。(请求不继续往下传,直接沿着原来的链往回跑),直接返回空。
8.当preHandle全部返回true,顺序执行完所有拦截器。
9.HandlerAdapter开始调用handle方法处理当前request,返回一个ModelAndView
10.根据request设置默认的视图名称。
11.HandlerExecutionChain调用applyPostHandle()方法,逆序执行注册的拦截器
12.选择一个适合的ViewResolver结合Model和View渲染视图
13.渲染结果返回给客户端。

 

地址:https://segmentfault.com/a/1190000004472406

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值