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拦截器)对象,通过这种策略模式,很容易添加新的映射策略;
- DispatcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;
- HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);
- ModelAndView的逻辑视图名——> ViewResolver, ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;
- View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;
- 返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。
这部分内容来自:开涛博客
主要是最近在做,所以一边参考一边实践来尝试写一下。后面写一些比较实践性的内容。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-10 18:24:00