zoukankan      html  css  js  c++  java
  • springMVC执行流程及原理

    spring的MVC执行原理

    1.spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求 进行真正的处理工作。
    2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
    3.DispatcherServlet请请求提交到目标Controller
    4.Controller进行业务逻辑处理后,会返回一个ModelAndView
    5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
    6.视图对象负责渲染返回给客户端

    1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑

    3.AOP的很好支持,方便面向切面编程。

    5.Spring DI机制降低了业务对象替换的复杂性。

    7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

    SpringMVC执行流程

     

    1. 用户发起请求到前端控制器(Controller)
    2. 前端控制器没有处理业务逻辑的能力,需要找到具体的模型对象处理(Handler),到处理器映射器(HandlerMapping)中查找Handler对象(Model)。
    3. HandlerMapping返回执行链,包含了2部分内容: ① Handler对象、② 拦截器数组
    4. 前端处理器通过处理器适配器包装后执行Handler对象。
    5. 处理业务逻辑。
    6. Handler处理完业务逻辑,返回ModelAndView对象,其中view是视图名称,不是真正的视图对象。
    7. 将ModelAndView返回给前端控制器。
    8. 视图解析器(ViewResolver)返回真正的视图对象(View)。
    9. (此时前端控制器中既有视图又有Model对象数据)前端控制器根据模型数据和视图对象,进行视图渲染。
    10. 返回渲染后的视图(html/json/xml)返回。
    11. 给用户产生响应。
  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/web424/p/6808426.html
Copyright © 2011-2022 走看看