15、SpringMVC之常用组件及执行流程

这篇具有很好参考价值的文章主要介绍了15、SpringMVC之常用组件及执行流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

15.1、常用组件

15.1.1、 DispatcherServlet

DispatcherServlet 是前端控制器,由框架提供,不需要工程师开发;

作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求。

15.1.2、HandlerMapping

HandlerMapping 是处理器映射器,由框架提供,不需要工程师开发;

作用:根据请求的 url、method 等信息去查找 Handler(即控制器方法)。

15.1.3、Handler

Handler 是处理器(即控制器方法),需要工程师开发

作用:对匹配的用户请求进行具体处理。

15.1.4、HandlerAdapter

HandlerAdapter 是处理器适配器,由框架提供,不需要工程师开发;

作用:通过 HandlerAdapter 来调用处理器(即控制器方法)。

15.1.5、ViewResolver

ViewResolver 是视图解析器,由框架提供,不需要工程师开发;

作用:进行视图解析,得到相应的视图,例如:ThymeleafView、InternalResourceView、RedirectView。

15.1.6、View

View 是视图,,需要工程师开发

作用:将共享域中的数据通过页面展示给用户。

15.2、执行流程

  • 用户向服务器发送请求,请求被 SpringMVC 的前端控制器 DispatcherServlet 捕获;

  • DispatcherServlet 对请求 URL 进行解析,得到 URI ,判断请求 URI 对应的映射是否存在;

    • 如果请求 URI 对应的映射不存在:

      • 再判断是否配置了 mvc:default-servlet-handler :

        • 如果没配置,则控制台日志显示找不到请求对应的目标资源,客户端展示404错误;

        • 如果有配置,则访问目标资源(一般为静态资源,如:JS,CSS,HTML);若目标资源不存在,客户端也会展示404错误。

    • 如果请求 URI 对应的映射存在,则执行以下流程:

      • 根据该 URI ,调用 HandlerMapping 获得该 Handler 配置的所有相关的对象(包括Handler对象以及对应的拦截器),
        最后以 HandlerExecutionChain (处理器执行链对象)的形式返回;

      • DispatcherServlet 根据获得的 Handler ,选择一个合适的 HandlerAdapter ;

      • 如果成功获得了 HandlerAdapter ,此时将开始执行对应拦截器的 preHandler() 方法【正向】;

      • 提取 Request (请求)中的数据,填充到 Handler 的入参,开始执行 Handler(控制器方法)对用户请求进行具体处理;
        在填充 Handler 的入参过程中,根据控制器方法的配置,Spring将帮忙做一些额外的工作:

        • HttpMessageConverter(常用): 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息

        • 数据转换(常用):对请求消息进行数据转换,如将 String 转换成 Integer、Double 等

        • 数据格式化(少用):对请求消息进行数据格式化,如将字符串转换成格式化数字或格式化日期等

        • 数据验证(少用):验证数据的有效性(长度、格式等),验证结果存储到 BindingResult 或 Error 中

      • Handler 执行完成后,向 DispatcherServlet 返回一个 ModelAndView 对象;
        (此时会判断 Handler 执行是否存在异常,如果存在异常,则执行 HandlerExceptionResolver 进行异常处理)

      • 如果 Handler 执行不存在异常,则执行对应拦截器的 postHandle() 方法【逆向】,存在异常则跳过该步骤;

      • 根据返回的ModelAndView 选择一个适合的 ViewResolver 进行视图解析,根据 Model 和 View 来渲染视图;

      • 渲染视图完毕后,执行对应拦截器的 afterCompletion() 方法【逆向】;

      • 将渲染结果返回给客户端。

15、SpringMVC之常用组件及执行流程文章来源地址https://www.toymoban.com/news/detail-747323.html

