JavaEE应用的分层模型

JavaEE应用的分层模型

大致分为如下几层:

  • Domain Object(领域对象)层:此层由一系列的POJO(Plain Old Java Object,普通的、传统的Java对象)组成,这些对象时该系统的Domain Object,往往包含了各自所需实现的业务逻辑方法。

  • DAO(Data Access Object,数据访问对象)层:此层由一系列的DAO组件组成,这些DAO实现了对数据库的创建、查询、更新和删除(CRUD)等原子操作,对实体(Entity)的CRUD操作。

  • 业务逻辑层:此层由一些列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法。这些业务逻辑方法可能仅仅用于暴露Domain Object对象所实现的也无逻辑方法,也可能是依赖DAO组件实现的业务逻辑方法。

  • 控制器层:此层由一系列控制器组成,这些控制器用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求,并根据处理结果转发到不同的表现层组件。

  • 表现层:此层由一系列的JSP页面、Velocity页面、PDF文档视图组件组成,负责收集用户请求,并显示处理结果。

JavaEE应用组件

大致包括如下几类组件:

  • 表现层组件:主要负责收集用户输入数据,或者向用户显示系统状态。最常用的表现层技术是JSP,但是JSP并不是唯一的表现层技术。表现层还可以有Velocity、FreeMarker和Tapestry等技术完成,或者使用普通的应用程序充当表现层组件,或者可以是小型智能设备。JSP(Java Server Page)和Servlet是JavaEE规范的两个基本成员,JSP和Servlet本质上一样,JSP最终必须编译成Servlet才能运行,或者说JSP只是生成Servlet的"草稿"文件。JSP比较简单,特点就是在HTML页面中嵌入Java代码片段,或使用各种JSP标签,包括使用用户自定义标签,从而可以动态地提供页面内容,目前JSP慢慢发展成了单一的表现层技术,不在承担业务逻辑组件及持久层组件的责任。

  • 控制器组件:对于JavaEE的MVC框架而言,框架提供了一个前端核心控制器,而核心控制器负责拦截用户请求,并将请求转发给用户实现的控制器组件。而这些用户实现的控制器则负责处理调用业务逻辑方法,处理用户请求。

  • 业务逻辑组件:是系统的核心组件,实现系统的业务逻辑。通常,一个业务逻辑方法对应一次用户操作。一个业务逻辑方法是一个整体,因此要求对业务逻辑方法增加事务性。业务逻辑方法仅仅负责实现业务逻辑,并应该进行数据库访问。因此,业务逻辑组件中不应该出现原始的Hibernate、JDBC等API。

  • DAO组件:Data Access Object,也被称为数据访问对象。这个类型的对象比较缺乏变化,每个DAO组件都提供Domain Object对象基本的创建、查询、更新和删除等操作,这些操作对应于数据表的CRUD(创建、查询、更新和删除)等原子操作。当然,如果采用不同的持久化访问技术,DAO组件的实现会完全不同。为了业务逻辑组件的实现与DAO组件的实现分离,程序应该为每个DAO组件都提供接口,业务逻辑组件面向DAO接口编程,这样才能提供更好的解耦。

  • 领域对象组件:领域对象抽象了系统的对象模型。通常而言,这些领域对象的状态都必须保存在数据库里。因此,每个领域对象通常对应一个或多个数据表,领域对象通常需要提供对数据记录访问方式。

每个Web应用的WEB-INF路径下的web.xml文件被称为配置描述符,对于JavaWeb应用而言,WEB-INF是一个特殊的文件夹,Web容器会包含该文件夹下的内容,客户端浏览器无法访问WEB-INF路径下的任何内容。 从Servlet3.0开始,也可通过注解来配置管理Web组件,因此web.xml文件可以变得更加简洁。

转载于:https://my.oschina.net/yulongblog/blog/3052806

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值