图解:
大致执行流程:
- 用户发起请求,至【前端控制器】DispatcherServlet
- DispatcherServlet根据收到请求信息,调用【处理器映射器】HandlerMapping(一个接口,看其实现类)
- 【处理器映射器】根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet
- DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作
- 执行处理器Handler(Controller,也叫页面控制器)。
- Handler执行完成返回ModelAndView
- HandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServlet
- DispatcherServlet将ModelAndView传给ViewReslover视图解析器
- ViewReslover解析后返回具体View
- DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)
- DispatcherServlet响应用户
流程涉及到设计模式:责任链、适配器、策略等