JAVA开发 - Spring MVC学习

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处理请求流程

  1. 首先用户发送请求-》前端控制器,根据请求信息(如URL)决定页面控制器。
  2. 页面控制器收到了请求之后,进行功能处理,然后返回一个ModelAndView.
  3. 前端控制器收回控制权,根据返回的逻辑视图进行渲染。
  4. 前端控制器将响应返回给用户。

Spring MVC核心流程

  1. 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;

  2. DispatcherServlet——>HandlerMapping, HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;

  3. DispatcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;

  4. HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);

  5. ModelAndView的逻辑视图名——> ViewResolver, ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;

  6. View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;

  7. 返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。
    这部分内容来自:开涛博客

主要是最近在做,所以一边参考一边实践来尝试写一下。后面写一些比较实践性的内容。

你可能感兴趣的:(java,spring,mvc)