系统开发模型:
即,系统架构,是指整合应用系统程序大的结构。经常提到的系统结构有两种:三层架构 和 MVC。
这两种架构,既有区别,又有联系。但是这两种结构的使用,均是为了降低系统模块间的耦合度。 (便于开发时的分组)
传统的JavaWeb 项目的系统开发模型大体经历了四个阶段:
纯JSP ---> JSP+JavaBean 的Model1 --->MVC的Model2 ---> MVC+三层架构
1. 纯JSP
“纯 JSP”开发模型中,将所有的业务处理、数据显示功能都交由JSP页面完成。
其缺点很明显:
JSP页面中的代码结构很乱,显示功能 与业务处理功能代码没有划分,维护 与 升级相当麻烦。
2.JSP+JavaBean 的Model1
这种开发模型将绝大多数 业务处理功能,交给了 专门的JavaBean 来完成,而JSP页面不再进行业务处理,主要来完成数据显示功能。(实现了业务逻辑 和 页面显示的分离)
这种开发模型,较 "纯JSP页面"的开发模型,有了很大的改进。但是该开发模式对于来自客户端的请求的解析,以及对于JavaBean对象的选择与创建,仍然是由JSP页面通过Java代码块来完成的。
也就是说,JSP页面还是承担了很大的请求解析、业务处理功能。
牵引出一个知识点: JavaBean
JavaBean 根据其具体概念的不同,可以分为两大类: 广义的JavaBean 与 狭义的JavaBean。
所谓广义的JavaBean,就是指 一般意义上的Java类。
其主要功能是: 承载数据 与 业务处理。
因此:广义的JavaBean 又分为两类:数据承载Bean 和 业务 处理Bean。
数据承载Bean就是指 实体类,专门用于承载业务数据的。如 Student、User等。
如,创建了一个Student类。这个类的对象存放在堆区内存中。而在堆区内存中存放的Student对象,实际上是存放了创建student的name、age..的值。这个类与存放数据,装数据。
因此,叫做承载数据Bean、。
而业务处理Bean则指的是 Service 或Dao对象,专门用于处理用户提交请求的。
如,JDBC。要想访问数据库,需要定义一个类。类中需要声明成员变量 和 方法。这些方法,用于实现 增删改查的功能。
因为定义这个类的对象的作用就是为了 访问数据库,对数据库进行增删改查。
所以,叫做 业务处理Bean。
狭义的JavaBean,是指符合sun公司提出的"JavaBean规范"的Java类。
JavaBean规范规定,满足以下四点的Java类,称为 JavaBean
-该类需要是公共类,即public class...
-该类需要实现Serializable接口。
-该类需要具备无参构造器,无论是默认的,还是显示定义的。
-该类若有成员变量,则这些成员变量必须是私有的,且需要提供这些私有成员变量的公共getter 与 setter。
在实际项目中,实体类一般会被定义为狭义的JavaBean。
即,广义的JavaBean的数据承载Bean一般会被定义为满足"JavaBean规范"的狭义JavaBean。
3. MVC的Model2
MVC, 即 Model模型 、 View视图、以及 Controller控制器
-View:视图,为用户提供使用界面,与用户进行直接的交互;
-Model:模型,承载数据,并对用户提交请求进行计算的模块。
其分为两类: 数据承载Bean 和 业务处理Bean
所谓数据承载Bean就是指 实体类,专门用于承载业务数据的。如 Student、User等。
而业务处理Bean则指的是 Service 或Dao对象,专门用于处理用户提交请求的。
-Controller:控制器,用于将用户请求转发给相应的Model进行处理,并根据Model的计算结果向用户提供相应响应。
所有的请求和响应,通通要经过控制器。
注意: JSP其实也可以直接访问 数据承载Bean。
但是,要杜绝JSP直接访问 业务处理Bean。
MVC架构程序的工作流程是这样的:
4. 三层架构
三层架构 是指:视图层 View 、服务层 Service 、持久层 Dao。 它们分别完成不同的功能。
View层:表现层、视图层,对于Web开发,也称为Web层。用于接收用户提交请求的代码在这里编写。
Service层: 业务层、逻辑层,系统的业务逻辑主要在这里完成。
Dao层: 持久层、数据访问层,直接操作数据库的代码在这里编写。 DAO ,即Data Access Object,数据访问对象。
为了更好的降低各层间的耦合度,在三层架构程序设计中,采用了面向抽象编程。
即上层对下层的调用,是通过接口实现的。
而下层对上层的真正服务提供者,是下层接口的实现类。
它们服务标准(接口)是相同的,服务者提供(实现类)可以更换。这就实现了层间解耦合。
5. MVC+三层架构
所谓 “MVC+三层架构”的开发模型,主要是指 将MVC的业务处理Model分为了两层:
Service层 与 Dao层,分别用于处理 业务逻辑 和 持久化操作。
“MVC+三层架构”的开发模型,是最传统的JavaWeb项目的最常用开发模型。