SpringMVC帮助我们做了哪些事情?
SpringMVC的核心就是DispatcherServlet(可以理解为它的底层就是servlet)
DispatcherServlet是前置控制器,是SpringMVC的控制中心。
这个过程大概可以分为三个步骤:
- 1、映射
- 2、适配
- 3、解析
一、映射
首先,当我们发出一个请求,DispatcherServlet会拦截并解析请求,得到一个请求的控制器,例如对于http://localhost:8080/hello这个请求,他会获得hello这个控制器
得到请求的控制器后,DispatcherServlet会调用HandlerMapping处理器映射,根据url查找对应的处理器,即寻找xml文件中的名字相同的处理器,然后处理信息
例如对于http://localhost:8080/hello这个请求:
然后通过HandlerExecution将解析后的信息再传回给DispatcherServlet
注:走完这一步后,DispatcherServlet知道了要去找哪一个Controller,然后进行适配的步骤
二、适配
DispatcherServlet拿到信息后会调用HandlerAdapter处理器适配器去寻找对应的Controller接口
Controller控制器会调用业务层完成业务功能,然后把相关返回给前端的数据以及返回到哪个页面等信息封装,封装后放在一个ModelAndView中,并返回给HandlerAdapter
HandlerAdapter携带这些信息返回给DispatcherServlet
注 :此时DispatcherServlet携带了传给前端的数据,并且知道要去找哪一个页面
三、解析
DispatcherServlet 调用视图解析器View Resolver解析HandlerAdapter传来的数据,它会(1)获取ModelAndView中的数据;(2)解析数据并获得对应视图的名字信息;(3)根据这些信息拼接出对应的名字并找到对应的视图;(4)把ModelAndView中的数据渲染到视图中。
完成这些后,就能在页面上看到返回的数据了。