Web五层架构

这篇文章其实是去年我给别人讲Web分层结构时做的一个ppt,只是个人的观点和想法。

1.Model1和Model2

首先,Model1是指JSP+JavaBean。Model1比较适合于一些较小项目,但是,对于现在的情况而言,Model1已经被弃用了。结构如下:

Web五层架构_第1张图片

至于Model2是指JSP+Servlet+JavaBean。Model2 出现以后,人们于实际应用过程中发现,其中的 jsp 关注的是页面显示, Servlet关注的是流程控制, 而 JavaBean 关注的是业务处理。这与传统的 MVC 非常类似, 传统的 MVC包括了三个方面的内容,模型,视图,控制器。因此,人们开始认为, Model2 是基于 MVC (下面也会讲的MVC模型)的。Model2结构如下:

Web五层架构_第2张图片

2.传统MVC

传统的MVC包括三个方面:模型、视图、控制器。模型,关注数据处理;视图,关注数据显示和报表处理;控制器,负责协调模型和视图。然后我们看下传统MVC模型:

Web五层架构_第3张图片

乍一看Model2和MVC是一样的,但二者的数据传输的本质是存在区别的,从二者结构图可见一斑。

3.三层架构

微软推荐的分层架构一般为三层:表示层、业务逻辑层(或领域层)、数据访问层。

  1. 表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得;
  2. 业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理;
  3. 数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。

其结构如下:

Web五层架构_第4张图片

三层架构与MVC的区别:在三层架构中没有定义Controller的概念。这是最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。

4.四层架构

随着需求的不但增加,三层架构也已经难以担当大任。于是,有人提出四层分层架构。其中,四层架构有两种形式。第一种形式是:

Web五层架构_第5张图片

该架构比三层架构只多了一个系统服务层,而该层正是供系统各层访问的服务型代码。

在第二种形式中保存了控制层,即web层,如:

Web五层架构_第6张图片

5.五层架构

对于现今日益庞大的系统而言,以上的架构实现起来略显吃力,所以个人觉得Web应用应该采用五层架构。五层架构包括:用户界面层、控制层、业务逻辑层、数据持久层、系统服务层。其实,准确地说,我觉得用五层结构描述的更清晰一些,因为本质上并没有比上述结构有多么大的差别,只是把别人提到的分层结构给进一步划分了一下而已。其中每一层的职责如下:

  1. 用户界面层:即网页,用户能实实在在看得到的,能进行操作的界面;
  2. 控制层:控制用户界面层和业务逻辑层进行数据交互,对于Struts2而言就是Action;
  3. 业务逻辑层:针对具体问题的操作,对业务逻辑的处理;
  4. 数据持久层:控制事务,直接操作数据库,对数据进行CRUD操作(即数据的增、删、改、查),即Hibernate或MyBatis负责与数据库的通信;
  5. 系统服务层:即提供公共的服务性功能,供各个操作层使用。
其结构如图:

Web五层架构_第7张图片

虽然说现在有很多Web框架,但是只不过是以前我们做的工作进行了更好的封装。就像《轻量级JavaEE企业应用实战》中Spring那部分中,作者说的那样,Spring是把之前的程序员写的工厂方法做了扩展、改进,从而进行了封装,并且使之更加灵活,易用。同时,从这些框架中,我们也可以看出Web开发中的层次结构。



你可能感兴趣的:(mvc,javaee,分层架构)