-  系统开发模型,即系统架构,是指整合应用系统程序大的结构。经常提到的系统结构有两种:三层架构与MVC。这两种结构既有区别,又有联系。但是这两种结构的使用,均是为了降低系统模块间的耦合度。

-  传统的JavaWeb项目的系统开发模型大体经历了四个阶段:纯JSP、JSP+JavaBean的Model1、MVC的Model2、MVC+三层架构。



1、开发模型:

a、纯JSP开发模型:

-  “纯JSP”开发模型中所有业务处理、数据显示功能都是由JSP页面完成。其缺点是很明显的:JSP页面中的代码结构很乱,显示功能与业务处理功能代码没有划分,维护和升级相当麻烦。


2、JSP + JavaBean的Model1开发模型:

JSP编程专题3之系统开发模型_第1张图片

-  这种开发模型将绝大多数业务处理功能交给了专门的JavaBean来完成,而JSP页面主要完成数据显示功能。已经较“纯JSP页面”的开发模型有了很大的改进。但是该开发模式对于来自客户端的请求的解析,以及对于JavaBean对象的选择与创建,仍然由JSP页面通过Java代码块来完成的。也就是说,JSP页面还承担这大量的请求解析、业务处理功能。


-  JavaBean根据其具体的概念的不同,可以分为两大类:广义JavaBean与狭义JavaBean:

JSP编程专题3之系统开发模型_第2张图片

-   所谓广义JavaBean,就是指一般意义上的Java类。其主要功能有两个:承载数据和业务处理,所以广义的JavaBean有分为两类:数据承载Bean和业务处理Bean。数据承载Bean就是指的是实体类,专门用于承载业务数据的,如Student、User等。而业务处理Bean则是指Service或者Dao对象,专门用于处理用户提交请求的。

-  狭义JavaBean,指的是符合SUN公司提出的“JavaBean”规范的Java类。JavaBean规范规定,满足以下四点的Java类,称之为JavaBean:

a、该类需要是公共的,即public class...

b、该类需要实现Serializable接口。

c、该类需要具备无参数构造器,无论是默认的,还是显示定义的。

d、该类若有成员变量,则这些成员变量必须是私有的,且需要提供这些私有成员变量的公共getter和setter。

-  在实际项目中,实体类一般会被定义为狭义的JavaBean。即,广义的JavaBean的数据承载Bean一般会被定义为满足“JavaBean规范”的狭义JavaBean。


3、MVC的Model2开发模型:

JSP编程专题3之系统开发模型_第3张图片

-  MVC,即Model模型、View视图以及Controller控制器。

a、View:视图,为用户提供使用界面,与用户直接进行交互。

b、Model:模型,承载数据,并对用户提交请求进行计算的模块。其分为两类,一类称之为数据承载Bean,一类称之为业务处理Bean。所谓数据承载Bean是指实体类,专门用于承载业务数据的,如Student、User等。而业务处理Bean则是指Servlet或者Dao对象,专门用于处理用户提交请求的。

c、Crotroller:控制器,用于将用户请求转发给相应的Model进行处理,并根据Model的计算结果向用户提交相应响应。


4、MVC + 三层架构开发模型:

a、三层架构的概念:

JSP编程专题3之系统开发模型_第4张图片

-  三层架构是指:视图层View、服务层Service,与持久层Dao。它们分别完成不同的功能。

i、View层:表现层、视图层,对于Web开发来说,也称之为Web层。接收用户提交请求的代码在这里编写。

ii、Service层:业务层、逻辑层,系统的业务逻辑主要在这里完成。

iii、Dao层:持久层、数据访问层,直接操作数据库的代码在这里编写。DAO,即Data Access Object,数据访问对象。

-  为了更好的降低各层间的耦合度,在三层架构程序设计中,采用面向抽象编程。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。(即相对于Service层来说,View层是上层,Dao层是下层。)


b、MVC + 三层架构:

JSP编程专题3之系统开发模型_第5张图片

-  所谓“MVC + 三层架构”的开发模型,主要是指将MVC的业务处理Model分为两层:Service层和Dao层,分别用于处理业务逻辑和持久化操作。

-  “MVC + 三层架构”的开发模型,是传统的JavaWeb项目的最常用的开发模型。