上一篇深入浅出Spring(四) Spring实例分析的博文中,咱们已经可以了解Spring框架的运行原理和实现过程,接下来咱们继续讲解Spring的一个延伸产品——Spring MVC
1、Spring MVC简介
在开始演示Spring之前,首先来介绍一下Sprig MVC。Spring MVC是一个基于Model2的MVC框架,它围绕DispatcherServlet这个核心类开展,DispatcherServlet是Spring MVC的负责截获客户端请求,组织不同的组件进行请求的处理,对处理的结果进行响应处理。整体实现框架图如下图所示:
2、Spring MVC分析
大致了解Spring MVC之后,我们做一个简单Spring MVC的实例分析,参考实例已在文章末尾给出链接地址。分析主要从如下几个方面进行:
A、启用框架
启用Spring MVC与Struts1相似,就是一个简单的Servlet。通过客户端发送Http请求,web应用服务器接受并判断是否匹配Spring MVC核心类DispatcherServlet的请求路径,如果匹配则转发给DispatcherServlet进行处理。具体的web.xml文件配置参考给出的参考实例。对应上图的如下部分:
这一部分是Servlet运行过程,与Spring MVC框架本身无关,仅仅是将请求转发到了Spring MVC的核心类,如果有疑惑请参考之前的文章初识Servlets对Servlet运行过程进行了解。
B、框架执行
Spring MVC框架的执行比较复杂,这里简单给大家介绍一下,主要分为如下两步:
1)、DispatcherServelt 接受到Http请求之后,根据这个请求信息以及HandleMapping的配置找到处理请求的处理器Handler。
2)、找到Handler之后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。
这里介绍的有点抽象,简单理解就是根据URL地址和这个URL与具体实现类的映射关系(HandleMapping)找到这个实现类(Handler)。具体实现调用的过程是通过使用适配器(HandlerAdapter)对具体实现类(Handler)进行封装,然后调用再统一调用。对应上图的如下部分:
映射的配置(HandleMapping)方式具体实现主要有两种方式一种是配置文件(具体参考实例代码),另一种是注解实现(具体参考实例代码)。
C、框架反馈
Spring MVC框架最终可以反馈给客户端的响应消息的类型非常丰富,可以是一个普通的HTML页面,一个XML或JSON串,也可以是一张图片或一个PDF文档等不同的媒体形式。这里简单介绍一下反馈消息的流程,具体如下;
1)、Handler处理完成之后,会返回给DispatcherServlet一个ModelAndView
2)、DispatcherServlet通过ViewResolver中的相关配置,将ModelAndView包含的视图逻辑名解析成真实的视图对象View
3)、接下来,DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染并发送到客户端。
这个过程具体对应为上图的如下部分:
以上部分理解起来比较简单与Struts框架基本雷同,这里我们就不做多余的介绍了。
到此关于Spring MVC框架的相关内容,我们就先介绍这么多,以后有时间,我再慢慢给大家介绍。建议大家对比之前的Struts学习,分析两者的不同点和相似之处,这样我们理解和使用就会变得更加灵活。
参考实例代码下载链接:
springMVC参考实例