Spring MVC
事实上就是一种java实现的web mvc设计模式的请求驱动类型的轻量级Web框架,就是用了MVC的架构模式思想。把Web层解耦,这样基于请求驱动指的就是请求-响应模型。
前端控制器是DispatcherServlet, 应用控制事实上是两部分:处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理。页面控制器就是Controller接口。包括一些ModelAndView handleRequest (request, response)
的实现,就是POJO类。提供了灵活的数据燕珍。格式化和数据绑定。
Spring MVC用途
简单的Web层单元測试。灵活的URL到页面控制器映射,灵活数据验证格式化和数据绑定。
Spring MVC架构
MVC的这个框架是基于请求驱动的框架,也是用前端控制器模式,依据请求映射规则分发给响应的控制器来处理。
Spring MVC处理请求流程
- 首先用户发送请求-》前端控制器,依据请求信息(如URL)决定页面控制器。
- 页面控制器收到了请求之后,进行功能处理。然后返回一个ModelAndView.
- 前端控制器收回控制权。依据返回的逻辑视图进行渲染。
- 前端控制器将响应返回给用户。
Spring MVC核心流程
首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理。而是托付给其它的解析器进行处理,作为统一訪问点,进行全局的流程控制;
DispatcherServlet——>HandlerMapping, HandlerMapping将会把请求映射为HandlerExecutionChain对象(包括多个HandlerInterceptor拦截器)对象,通过这样的策略模式。非常easy加入新的映射策略。
DispatcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而非常easy支持非常多类型的处理器;
HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会依据适配的结果调用真正的处理器的功能处理方法,完毕功能处理;并返回一个ModelAndView对象(包括模型数据、逻辑视图名);
ModelAndView的逻辑视图名——> ViewResolver, ViewResolver将把逻辑视图名解析为详细的View,通过这样的策略模式,非常easy更换其它视图技术;
View——>渲染,View会依据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此非常easy支持其它视图技术;
返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户。到此一个流程结束。
这部分内容来自:开涛博客
主要是近期在做,所以一边參考一边实践来尝试写一下。后面写一些比較实践性的内容。