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

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

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

一、处理流程

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

注意:

  • HttpMessageConverter就是负责用来把方法返回值写入到Response中的,像MappingJackson2HttpMessageConverter就可

你可能感兴趣的:(spring,springmvc,后端,java,前端控制器,tomcat,Handler)