栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Spring总结】SpringMVC执行流程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Spring总结】SpringMVC执行流程

SpringMVC的执行流程 初始化阶段:
    在Web容器第- -次用到DispatcherServlet的时候,会创建其对象并执行init方法init 方法内会创建Spring Web容器,并调用容器refresh方法refresh 过程中会创建并初始化SpringMVC中的重要组件,例如MultipartResolver, HandlerMapping,
    HandlerAdapter, HandlerExceptionResolver.ViewResolver等容器初始化后, 会将上一步初始化好的重要组件,赋值给DispatcherServlet的成员变量,留待后用

1、HandlerMapping:做请求映射的,根据你的请求路径找到一个控制器和对应的方法。(将浏览器的请求映射到控制器的方法上)

2、HandlerAdapter:调用和真正执行控制器的方法。如果在处理的过程中出现了异常交给HandlerExceptionResolver来处理异常。

3、ViewResolver:控制器方法执行完毕会将其结果封装为ModelAndView对象,ViewResovler将视图的字符串解析为视图对象。

4、视图对象进行页面渲染的工作。

MultipartResolver:不是必须的,文件上传的时候需要

匹配阶段:

​ 1.用户发送的请求统一 到达前端控制器 DispatcherServlet

    DispatcherServlet 遍历所有HandlerMapping ,找到与路径匹配的处理器
    ①HandlerMapping有多个,每个HandlerMapping会返回不同的处理器对象,谁先匹配,返回谁的处理器。其中能识别@RequestMapping的优先级最高
    ②对 应@RequestMapping的处理器是HandlerMethod,它包含了控制器对象和控制器方法信息
    ③其中路径 与处理器的映射关系在HandlerMapping初始化时就会建立好将 HandlerMethod连同匹配到的拦截器,生成调用链对象HandlerExecutionChain返回遍历HandlerAdapter 处理器适配器,找到能处理HandlerMethod的适配器对象,开始调用

执行阶段:
    执行拦截器preHandle由HandlerAdapter调用HandlerMethod
    ①调用 前处理不同类型的参数
    ②调用后处理不同类型的返回值第 2步没有异常
    ①返回 ModelAndView
    ②执行拦截 器postHandle方法
    ③解析视图, 得到View对象,进行视图渲染第2 步有异常,进入HandlerExceptionResolver异常处理流程最后都会执行拦截器的 afterCompletion方法如果控制器方法标注 了@ResponseBody注解,则在第2步,就会生成json结果,并标记ModelAndView已处理,这样就不会执行第3步的视图渲染

出现异常时,没有机会执行postHandle

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782191.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号