1、SpringMVC简介
SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象的生命周期,为简化日常开发,提供了很大便利。
SpringMVC提供了前端控制器DispatcherServlet;处理器映射(Handler Mapping)和处理器适配器(Handler Adapter),视图解析器(View Resolver)进行视图管理;动作处理器Controller接口(包含ModelAndView,以及处理请求响应对象request和response),配置灵活,支持文件上传,数据简单转化等强大功能。
2、工作流程图
3、工作原理
1.客户端发送请求,携带url地址;
2-3.前端控制器Dispatcher Servlet接收到请求,调用处理器映射Handler Mapping找到对应的处理器,生成并返回handler对象;
4.前端控制器Dispatcher Servlet调用处理器适配器Handler Adapter;
5-7.Handler Adapter经过适配,调用相应的适配器执行handler对象斌返回结果给Handler Adapter,再返回给前端控制器Dispatcher Servlet,结果包括数据结构和视图对象;
8-9.前端控制器Dispatcher Servlet调用视图解析器View Resolver将携带的数据结构和视图对象进行解析,解析完成后响应给Dispatcher Servlet;
10.核心控制器将结果返回给客户端。
4、适配器的作用
SpringMVC涉及的映射器负责将前端请求的url映射到配置的处理器,视图解析器将最终的结果进行解析,但中间为什么要经过一层适配器呢,为什么不经映射器找到controller后直接执行返回呢?
那是因为SpringMVC为业务处理器提供了多种接口实现(例如实现了Controller接口),而适配器就是用来根据处理器实现了什么接口,最终选择与已经注册好的不同类型的Handler Adapter进行匹配,并最终执行,例如,SimpleControllerHandlerAdapter是支持实现了controller接口的控制器,如果自己写的控制器实现了controller接口,那么SimpleControllerHandlerAdapter就会去执行自己写的控制器中的具体方法来完成请求。