什么是三层架构体系

在B/S结构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

分层是为了实现“高内聚,低耦合”。采用“分而治之”的思想,把问题划分开来各个解决,易于控制,延展和分配资源。



三层架构是哪三层

三层架构是指数据访问层、业务逻辑层和表示层 。



数据访问层:

数据访问层又称为DAL层,有时候也称为是持久层,其功能主要是负责数据库的访问,进行读取数据和传递数据。

简单的说,就是通过DAL对数据库进行的SQL语句等操作,实现对数据表的Select(查询),Insert(插入),Update(更新),Delete(删除)。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。。



业务逻辑层:

业务逻辑层负责系统领域业务的处理,负责逻辑性数据的生成、处理及转换。对所输入的逻辑性数据的正确性及有效性负责,但对输出的逻辑性数据及用户性数据的正确性不负责,对数据的呈现样式不负责。

用于做一些有效性验证的工作,以更好地保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。

表示层:
负责整个页面的呈现样式。



详见百度百科



项目目录结构

|------src
   |------main
     |------root:根目录
       |--------DAO:Data Access Object数据访问对象(接口)
       |--------DAOImpl:实现DAO中定义的接口
       |--------entity:实体类包
       |--------Service:就是中间层、逻辑层(接口)
       |--------ServiceImpl:上面的实现类
       |--------util:工具类的包
       |--------Servlet:Servlet。
     |------webapp
       |--------WEB-INF
          |--------web.xml
       |--------xxx.jsp


每个包都有什么作用

数据访问层:DAO、DAOImpl
具体实现操作数据库的过程,所有对数据库的操作只能出现在这里,其它层不能有数据库操作。

业务逻辑层:Service、ServiceImpl
负责封装业务流程,保证系统数据的安全性,比如:转账操作只有扣钱和加钱两步完成以后才可提交到数据库中,如果有一步未完成,整个业务都将失败

entity: 实体类,用来贯穿三层传递数据

servlet: 处理服务器请求及响应

util: 常用Java工具类