Spring MVC原理

典型Web应用程序中的MVC模式

MVC
(1)请求:将请求提交给服务器。在服务端,大多数框架都有一个调度程序(以servlet的形式)用来处理请求。
(2)调用:调度程序根据HTTP请求信息和Web应用程序配置将请求分派给适当的控制器。
(3)服务调用:控制器与服务层交互。
(4)填充模型:控制器使用从服务层获得的信息填充模型。
(5)创建视图:根据模型创建视图。
(6)响应:控制器将相应的视图返回给用户。

另外,在视图中,将会发生Ajax调用。例如,假设用户浏览网格中的数据。当用户单击下一页时,并不是刷新整个页面,而是发生了以下事件:

(a)请求:准备XMLHttpRequest并提交给服务器。调度程序将请求发送给相应的控制器。
(b)响应:控制器与服务层交互,响应数据将被格式化并发送到浏览器。此时并不涉及任何视图。浏览器接收数据并对现有视图进行部分更新。

Spring MVC框架模型

MVC
DispatcherServlet处于核心的位置,它负责协调和组织不同组件以完成请求处理并返回响应的工作。
DispatcherServlet就是Spring MVC的前端Servlet。
(1)整个过程始于客户端发出一个HTTP请求,Web应用服务器接收到这个请求。如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),则Web容器将该请求转交给DispatcherServlet处理。
(2)DispatcherServlet接收到这个请求后,将根据请求的信息(包括URL、HTTP方法、请求报文头、请求参数、Cookie等)及HandlerMapping的配置找到处理请求的处理器(Handler)。可将HandlerMapping看作路由控制器,将Handler看作目标主机。值得注意的是,在Spring MVC中并没有定义一个Handler接口,实际上,任何一个Object都可以成为请求处理器。
(3)当DispatcherServlet根据HandlerMapping得到对应当前请求的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。HandlerAdapter是Spring MVC的框架级接口,顾名思义,HandlerAdapter是一个适配器,它用统一的接口对各种Handler方法进行调用。
(4)处理器完成业务逻辑的处理后将返回一个ModelAndView给DispatcherServlet,ModelAndView包含了视图逻辑名和模型数据信息。
(5)ModelAndView中包含的是“逻辑视图名"而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑视图名到真正视图对象的解析工作。
(6)当得到真实的视图对象View后,DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染。
(7)最终客户端得到的响应消息可能是一个普通的HTML页面,页可能是一个XML或JSON串,甚至是一张图片或一个PDF文档等不同的媒体形式。

文章来源:
《精通Spring 4.x——企业应用开发实战》
《Spring 5 高级编程》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值