好程序员Java学习路线分享SpringMVC之MVC概述,前言:目前Web开发的主流模式是MVC,Spring提供了SpringMVC模块,支持MVC模式开发,本章我们将对MVC模式进行一个整体认识。
Web开发模式的演变
在早期的java web开发中,我们将页面显示、业务逻辑、数据操作全部放到JSP或JavaBean中实现,也就是Model1
![fb26ab48ffd86fef2962d46dbae228ec.png](https://i-blog.csdnimg.cn/blog_migrate/512e604d54105218bb01dbbd92aed114.jpeg)
这种模式的缺点是:
1、耦合性高,所有代码都在JSP中,Java和HTML混合在一起,编写困难
2、不利于分工,Java开发人员必须全部完成前端页面和Java程序开发
3、难以测试,前端页面和Java相互依赖,无法单独运行,单独测试
代码难以重用
随着时代的发展,后来出现了Servlet+JSP+JavaBean的开发模式,也就是Model2
![535b14710d803199899b3e18e27439b1.png](https://i-blog.csdnimg.cn/blog_migrate/1ce7bd210f69558d7cbf14956afb1de3.jpeg)
Model2也就是早期的MVC,它把页面展示、请求处理、数据操作代码分开,解决了Model1耦合性高的问题。
用户请求先交给Servlet,Servlet再调用JavaBean对数据库操作,然后将数据绑定到JSP上,将JSP返回给用户。
MVC术语
M就是Model代表模型层,负责业务逻辑和数据处理,如:数据库的CRUD。
V 就是View代表视图层,负责数据的展示和用户的交互,如:JSP页面。
C 就是Controller代表控制器层,控制器负责视图和模型之间的交互,把用户的请求分发到相应的模型,并且把模型的改变及时地反映到视图上。
MVC的发展
为了解决数据库的事务处理问题,JavaBean分为了三个部分:
bean实体层,封装表的数据
dao数据访问层,负责每个表的增删改查
service业务逻辑层,负责实现事务
![1dc8a15eefcd2ddc13c6627d22606f08.png](https://i-blog.csdnimg.cn/blog_migrate/58b2abc09761d12a5ce43f8c84dbad72.jpeg)
MVC的优点
1.耦合性低
视图层和业务逻辑层分离,这样我们可以单独修改页面样式和java逻辑代码,而不需要考虑会对其它部分代码造成影响。
2.重用性高
当业务逻辑和视图分离后,不同的JSP页面可以重用相同的业务逻辑代码,如手机订购页面和电脑订购页面,虽然页面内容不同,但是订购的业务逻辑相同。相同的JSP页面也可以使用不同的业务逻辑,如订购的流程修改了,但是页面样式没有修改,我们只需要修改后面的业务逻辑,而不需要修改页面。
3.部署快,生命周期成本低
MVC使开发和维护用户接口的技术含量降低。使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
4.可维护性高
分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
当然MVC也有缺点:
1、结构比较复杂,不适合中小型的应用程序。
2、每个层互相调用,关系复杂,给调试带来困难。
3、效率低
总结
MVC主要的作用是解耦,降低耦合性后,项目的维护、测试、代码复用都变得容易了,理解了MVC模式后,我们将学习SpringMVC框架。