到了这里,关于15、SpringMVC之常用组件及执行流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringMVC的执行流程

    过去的开发中,视图阶段(老旧JSP等) 1.首先用户发送请求到前端控制器DispatcherServlet(这是一个调度中心) 2.前端控制器DispatcherServlet收到请求后调用处理器映射器HandlerMapping 3.处理器映射器HandlerMapping找到具体的处理器,可查找xml配置或注解配置,生成处理器对象及处理器拦截器

    2024年02月19日
    浏览(39)
  • SpringMVC_执行流程

    DispatcherServlet :前端控制器,用于对请求和响应进行统一处理 HandlerMapping :处理器映射器,根据 url/method可以去找到具体的 Handler(Controller) Handler :具体处理器(程序员,以后开发这一部分需要) HandlerAdapter :处理器适配器,进行处理器方法的执行 ViewResolver :处理视图相关的

    2024年02月09日
    浏览(41)
  • springMVC执行流程详解

    springMVC执行流程 主要由model层,view层和controller层组成。 1.1,jsp模型 主要是结构简单,开发这个小型项目的效率高,主要是由这个jsp和javaBean组成。但是jsp同时负责了controller层和view层,因此所有的代码都写在这个jsp里面,导致这个代码的重用性很低,维护不方便,因此这种

    2024年02月16日
    浏览(40)
  • 第12章:SpringMVC执行流程

    1.SpringMVC 常用组件 ①、DispatcherServlet: 前端控制器 ,框架提供。 作用:统一处理请求和响应,整个流程的控制中心,由它调用其他组件处理用户的请求 ②、HandlerMapping: 处理器映射器 ,框架提供 作用:根据请求的url、method等信息查找Handler即控制器方法 ③、Handler: 处理器,

    2024年02月08日
    浏览(47)
  • SpringMVC的执行流程与源码分析

    通过深入分析Spring MVC的源码,我们可以更好地理解其工作原理和内部机制。这有助于我们更好地使用该框架进行Web应用程序的开发,并解决实际开发中遇到的问题。同时,对于学习和研究Spring MVC框架的人来说,阅读源码并进行分析也是一种重要的学习和提升手段。 Spring MV

    2024年01月21日
    浏览(43)
  • 【精选】SpringMVC简介及其执行流程,参数获取方式

    MVC模型 MVC全称Model View Controller,是一种设计创建Web应用程序的模式。这三个单词分别代表Web应用程序的三个部分: Model(模型):指数据模型。用于存储数据以及处理用户请求的业务逻辑。在Web应用中,JavaBean对象,业务模型等都属于Model。 View(视图):用于展示模型中的数

    2024年02月05日
    浏览(43)
  • 【SpringMVC】集成Web、MVC执行流程、数据响应、数据交互

    SpringMVC确实很麻烦,零碎的点太多 在Spring的学习中,我们知道在IOC容器中获取Bean时要通过获取上下文的方式 (new ClasspathXmlApplicationContext),这样我想在不同的地方获取Bean我得重新加载配置文件,应用上下文的对象也被创建了多次, 造成所谓的“硬编码”问题。 如何解决?

    2023年04月27日
    浏览(37)
  • springmvc常用的组件

    以下的Handler也叫Controller。 作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求 作用:根据请求的url、method等信息查找Handler,即控制器方法 作用:在DispatcherServlet的控制下Handler对具体的用户请求进行处理 作用:通过HandlerAdapter对处理器(控

    2024年01月18日
    浏览(96)
  • netty的常用类以及执行流程

    给ServerBootstrap配置两个EventLoopGroup,一个建立连接,一个处理网络io。 EventLoopGroup给EventLoop分配线程。 在 Netty 中,EventLoop 通过不断轮询 Selector 来检测 Channel 上发生的事件,当 Channel 上的事件到达时,EventLoop 会将事件传入 相应的Channel 的成员变量 ChannelPipeline 中,经过所有C

    2024年01月25日
    浏览(32)
  • SpringMVC概述、SpringMVC的工作流程、创建SpringMVC的项目

    🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaweb 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 web程序工作流程:web程序通过浏览器访问页面,前端页面使用异步提交的方式发送请求到后端服务器,后端服务器采用表现层、业务层、数据层的三层架构

    2024年02月14日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包