• springMVC 流程


    springMVC流程控制springMVC流程控制

    SpringMVC流程

    1. web.xml 中配置 org.springframework.web.servlet.DispatcherServlet 这一步其实和spring mvc没有关系,可理解为一个普通的servlet的配置

    2. 客户端请求抵达前端控制器【又称为中央控制器】DispatcherServlet

    3. DispatcherServlet根据请求路径【path】去请求处理器映射器HandlerMappering,【HandlerMappering是在spring ioc容器加载时创建的,不了解的可以查看文章spring ioc & wb 宿主,创建时会遍历所有bean,把含有RequestMapping注解的方法和其value值建立映射关系】,所以现在可以根据path直接找到对应的handler【即controller中的某个标有RequestMapping注解的方法】,把hander和对应的HanderInterceptor【如果有】一起作为一个HandlerExecutionChain返回

    4. 根据HandlerExecutionChain中的hander的类型,查到合适的HanderAdapter去处理【HanderAdapter也是在springioc容器加载时创建的】,用到了适配器模式,方便后续扩展

    5. 根据合适的HandlerAdapter去执行handler【即controller中带有RequestMapping的注解的方法】

    6. Handler执行完后给处理器适配器HandlerAdapter返回ModelAndView,同样handlerAdapter把ModelAndView返回给前端控制器DispatcherServlet

    7. 前端控制器请求最后调用processDispatchResult针对返回的结果ModelAndView进行处理,也就是调用视图解析器(ViewResolver)去进行视图解析,如果此时Hander返回的不是ModelAndView【API接口返回JSON数据时Handler一般返回的是一个实体对象而不是ModelAndView,那么ModelAndView就是Null】,如果ModelAndView是Null,则此时处理流程处理就已经完成了

    8. 如果ModelAndView不为Null,则视图解析器ViewResolver根据ModelAndView向前端控制器返回View【真正的物理视图】

    9. 前端控制器对视图进行渲染,调用其Render方法开始解析视图

    10. 前端控制器向用户响应结果

    总结

    springMVC的流程比较复杂,我们可以把其拆分成几个具体的组件逐个学习,比如 前端控制器(DispatcherServlet)、处理器映射器(HandlerMapping)、处理器(Handler)、处理器适配器(HandlerAdapter)、视图解析器(ViewResovler)。

    后续我们也将针对这些组件逐个进行讲解……………

    微信公众号:宋坤明
    如果您觉得对您有所帮助,记得转发点赞哦
    如有问题或建议,请公众号留言或者直接微信联系我
    下面的是我的公众号二维码图片,欢迎关注我。

    图注:宋坤明公众号图注:宋坤明公众号

  • 相关阅读:
    四,iptables详解(4):iptables匹配条件总结之一
    三,iptables详解(3):iptables规则管理
    二,iptables详解(2):iptables实际操作之规则查询
    一,Iptables详解(1):iptables概念
    运维安全之Linux网络安全(iptables)
    【577】U-Net相关
    【576】Python遍历文件夹内所有文件
    【575】连续卷积层(神经网络中的通道 channel)
    【574】KDE与正态分布
    点云投影为深度图
  • 原文地址:https://www.cnblogs.com/skm-blog/p/9160656.html
Copyright © 2020-2023  润新知