好程序员Java学习路线分享SpringMVC之MVC概述,前言:目前Web开发的主流模式是MVC,Spring提供了SpringMVC模块,支持MVC模式开发,本章我们将对MVC模式进行一个整体认识。
Web开发模式的演变
  在早期的java web开发中,我们将页面显示、业务逻辑、数据操作全部放到JSP或JavaBean中实现,也就是Model1

  这种模式的缺点是:
  1、耦合性高,所有代码都在JSP中,Java和HTML混合在一起,编写困难
  2、不利于分工,Java开发人员必须全部完成前端页面和Java程序开发
  3、难以测试,前端页面和Java相互依赖,无法单独运行,单独测试
  代码难以重用
  随着时代的发展,后来出现了Servlet+JSP+JavaBean的开发模式,也就是Model2

  Model2也就是早期的MVC,它把页面展示、请求处理、数据操作代码分开,解决了Model1耦合性高的问题。
  用户请求先交给Servlet,Servlet再调用JavaBean对数据库操作,然后将数据绑定到JSP上,将JSP返回给用户。
MVC术语
  M就是Model代表模型层,负责业务逻辑和数据处理,如:数据库的CRUD。
  V 就是View代表视图层,负责数据的展示和用户的交互,如:JSP页面。
  C 就是Controller代表控制器层,控制器负责视图和模型之间的交互,把用户的请求分发到相应的模型,并且把模型的改变及时地反映到视图上。
  
MVC的发展
  为了解决数据库的事务处理问题,JavaBean分为了三个部分:
  bean 实体层,封装表的数据
  dao 数据访问层,负责每个表的增删改查
  service 业务逻辑层,负责实现事务

MVC的优点
  1.耦合性低
  视图层和业务逻辑层分离,这样我们可以单独修改页面样式和java逻辑代码,而不需要考虑会对其它部分代码造成影响。
  2.重用性高
  当业务逻辑和视图分离后,不同的JSP页面可以重用相同的业务逻辑代码,如手机订购页面和电脑订购页面,虽然页面内容不同,但是订购的业务逻辑相同。相同的JSP页面也可以使用不同的业务逻辑,如订购的流程修改了,但是页面样式没有修改,我们只需要修改后面的业务逻辑,而不需要修改页面。
  3.部署快,生命周期成本低
  MVC使开发和维护用户接口的技术含量降低。使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
  4.可维护性高
  分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

  当然MVC也有缺点:
  1、结构比较复杂,不适合中小型的应用程序。
  2、每个层互相调用,关系复杂,给调试带来困难。
  3、效率低
  
总结
  MVC主要的作用是解耦,降低耦合性后,项目的维护、测试、代码复用都变得容易了,理解了MVC模式后,我们将学习SpringMVC框架。