在写这篇博文之前,先简单说一下写这个系列博文的原因,说白了矫情一下,原因有二。
- 博主曾经写过一篇[SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载](http://blog.csdn.net/jiuqiyuliang/article/details/45132493)的文章,简单易懂,但是对于没有接触过SpringMVC框架的博友来说,还是有一定难度的。
- 并且在上篇博文中,有博友留言,希望:有时间把教程完善一下。有图为证:
当然,也非常感谢这位博友的关注和支持,下面我们开始今天的内容。
这篇博文,我们主要介绍什么是SpringMVC,以及重新解释一下什么是MVC,以及MVC的详细执行步骤。
什么是SpringMVC?
在介绍SpringMVC之前,我们先看一张非常熟悉的图:
相信看这篇文章的博友都听说或者使用过Spring,并且我之前的文章也详细的讲解了Spring的整体框架,以及IOC,AOP,Hibernate和Mybatis等框架,JMS等等,同样Spring自己也支持对DAO层的开发,甚至对于最后一个Web模块,我们也使用过Struts,以及JSP等等。
到底什么是SpringMVC:
1. 从上面的图中,Web模块第一个就是Spring Web MVC,其实SpringMVC是Spring框架的一个模块,我们可以从Spring的整体结构中看出来。
2. Springmvc和Struts1.x,2.x都属于表现层的框架,是基于mvc的web框架。
基于MVC的web框架,看上去挺高大上的,不用害怕,下面我们介绍一下什么是MVC。
什么是MVC?
在介绍Struts的时候,我们已经简单的介绍过MVC,当时理解的比较浅,这次我们深入的介绍一下MVC。
说白了,mvc就是一个设计模式,最简单的web界面开发,我们直接写一个jsp页面就完事了,但是现在将web端分成了三层,全名是Model View Controller,是模型(model)—视图(view)—控制器(controller)的缩写,目的是为了系统的框架,分层更加清晰,可扩展性更强,降低系统的耦合度。
既然MVC是一个设计模式,当然既可以在C/S(客户端服务器)模式下使用,也可以在B/S(浏览器服务器)模式下使用。下面我们介绍在B/S模式下的应用,如下所示:
下面我们再根据这张图详细的讲解一下MVC的执行步骤,以及各部分的作用:
MVC执行步骤
- 用户发起Request请求至控制器(Controller),控制器接收用户的请求,并将请求委托给模型进行处理。
- 控制器请求模型(Model),模型处理业务数据并得到处理结果,模型通常是指业务逻辑,包括Pojo、Service、Dao等三层
- 模型将处理结果返回给控制器
- 控制器将模型数据在视图(View)中展示
说明:web中模型无法将数据直接在视图上显示,需要通过控制器完成。如果在C/S应用中模型是可以将数据在视图中展示的。 - 控制器将视图响应结果,Response响应给用户,通过视图展示给用户数据或者处理结果。
MVC各部分的作用
我们知道了MVC的执行步骤,我们简单的总结一下MVC各部分的作用:
1. Controller的作用
封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。
2. Model的作用
处理业务数据,并返回处理结果
3. View的作用
渲染视图,并将数据或处理结果展示给用户
总结
这篇博文我们知道了,什么是SpringMVC,以及更加深入的介绍了MVC,相信大家对MVC有了深入的理解。
下篇博文,我们做一个SpringMVC的简单实例,敬请期待。