SpringMVC小结

来源:互联网 发布:健身器材什么牌子 知乎 编辑:程序博客网 时间:2024/06/14 03:47

SpringMVC流程

Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传等功能。

SpringMVC流程

  • (1) Http请求:客户端请求提交到DispatcherServlet。
  • (2) 寻找处理器:由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller。
  • (3) 调用处理器:DispatcherServlet将请求提交到Controller。
  • (4)(5)调用业务处理和返回结果:Controller调用业务逻辑处理后,返回ModelAndView。
  • (6)(7)处理视图映射并返回模型: DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。
  • (8)Http响应:视图负责将结果显示到客户端。

核心组件

1、Control

SpringMVC的Control主要由HandlerMappingHandlerAdapters两个组件组成。

  • HandlerMapping
    • 负责映射用户的URL和对应的处理器类。
    • 一般是在控制器上添加注解,配置请求路径。
  • HandlerAdapter
    • 帮助自定义各种Handler。

2,Model

  • ModelAndView
    • 是连接业务逻辑层和View展现层的桥梁;
    • 也就是Handler与View的桥梁;
    • 会持有一个ModelMap对象和一个View对象。
  • ModelMap
    • 在Handler中将模板中需要的对象存在这个Map中;
    • 然后传递到View对应的ViewResolvers中。

3,View

  • ViewResolver
    • ViewResolver接口定义了resolverViewName方法,根据viewName创建合适的模板引擎渲染最终的页面。

使用SpringMVC的好处

  • 清晰的角色划分:控制器(controller)、验证器(validator)、命令对象(command obect)、表单对象(form object)、模型对象(model object)、Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、试图解析器(view resoler)等等。每一个角色都可以由一个专门的对象来实现。

  • 强大而直接的配置方式:将框架类和应用程序累都能作为JavaBean配置,支持跨多个context的引用,例如,在web控制器中对业务对象和验证器validator)的引用。

  • 可适配、非侵入:可以根据不同的应用场景,选择何事的控制器子类(simple型、command型、from型、wizard型、multi-action型或者自定义),而不是一个单一控制器(比如Action/ActionForm)继承。

  • 可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。

  • 可定制的绑定和验证:比如将类型不匹配作为应用级的验证错误,这可以保证错误的值。再比如本地化的日期和数字绑定等等。在其他某些框架中,你只能使用字符串表单对象,需要手动解析它并转换到业务对象。

  • 可定制的handler mapping和view resolution:Spring提供从最简单的URL映射,到复杂的、专用的定制策略。与某些web MVC框架强制开发人员使用单一特定技术相比,Spring显得更加灵活。

  • 灵活的model转换:在Springweb框架中,使用基于Map的键/值对来达到轻易的与各种视图技术集成。

原创粉丝点击