首页 > 代码库 > spring实战笔记6---springMVC的请求过程

spring实战笔记6---springMVC的请求过程

之前有一次在面试当中被问到了这个问题,当时说得不是很清楚,有些细节的地方想不起来了,所以在这里从新回顾和总结一下SpringMVC的起步,请求的执行过程。


在SpringMVC当中,跟请求(Request)有关系的有以下几个部分

  • DispatcherServlet
  • HandlerMapping
  • Controller
  • ViewResolver
  • View
其实我要做的就是用几个剪头把上边列表中的五个部分连起来,这样就可以清晰的看出来请求是怎样走的了。

首先请求从浏览器发送出来到了服务器,我用的是Tomcat,通过在web.xml中配置的servlet与路径的映射,把请求发送到了DispatcherServlet上,该servlet是tomcat到SpringMVC的一个过度,当DispatcherServlet接收到请求之后,它就会通过HandlerMapping以及请求url来找到相应的Controller,Controller是我们通过注解,在服务启动的时候直接自动装配到spring应用上下文当中的对象,当请求发送到Controller之后,通过匹配url(@RequestMapping)来找到相应的方法来处理请求,在请求被处理之后,被匹配的方法需要返回一个逻辑视图的名称,可以理解为对请求的响应,那么后来这个逻辑视图名称返回给谁了呢,这个具体SpringMVC是怎么处理的我没有太细的研究,我只是知道最后我们自己配置的视图解析器(ViewResolver)接收到了这个逻辑视图名称,通过我们在配置时候设定前后缀,找到响应的文件多种情况下为jsp文件(也就是以上列表中的View视图)。

请求经过以上这一番处理最后响应给浏览器一个html页面。上边的描述可能会有一些绕,不好理解 ,我找了一张图片来说明这个过程



这张图片再加上我的描述应该可以清楚的描述出SpringMVC接收到请求的这么一个过程。

spring实战笔记6---springMVC的请求过程