什么是三层架构体系
在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工具类