1、用户发出请求,前端控制器DispatcherServlet接收请求并拦截请求
2、调用处理器映射器,根据url匹配一个handler处理器。处理器映射器内部组装一个HandlerExecutionChain(处理器执行链)对象
( Handler:处理器对象+HandlerIntercepter:处理器拦截器)
3、处理器映射器把处理器执行链对象返回给DispatcherServlet
4、DispatcherServlet调用处理器适配器
5、处理器适配器去调用执行处理器Handler(Controller类)
6、执行完之后返回ModelAndView到处理器适配器
7、处理器适配器返回ModelAndView到前端控制器
8、前端控制器调用视图解析器进行视图解析
9、视图解析器解析后返回view到前端控制器
10、前端控制器对view进行渲染视图(将模型数据填充至视图中)
11、渲染的视图返回给客户端
前端控制器 DispatcherServlet:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。
处理器映射器 HandlerMapping:根据请求的URL来查找Handler
处理器适配器 HandlerAdapter:负责执行Handler
处理器 Handler:处理器,需要程序员开发
视图解析器 ViewResolver:进行视图的解析,根据视图逻辑名将ModelAndView解析成真正的视图(view)
视图View:View是一个接口, 它的实现类支持不同的视图类型,如jsp,freemarker,pdf等等