WEB项目的分层结构


WEB**项目的分层结构**

       大部分的WEB应用在职责上至少被分成四层:表示层、持久层、业务层和域模块层。

一、             **表示层**

一般来讲,一个典型的WEB应用的前端应该是表示层,可以使用Struts框架。

下面是Struts所负责的:

1、  管理用户的请求,做出相应的响应。

2、  提供一个流程控制,委派调用业务逻辑和其他上层处理。

3、  处理异常。

4、  为显示提供一个数据模型(即把数据对象设置到某一个范围内,用于前台获取数据)。

5、  用户界面的验证。

以下内容,不该在Struts表示层的编码中经常出现,它们与表示层无关的。

1、  与数据库直接通信。

2、  与应用程序相关联的业务逻辑有校验

3、  事务处理。

二、             **持久层**

典型的WEB应用的后端是持久层。可以用Hibernate实现。Hibernate的持久对象是基于POJO(Plain Old Java Object)和Java集合的。

下面是Hibernate所负责的内容:

1、  如何查询对象的相关信息。

Hibernate是通过一个面向对象查询语言(HQL)或正则表达的API来完成查询的。HQL非常类似于SQL,只是把SQL里的table和columns用Object和它的fields代替。

2、  如何存储、更新、删除数据库记录。

3、  Hibernate这类高级ORM框架支持大部分主流数据库,并且支持父表/子表关系、事务处理、继承和多态。

三、             **业务层**

一个典型WEB应用的中间部分是业务层或服务层。可以用Spring来实现。

下面是业务层所负责的:

1、  处理应用程序的业务逻辑和业务校验。

2、  管理事务。

3、  提供与其他层相互作用的接口。

4、  管理业务层级别的对象的依赖。

5、  在表示层和持久层之间增加一个灵活的机制,使得他们不直接联系在一起。

6、  通过揭示从表示层到业务层之间的上下文来得到业务逻辑。

7、  管理程序的执行(从业务层到持久层)。

四、             **域模块层**

既然我们致力于一个WEB的应用,我们就需要一个对象集合,让它在不同层之间移动。域模块层由实际需求中业务对象组成,比如订单明细、产品、等。开发者在这层不用管哪些数据传输对象,而关注域对象即可。例如,Hibernate允许你将数据库中的信息存入域对象,这样你可以在连接断开的情况下把这些数据显示到用户界面层,而那些对象也可以返回给持久层,从而在数据库里更新。而且,你不必把对象转化成DTO(这可能导致它在不同层之间传输过程中丢失)。这个模型使得Java开发者能很自然运用面向编程,而不需要附加编码。



来源博客:Wang Jie's Blog
本文链接:https://blog.wangjiegulu.com/2012/11/30/WEB项目的分层结构/
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处。