Web五层架构
2015-10-23 19:14
225 查看
这篇文章其实是去年我给别人讲Web分层结构时做的一个ppt,只是个人的观点和想法。
至于Model2是指JSP+Servlet+JavaBean。Model2 出现以后,人们于实际应用过程中发现,其中的 jsp 关注的是页面显示, Servlet关注的是流程控制, 而 JavaBean 关注的是业务处理。这与传统的 MVC 非常类似, 传统的 MVC包括了三个方面的内容,模型,视图,控制器。因此,人们开始认为, Model2 是基于 MVC (下面也会讲的MVC模型)的。Model2结构如下:
乍一看Model2和MVC是一样的,但二者的数据传输的本质是存在区别的,从二者结构图可见一斑。
表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得;
业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理;
数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
其结构如下:
三层架构与MVC的区别:在三层架构中没有定义Controller的概念。这是最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。
该架构比三层架构只多了一个系统服务层,而该层正是供系统各层访问的服务型代码。
在第二种形式中保存了控制层,即web层,如:
用户界面层:即网页,用户能实实在在看得到的,能进行操作的界面;
控制层:控制用户界面层和业务逻辑层进行数据交互,对于Struts2而言就是Action;
业务逻辑层:针对具体问题的操作,对业务逻辑的处理;
数据持久层:控制事务,直接操作数据库,对数据进行CRUD操作(即数据的增、删、改、查),即Hibernate或MyBatis负责与数据库的通信;
系统服务层:即提供公共的服务性功能,供各个操作层使用。
其结构如图:
虽然说现在有很多Web框架,但是只不过是以前我们做的工作进行了更好的封装。就像《轻量级JavaEE企业应用实战》中Spring那部分中,作者说的那样,Spring是把之前的程序员写的工厂方法做了扩展、改进,从而进行了封装,并且使之更加灵活,易用。同时,从这些框架中,我们也可以看出Web开发中的层次结构。
1.Model1和Model2
首先,Model1是指JSP+JavaBean。Model1比较适合于一些较小项目,但是,对于现在的情况而言,Model1已经被弃用了。结构如下:至于Model2是指JSP+Servlet+JavaBean。Model2 出现以后,人们于实际应用过程中发现,其中的 jsp 关注的是页面显示, Servlet关注的是流程控制, 而 JavaBean 关注的是业务处理。这与传统的 MVC 非常类似, 传统的 MVC包括了三个方面的内容,模型,视图,控制器。因此,人们开始认为, Model2 是基于 MVC (下面也会讲的MVC模型)的。Model2结构如下:
2.传统MVC
传统的MVC包括三个方面:模型、视图、控制器。模型,关注数据处理;视图,关注数据显示和报表处理;控制器,负责协调模型和视图。然后我们看下传统MVC模型:乍一看Model2和MVC是一样的,但二者的数据传输的本质是存在区别的,从二者结构图可见一斑。
3.三层架构
微软推荐的分层架构一般为三层:表示层、业务逻辑层(或领域层)、数据访问层。表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得;
业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理;
数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
其结构如下:
三层架构与MVC的区别:在三层架构中没有定义Controller的概念。这是最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。
4.四层架构
随着需求的不但增加,三层架构也已经难以担当大任。于是,有人提出四层分层架构。其中,四层架构有两种形式。第一种形式是:该架构比三层架构只多了一个系统服务层,而该层正是供系统各层访问的服务型代码。
在第二种形式中保存了控制层,即web层,如:
5.五层架构
对于现今日益庞大的系统而言,以上的架构实现起来略显吃力,所以个人觉得Web应用应该采用五层架构。五层架构包括:用户界面层、控制层、业务逻辑层、数据持久层、系统服务层。其实,准确地说,我觉得用五层结构描述的更清晰一些,因为本质上并没有比上述结构有多么大的差别,只是把别人提到的分层结构给进一步划分了一下而已。其中每一层的职责如下:用户界面层:即网页,用户能实实在在看得到的,能进行操作的界面;
控制层:控制用户界面层和业务逻辑层进行数据交互,对于Struts2而言就是Action;
业务逻辑层:针对具体问题的操作,对业务逻辑的处理;
数据持久层:控制事务,直接操作数据库,对数据进行CRUD操作(即数据的增、删、改、查),即Hibernate或MyBatis负责与数据库的通信;
系统服务层:即提供公共的服务性功能,供各个操作层使用。
其结构如图:
虽然说现在有很多Web框架,但是只不过是以前我们做的工作进行了更好的封装。就像《轻量级JavaEE企业应用实战》中Spring那部分中,作者说的那样,Spring是把之前的程序员写的工厂方法做了扩展、改进,从而进行了封装,并且使之更加灵活,易用。同时,从这些框架中,我们也可以看出Web开发中的层次结构。
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- Zend的MVC机制使用分析(二)
- ASP.NET MVC 4 捆绑和缩小实例介绍
- ASP.NET MVC中将控制器分离到类库的实现
- asp.net实现在非MVC中使用Razor模板引擎的方法
- ASP.NET MVC中的AJAX应用
- 为ASP.NET MVC及WebApi添加路由优先级
- ASP.NET MVC的四种验证编程方式
- 如何在MVC应用程序中使用Jquery
- ASP.NET MVC小结之基础篇(二)
- ASP.NET小结之MVC, MVP, MVVM比较以及区别(一)
- Asp.net实现MVC处理文件的上传下载功能实例教程
- ASP.NET MVC小结之基础篇(一)
- 浅析Asp.net MVC 中Ajax的使用
- JSP使用MVC模式完成删除和修改功能实例详解
- Flex中最好的MVC框架Mate框架
- ASP.NET MVC学习笔记
- 关于php mvc开发模式的感想
- php打造属于自己的MVC框架
- 使用ASP.NET MVC 4 Async Action+jQuery实现消息通知机制的实现代码