• Spring MVC请求流程


    MVC框架

    MVC设计模式简单地说,就是将数据显示、流程控制和业务逻辑处理分离,使之相互独立。

    使用MVC框架就应该遵守MVC思想,MVC框架不赞成了浏览器直接访问Web应用的视图页面,用户的所有请求都只应向控制器发送,由控制器调用模型组件、视图组件向用户呈现数据。

    Model II模式基于MVC架构的设计模式,利用JSP页面、Servlet和JavaBean组件分工协作共同完成系统功能的所有任务。其中JSP负责数据显示逻辑任务,Servlet负责程序流程控制逻辑任务,JavaBean负责处理业务逻辑任务。

    SpringMVC框架

    SpringMVC框架本质上相当于servlet,提供了一个DispatcherServlet作为前端控制器来分派请求,同时提供灵活的配置处理程序映射、视图解析、语言环境和主题解析并支持文件上传。

    在SpringMVC框架中,Controller替代Servlet担负控制器的职能。Controller接收请求调用相应的Model进行处理,处理器完成业务处理后返回处理结果。Controller调用相应的View并对处理结果进行视图渲染,最终传送响应消息到客户端。

    SpringMVC请求流程

    (1)用户通过客户端向服务器发起一个request请求,此请求会被前端控制器(DispatcherServlet)所拦截。

    (2)前端控制器请求处理器映射器(handlerMapping)去查找Handler,可以依据XML配置或注解去查找。

    (3)处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成),并返回给前端控制器。

    (4)前端处理器请求处理器适配器(HandlerAdapter)去执行相应的Handler(常称为Controller)。

    (5)处理器适配器会调用并执行Handler处理器,这里的处理器指的是程序中编写的Controller类,也被称为后端控制器。在请求信息到达真正调用Handler的处理方法之前的这段时间内,Spring MVC还完成了很多工作。

    (6)Controller执行完毕后会返回给处理器适配器一个ModelAndView对象(Spring MVC底层对象),该对象中会包含View视图信息或者包含Model数据模型和View视图信息。

    (7)处理器适配器接收到Controller返回的ModelAndView后,将其返回给前端控制器。

    (8)前端控制器接收到ModelAndView后,选择一个合适的视图解析器(ViewResolver)对视图进行解析。

    (9)视图解析器解析后,会根据View视图信息匹配到相应的视图结果,反馈给前端控制器。

    (10)前端控制器接受到View视图后,进行视图渲染,将模型数据(在ModelAndView对象中)填充到request域。

    (11)前端控制器向用户相应结果。

             以上就是SpringMVC的整个请求处理流程,其中用到的组件有前端控制器(dispatcherServlet)、处理器映射器 (HandlerMapping)、处理器适配器(HandlerAdapter)、Handler处理器(Controller)、视图解析器(ViewResolver)、视图(View)。

    其中,DiapatcherServlet、 HandlerMapping、 HandlerAdapter 和ViewResolver对象的工作是在框架内部执行的,开发人员并不需要关心这些对象内部的实现过程,只需要配置DispatcherServlet,完成Handler处理器(Controller)中的业务处理,并在视图中展示相应信息即可。

  • 相关阅读:
    占位
    阳光服务平台-敏捷开发
    两种方法实现带验证码的用户登录
    红警大战JAVA简单版
    JPanel与JFrame的区别
    java中import详解
    敏捷开发
    GitHub:本地项目上传与团队协作
    从结缘计算机到未来规划
    (三)微信小程序首页的分类功能和搜索功能的实现笔记
  • 原文地址:https://www.cnblogs.com/kjitboy/p/12186699.html
Copyright © 2020-2023  润新知