1.1Spring MVC基础(1)

Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)模式实现,它能够帮你构建像Spring框架那样灵活和松耦合的Web应用程序。这儿将简单介绍Spring MVC的基础知识。

本节内容:

  • 映射请求到Spring控制器
  • 透明的绑定表单参数
  • 检验表单提交

今天讲 映射请求到Spring控制器


先让我们看下请求是如何从客户端发起,经过Spring MVC中的组件,最终再返回的客户端的。看图1:
1.1Spring MVC基础(1)
1、离开浏览器时带着请求信息到达DispatcherServlet。
Spring MVC所有的请求都会通过一个前端控制器(front controller)Servlet,前端控制器是常用的Web应用程序模式,在这里一个单实例的Servlet将请求委托给应用程序的其他组件来执行实际的处理。在Spring MVC中DispatcherServlet就是前端控制器。

2、DispatcherServlet会通过查询处理器映射器(handler mapping)来确定下一步去哪里(向哪个controller发起请求)。

3、到了controller后会卸下用户数据并且等待处理器处理这个信息,处理完成后会返回一些信息(这些信息被称为Model)并且对其进行格式化,一般为HTML。控制器最后再将这些数据打包,并且标出用于渲染出的视图名,接下来将会请求连同模型和视图名发送回DispatcherServlet。

4、DispatcherServlet会通过返回的视图名查询真正的视图,这儿会用到视图解析器(view resolver)。

5、将逻辑视图名匹配一个真正的视图实现。

6、在这个地方交付模型数据,视图将模型数据渲染出来,这个会通过响应对象传递给客户端。

由此看来,Spring MVC的核心就是DispatcherServlet,它会第一个接收请求,然后再路由到其他组件。Spring MVC程序启动时会创建两个应用上下文,一个是DispatcherServlet启动时创建的,它会加载配置文件和配置类中所声明bean。另一个是由ContextLoaderListener创建的。

参考资料《Spring实战》第四版。