1.1 MVC概念
MVC(Model View Controller)是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:
- 模型(Model)
- 视图(View)
- 控制器(Controller)
- Model (模型)
- 用javabean实现,用于封装业务数据,完成具体的业务逻辑操作。
- 例如:查询数据库,封装对象。
- View (视图)
- 用
JSP
实现,用于显示数据。 - 例如:用户实际上看到的网页信息或用户界面。
- Controller (控制器)
- 用Servlet实现,用于调度Model和View,负责请求转发。
- Controller只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。因此控制器就相当于调度员一样,负责调用model和view工作一样。
- Controller存在的目的则是确保Model和View的同步,一旦Model改变,View应该同步更新。
1.2 MVC和三层架构的区别
- 三层架构是基于业务逻辑来分的,而MVC是基于页面来分的。
- 三层模式可归于部署模式,MVC可归于表示模式。
- 无论是MVC还是三层架构,都是一种规范,都是奔着
高内聚,低耦合
的思想来设计的。
1.3 MVC架构模式的工作流程
- 用户通过View页面向服务端提出请求,可以是表单请求、超链接请求、AJAX请求等。
- 服务端Controller控制器接收到请求后对请求进行解析,找到相应 的Model对用户请求进行处理。
- Model处理后,将处理结果再交给Controller
- Controller在接到处理结果后,根据处理结果找到要作为向客户端发回的响应View页面。页面经渲染(数据填充)后,再发送给客户端
1.4 为什么要用MVC
- 早期只有servlet,只能使用response输出标签数据,非常麻烦
- 后来有jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java代码,又写html,造成难于维护,难于分工协作
- 再后来,java的web开发,借鉴mvc开发模式,使得程序的设计更加合理性
1.5 MVC设计模式优点
- 降低代码耦合性。
- 在 MVC 模式中,三个层各司其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应层的代码而不会影响到其他层的代码。
- 有利于分工合作
- 在 MVC 模式中,由于按层把系统分开,那么就能更好的实现开发中的分工。
- 网页设计人员可进行开发视图层中的 JSP,而对业务熟悉的人员可开发业务层,而其他开发人员可开发控制层
- 有利于组件的重用
- 如控制层可独立成一个能用的组件,表示层也可做成通用的操作界面。可以为一个模型在运行时同时建立和使用多个视图。