湖南智能网站建设网络推广求职招聘交流群
SpringMVC处理一个请求的流程是怎样的?
- 一、处理流程
- 二、流程图
- 三、额外扩展(可不看)
一、处理流程
- Tomcat接收到一个请求后,会交给DispatcherServlet进行处理
- DispatcherServlet会根据请求的path找到对应的Handler
- Handler就是一个加了@RequestMapping的方法,然后就利用反射来执行该方法
- 在执行方法之前会解析方法参数,比如解析@RequestParam、@RequestHeader、@PathVariable等注解
- 解析这些注解就是从请求中获取相对应的数据,比如请求头、请求parameters,然后把数据传给对应的参数
- 有了参数后就开始执行方法
- 执行方法后就会得到方法的返回值,SpringMVC会对返回值进行解析
- 如果方法上加了@ResponseBody,那么就把返回值直接返回给浏览器
- 在这个过程中可能需要把一个对象转成JSON字符串才能返回给浏览器
- 如果方法上没有加@ResponseBody,那么就会进行视图解析,然后把解析之后的html数据返回给浏览器
注意:
- HttpMessageConverter就是负责用来把方法返回值写入到Response中的,像MappingJackson2HttpMessageConverter就可