- 系统开发模型,即系统架构,是指整合应用系统程序大的结构。经常提到的系统结构有两种:三层架构与MVC。这两种结构既有区别,又有联系。但是这两种结构的使用,均是为了降低系统模块间的耦合度。
- 传统的JavaWeb项目的系统开发模型大体经历了四个阶段:纯JSP、JSP+JavaBean的Model1、MVC的Model2、MVC+三层架构。
1、开发模型:
a、纯JSP开发模型:
650) this.width=650;" src="http://img.558idc.com/uploadfile/allimg/210625/1H12HN5-0.png" title="截图00.png" alt="78376a313fbad375569f960a42e9eb91.png" d="14540328" s="55e_328" t="png">
- “纯JSP”开发模型中所有业务处理、数据显示功能都是由JSP页面完成。其缺点是很明显的:JSP页面中的代码结构很乱,显示功能与业务处理功能代码没有划分,维护和升级相当麻烦。
2、JSP + JavaBean的Model1开发模型:
650) this.width=650;" src="http://img.558idc.com/uploadfile/allimg/210625/1H12HN5-0.png" title="截图01.png" alt="9668659d70d71d89790a44da06ac2e43.png" d="14540329" s="1c2_c39" t="png">
- 这种开发模型将绝大多数业务处理功能交给了专门的JavaBean来完成,而JSP页面主要完成数据显示功能。已经较“纯JSP页面”的开发模型有了很大的改进。但是该开发模式对于来自客户端的请求的解析,以及对于JavaBean对象的选择与创建,仍然由JSP页面通过Java代码块来完成的。也就是说,JSP页面还承担这大量的请求解析、业务处理功能。
- JavaBean根据其具体的概念的不同,可以分为两大类:广义JavaBean与狭义JavaBean:
650) this.width=650;" src="http://img.558idc.com/uploadfile/allimg/210625/1H12HN5-0.png" title="截图02.png" alt="05a6765d3fbb10eacfc4db3437a50d89.png" d="14540330" s="7ec_694" t="png">
- 所谓广义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开发模型:
650) this.width=650;" src="http://img.558idc.com/uploadfile/allimg/210625/1H12HN5-0.png" title="截图03.png" alt="571e03f137dc52d3d0a27a9b84b989bc.png" d="14540331" s="e1e_7f1" t="png">
- MVC,即Model模型、View视图以及Controller控制器。
a、View:视图,为用户提供使用界面,与用户直接进行交互。
b、Model:模型,承载数据,并对用户提交请求进行计算的模块。其分为两类,一类称之为数据承载Bean,一类称之为业务处理Bean。所谓数据承载Bean是指实体类,专门用于承载业务数据的,如Student、User等。而业务处理Bean则是指Servlet或者Dao对象,专门用于处理用户提交请求的。
c、Crotroller:控制器,用于将用户请求转发给相应的Model进行处理,并根据Model的计算结果向用户提交相应响应。
4、MVC + 三层架构开发模型:
a、三层架构的概念:
650) this.width=650;" src="http://img.558idc.com/uploadfile/allimg/210625/1H12HN5-0.png" title="截图04.png" alt="f493cdfe47125e56e58b983c86410585.png" d="14540332" s="68c_ea8" t="png">
- 三层架构是指:视图层View、服务层Service,与持久层Dao。它们分别完成不同的功能。
i、View层:表现层、视图层,对于Web开发来说,也称之为Web层。接收用户提交请求的代码在这里编写。
ii、Service层:业务层、逻辑层,系统的业务逻辑主要在这里完成。
iii、Dao层:持久层、数据访问层,直接操作数据库的代码在这里编写。DAO,即Data Access Object,数据访问对象。
- 为了更好的降低各层间的耦合度,在三层架构程序设计中,采用面向抽象编程。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。(即相对于Service层来说,View层是上层,Dao层是下层。)
b、MVC + 三层架构:
650) this.width=650;" src="http://img.558idc.com/uploadfile/allimg/210625/1H12HN5-0.png" title="截图05.png" alt="6dd78c9ca622d84e82b3e93060f28c18.png" d="14540333" s="d6b_219" t="png">
- 所谓“MVC + 三层架构”的开发模型,主要是指将MVC的业务处理Model分为两层:Service层和Dao层,分别用于处理业务逻辑和持久化操作。
- “MVC + 三层架构”的开发模型,是传统的JavaWeb项目的最常用的开发模型。