当前位置: 首页 > news >正文

124、SpringMVC处理一个请求的流程是怎样的?

SpringMVC处理一个请求的流程是怎样的?

    • 一、处理流程
    • 二、流程图
    • 三、额外扩展(可不看)

一、处理流程

  • Tomcat接收到一个请求后,会交给DispatcherServlet进行处理
  • DispatcherServlet会根据请求的path找到对应的Handler
  • Handler就是一个加了@RequestMapping的方法,然后就利用反射来执行该方法
  • 在执行方法之前会解析方法参数,比如解析@RequestParam、@RequestHeader、@PathVariable等注解
  • 解析这些注解就是从请求中获取相对应的数据,比如请求头、请求parameters,然后把数据传给对应的参数
  • 有了参数后就开始执行方法
  • 执行方法后就会得到方法的返回值,SpringMVC会对返回值进行解析
  • 如果方法上加了@ResponseBody,那么就把返回值直接返回给浏览器
  • 在这个过程中可能需要把一个对象转成JSON字符串才能返回给浏览器
  • 如果方法上没有加@ResponseBody,那么就会进行视图解析,然后把解析之后的html数据返回给浏览器

注意:

  • HttpMessageConverter就是负责用来把方法返回值写入到Response中的,像MappingJackson2HttpMessageConverter就可
http://www.lryc.cn/news/127647.html

相关文章:

  • 低成本高收益,五金店小程序的秘密武器
  • C语言宏定义详解
  • SwiftUI 动画进阶:实现行星绕圆周轨道运动
  • 物理试题-空气净化器
  • Es、kibana安装教程-ES(二)
  • leetcode 917.仅仅反转字母
  • 有没有推荐的golang的练手项目?
  • springBoot的日志文件
  • Linux学习之iptables的nat表
  • 【数据结构】 ArrayList简介与实战
  • 您的网站不应该只提供一套通用 API
  • vue tree禁用和多选变为单选
  • ES6新特性。对象、数组新增方法
  • request发送http请求
  • leaflet实现MARK指向的方向随机
  • 如何使用Python编写小游戏?
  • 【Leetcode】84.柱状图中最大的矩形(Hard)
  • Arraylist集合
  • https的原理和方案
  • VTK 判断一个 点 是否在一个模型 stl 内部 vtk 点是否在内部 表面 寻找最近点
  • 【数据结构OJ题】链表的回文结构
  • Nginx常见的三个漏洞
  • 爬虫逆向实战(十六)--某建筑市场平台
  • 用Python做一个滑雪小游戏
  • EXCEL按列查找,最终返回该列所需查询序列所对应的值,VLOOKUP函数
  • java编译报错,get方法报错
  • 可以降低CPU负载的网络传输技术——LSO
  • [管理与领导-25]:IT基层管理者 - 团队管理 - 如何留人, 如何留住关键人才
  • 【Redis】Redis 的学习教程(二)之 Jedis
  • VB+SQL银行设备管理系统设计与实现