1、三层架构
3-tier architecture:通常意义上的三层架构就是将整个业务应用划分为:
表现层(User Interface layer)
业务逻辑层(Business Logic Layer)
数据访问层(Data access layer)
区分层次的目的即为了“高内聚低耦合”的思想。

表现层(UI):为客户端提供应用程序的访问。主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
业务逻辑层(BLL):主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
数据访问层(DAL):主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务。

2、J2EE的五层架构
java一共有三个版本:
J2SE——指标准版,一般用于用户学习JAVA语言的基础也是使用其他两个版本的基础主要用于编写C/S项目和提供标准的JAVA类库(网上copy的,没用过,我做的都是B/S项目)
J2EE——指企业版依托互连网技术提供企业级平台应用说白了就是用来构建大型网站和B/S系统。自己理解为web项目,通过浏览器访问的服务。
J2ME——指移动版微小型移动器械搭建使用平台主要是用来为手机编程,制作手机相关软件的。好像现在没有什么东西用到,移动端基本都是android、ios。

J2EE架构
   J2EE是Java2平台企业版,它的核心是一组技术规范与指南,提供基于组件的方式来设计、开发、组装和部署企业应用。J2EE使用多层分布式的应用模型。j2EE应用的分层模型大致分为以下几层:
  (1)表现层
  (2)控制器层
  (3)业务逻辑层
  (4)数据访问对象层(Data Access Object)——DAO
  (5)领域对象层(Domain Object)——Entity

表现层:
  此层有系列的JSP页面、Velocity页面、PDF文档视图组件组成。还可以由FreeMarker和Tapestry等技术完成。负责收集用户需求,并显示处理结果。
控制器层:
  类同MVC设计模型的Controller层,拦截用户请求,调用业务逻辑处理,根据结果转发不同的业务逻辑方法。
业务逻辑层:
  由系列的业务逻辑组件构成,实现业务所需要的逻辑方法。这些方法可能是对Domain Object对象所实现的逻辑方法,也可能是依赖与DAO组件的逻辑方法。
DAO层:
  此层由系列的DAO组件组成,这些DAO组件实现了对数据库的创建、查询、更新和删除等原子操作。为了业务逻辑组件的实现 和 DAO组件的实现 分离,为每个DAO组件都提供接口,业务逻辑组件面向DAO接口编程,从而实现更好解耦。
领域对象层:

  或数据持久层,由系列POJO(Plain Ordinary Java Object)组成,每个POJO对象对应数据库中的一个或多个数据表。

Java的Web应用中常用的框架:
(1)Struts/SprintMVC:作为一个表示层框架,主要作用是界面展示,接收请求,分发请求。
(3)Spring Framwork:作为一个业务层框架,是一个整合的框架,能够很好的粘合表示层和持久层。
(2)Mybatis/Hibernate/JdbcTemplate:作为一个持久层框架,它只负责与关系数据库的操作。