第一步:发起请求到DispatcherServlet(前端控制器)
第二步:前端控制器请求HandlerMapping(处理器映射器)查找Handler
第三步:HandlerMapping(处理器映射器)向前端控制器返回Handler
第四步:前端控制器调用HandlerAdapter(处理器适配器)去执行Handler
第五步:HandlerAdapter(处理器适配器)去执行Handler
第六步:Handler执行完给HandlerAdapter返回ModelAndView,ModelAndView是SpringMVC框架的一个底层对象,包括Model 和 View
第七步:HandlerAapter 向 DispatcherServlet 返回 ModelAndView
第八步:DispatcherServlet请求ViewResolver(视图解析器)进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
第九步:ViewResolver 向 DispatcherServlet 返回View
第十步:DispatcherServlet 进行视图渲染,视图渲染就是将模型数据(在ModelAndView对象中)填充到 request 域
第十一步:DispatcherServlet 向用户响应结果
中间涉及重要的组件包括:
1、DispatcherServlet(前端控制器)
作用:接收请求,响应结果,相当于一个转发器,减少其他组件之间的耦合度
2、HandlerMapping(处理器映射器)
作用:根据请求的url查找 Handler
3、Handler (处理器)
4、HandlerAdapter(处理器适配器)
作用:按照特定的规则(HandlerAdapter 要求的规则)执行Handler
注意:编写 Handler时要按照 HandlerAdapter 的要求去做,这样适配器才可以正确执行Handler
5、ViewResolver(视图解析器)
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
6、View(视图)
View是一个接口,实现类支持不同的View类型(jsp、pdf....)
之中只有 Handler 和 View 是需要程序员开发的