SpingMVC执行流程
SpingMVC的常用组件
- DispatcherServlet
- HandlerMapping
- HandlerExecution
- HandlerAdapter
- ViewResolver
工作流程
- 用户发送请求,由前置控制器DispatcherServlet接受请求并拦截请求。
- DispatcherServlet调用HandlerMapping处理器映射,HandlerMapping根据URL查找Handler。
- HandlerExecution表示具体的Handler,查找URL对应的控制器,然后将解析后的信息传递给DispatcherServlet,如解析控制器映射等。
- DispatcherServlet 会根据 处理器执行链 中的处理器,找到能够执行该处理器的处理器适配器(HandlerAdaptor) --注,处理器适配器有多个
- HandlerAdaptor调用对应的具体的Controller
- Controller 将处理结果及要跳转的视图封装到一个对象 ModelAndView 中并将其返回给处理器适配器 (HandlerAdaptor)
- 然后HandlerAdaptor将 ModelAndView 交给 DispatcherServlet
- DispatcherServlet调用视图解析器ViewResolver,将视图名称封装为视图对象,然后将其返回给DispatcherServlet。
- DispatcherServlet 调用视图对象,让 (View) 进行渲染(将模型数据填充至视图中),形成响应对象 (HttpResponse)
- 前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。