学习Spring MVC 首先要弄明白的的是关于Spring MVC 的请求流程 。(下面的流程图自己用Word文档画的,不好也就这样看)
具体流程不再用文字表述了,但这个请求流程图用到的组件有:
- 前端控制器 dispatcherServlet
- 处理映射器 HandlerMapping
- 处理适配器 HandlerAdapter
- 处理器 Handler
- 视图解析器 View Resolver
- 视图 View
各个组件功能的功能如下:
- 前端控制器 (DispatcherServlet)。其作用是接收用户请求,然后反馈结果。他的作用相当于一个转发器或者中央处理器,控制整个流程的执行,对各个组件进行统一调度,以降低组件之间的耦合性,有利于组件之间的拓展。
- 处理器映射器(HandlerMapping)。其作用是根据请求的URL路径,通过注解或者XML配置,寻找配置的处理器(Handler)信息。
- 处理器适配器(Handler)。其作用是根据映射器找到的处理器(Handler)信息,按照特定的规则执行相关的处理器(Handler)。
- 处理器(Handler)。其作用是执行相关的请求处理逻辑,并返回相应的数据和视图信息,将其封装到ModelAndView对象中。
- 视图解析器(View Resolver)。其作用是进行解析操作,通过ModelAndView 对象中的View信息将逻辑视图名解析成真正的视图View(如通过一个JSP路径返回一个真正的JSP页面)。
- 视图(View)。其本身是一个接口,实现类支持不同的View类型(JSP、FreeMarker、Excel 等)。
以上6个组件正真需要开发人员进行开发的是处理器(Handler)和视图(View)。要开发处理该请求的具体代码逻辑,以及最终展示给用户的界面。