Spring MVC概述

一.概述

Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet负责截获请求并将其分派给相应的处理器处理。
Spring MVC框架包括:
  • 注解驱动控制器
  • 请求及响应的信息处理
  • 视图解析
  • 本地化解析
  • 上传文件解析
  • 异常处理
  • 表单标签绑定
  • 。。。

二.体系结构

Spring MVC是基于Modle 2实现的技术框架,Modle 2是经典的MVC模型在web应用中的变体,这个改变主要源 于HTTP协议的无状态性。Modle 2的目的和MVC一样,也是利用处理器分离模型、视图和控制,达到不同技术层级间松散层耦合的效果,提高系统的灵活性、复用性和可维护性。在多数情况下,可以将Modle 2与MVC等同起来。
在利用Modle 2之前,我们把所有的展现逻辑和业务逻辑集中在一起,有时也称这种应用模式为Modle 1,Modle 1的主要缺点就是紧耦合、复用性差、维护成本高
由于Spring MVC是基于Modle 2实现的框架,所以它底层的机制也是MVC,如图:


三.处理请求整体过程

Spring MVC通过一个前端Servlet接收所有的请求,并将具体工作委托给其他组件进行处理,DispatherServlet就是Spring MVC的前端Servlet。

3.1 前台发送请求

整个过程始于客户端发出一个HTTP请求,Web应用服务器接收这个请求,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将该请求转交给DispatcherServlet处理。

3.2 获取处理器 - Handler

DispatcherServlet接收这个请求后,将根据
  • 请求的信息 - 包括URL、HTTP方法、请求报文头、请求参数、Cookie等
  • HandlerMapping的配置
找到处理该请求的处理器 - Handler。可将HandlerMapping看成路由控制器,将Handler看成目标主机。
值得注意的是:Spring MVC中并没有定义一个Handler接口,实际上任何一个Object都可以成为请求的处理器。

3.3 HandlerAdapter对Handler进行封装

得到Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler.
HandlerAdapter是Spring MVC的框架级接口,顾名思义,HandlerAdapter是一个适配器,它用统一的接口对各种Handler方法进行调用。

3.4 得到ModelAndView

处理器完成业务逻辑后将返回一个ModelAndView给DispatcherServlet,ModelAndView包含了视图逻辑名和模型数据信息。

3.5 得到视图对象View

ModelAndView中包含的是"逻辑视图名"而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑视图名到真实视图对象的解析工作。

3.6 视图渲染

当得到真实的视图对象View后,DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染。

3.7 返回响应信息

最终客户端得到的响应信息,可能是一个普通的HTML页面,也可能是一个XML或JSON串,甚至是一张图片或一个PDF文档等不同的媒体形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值