第12章:SpringMVC执行流程

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

一、SpringMVC执行流程

1.SpringMVC常用组件

①、DispatcherServlet:前端控制器,框架提供。

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

②、HandlerMapping:处理器映射器,框架提供

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

③、Handler:处理器,工程师开发

作用:在DispatcherServlet的控制下对Handler对具体的用户请求进行处理

④、HandlerAdapter:处理器适配器,框架提供

作用:通过HandlerApater对处理器(控制器方法)进行执行

⑤、ViewResolver:视图解析器,框架提供。

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

⑥、View:视图

作用:将模型的数据通过页面展现给用户

2.SpringMVC的执行流程

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

2.DispatcherServlet对请求URL进行解析,得到请求资源标识符URI,判断请求URI对应的映射。

不存在:

  • 判断是否配置了mvc:default-servlet-handler,如果没有配置,404
  • 配置后(静态资源:js,css,html)找不到404

存在

  • 根据URI,调用HandlerMapping获得该Handler配置的所有对象(包括Handler对象以及Handler对象的拦截器)最后以HandlerExecutionChain执行链对象的形式返回。
  • DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。
  • 如果成功获得HandlerAdapter,此时将开始执行拦截器的preHandler(…)方法【正向】
  • 提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)方法,处理请求。在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
    • a) HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息

    • b) 数据转换:对请求消息进行数据转换。如String转换成Integer、Double等

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

    • d) 数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中文章来源地址https://www.toymoban.com/news/detail-475223.html

  • Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象。
  • 此时将开始执行拦截器的postHandle(…)方法【逆向】。
  • 根据返回的ModelAndView(此时会判断是否存在异常:如果存在异常,则执行HandlerExceptionResolver进行异常处理)选择一个适合的ViewResolver进行视图解析,根据Model和View,来渲染视图。
  • 渲染视图完毕执行拦截器的afterCompletion(…)方法【逆向】。
  • 将渲染结果返回给客户端。

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

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

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

相关文章

  • 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)
  • SpringMVC的执行流程与源码分析

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

    2024年01月21日
    浏览(43)
  • 15、SpringMVC之常用组件及执行流程

    DispatcherServlet 是前端控制器,由框架提供,不需要工程师开发; 作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求。 HandlerMapping 是处理器映射器,由框架提供,不需要工程师开发; 作用:根据请求的 url、method 等信息去查找 Handler(即控制

    2024年02月05日
    浏览(61)
  • 【精选】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的核心组件以及通过源码了解其执行流程

    MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,Controller(控制器)将View(视图、用户客户端)与Model(javaBean:封装数据)分开构成了MVC,今天我们浅聊一下SpringMVC的相关组件以及通过源码了解器执行流程 我们需要先在web.xml里面配置DispatcherServlet,现在我给出两种

    2024年02月09日
    浏览(39)
  • 【Android12】Monkey压力测试源码执行流程分析

    Monkey是Android提供的用于应用程序自动化测试、压力测试的测试工具。 其源码路径(Android12)位于 部署形式为Java Binary 通过Monkey,可以模拟用户的Touch(单指、多指、手势)、按键(key)事件等,检测应用程序发生的ANR、Crash事件,并收集相关Debug信息等。 例如测试应用com.packa

    2024年03月22日
    浏览(43)
  • 12、SpringMVC之拦截器

    创建名为spring_mvc_interceptor的新module,过程参考9.1节和9.5节 与自定义的过滤器一样,自定义的拦截器也要配置后才能生效; 过滤器是服务器中的组件,所以配置到 web.xml 中; 拦截器是 springmvc 中的组件,因此要配置到 springmvc 的配置文件中。 因为在配置拦截器时,没有指定要

    2024年02月05日
    浏览(47)
  • SpringMVC概述、SpringMVC的工作流程、创建SpringMVC的项目

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

    2024年02月14日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包