大部分的WEB應用在職責上至少被分成四層:表示層、持久層、業務層和域模塊層。
[b]一、 表示層[/b]
一般來講,一個典型的WEB應用的前端應該是表示層,可以使用Struts框架。
下面是Struts所負責的:
1、 管理用戶的請求,做出相應的響應。
2、 提供一個流程控制,委派調用業務邏輯和其他上層處理。
3、 處理異常。
4、 爲顯示提供一個數據模型(即把數據對象設置到某一個範圍內,用於前臺獲取數據)。
5、 用戶界面的驗證。
以下內容,不該在Struts表示層的編碼中經常出現,它們與表示層無關的。
1、 與數據庫直接通信。
2、 與應用程序相關聯的業務邏輯有校驗
3、 事務處理。
[b]二、 持久層[/b]
典型的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框架支持大部分主流數據庫,並且支持父表/子表關係、事務處理、繼承和多態。
[b]三、 業務層[/b]
一個典型WEB應用的中間部分是業務層或服務層。可以用Spring來實現。
下面是業務層所負責的:
1、 處理應用程序的業務邏輯和業務校驗。
2、 管理事務。
3、 提供與其他層相互作用的接口。
4、 管理業務層級別的對象的依賴。
5、 在表示層和持久層之間增加一個靈活的機制,使得他們不直接聯繫在一起。
6、 通過揭示從表示層到業務層之間的上下文來得到業務邏輯。
7、 管理程序的執行(從業務層到持久層)。
[b]四、 域模塊層[/b]
既然我們致力於一個WEB的應用,我們就需要一個對象集合,讓它在不同層之間移動。域模塊層由實際需求中業務對象組成,比如訂單明細、產品、等。開發者在這層不用管哪些數據傳輸對象,而關注域對象即可。例如,Hibernate允許你將數據庫中的信息存入域對象,這樣你可以在連接斷開的情況下把這些數據顯示到用戶界面層,而那些對象也可以返回給持久層,從而在數據庫裏更新。而且,你不必把對象轉化成DTO(這可能導致它在不同層之間傳輸過程中丟失)。這個模型使得Java開發者能很自然運用面向編程,而不需要附加編碼。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/lsgsunny/archive/2009/04/03/4022831.aspx
WEB項目的分層結構(轉)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Spring中@Autowired註解、@Resource註解的區別
cucmber
2018-08-27 19:55:26
循環單鏈表--JAVA
雅希
2018-08-27 19:45:07
循環雙鏈表--JAVA
雅希
2018-08-27 19:45:06
Java 內存區域與內存溢出異常
wolf犭良
2018-08-27 19:44:20
基於JDK1.7Update14之後的HotSpot虛擬機垃圾收集器
wolf犭良
2018-08-27 19:44:19
轉一篇寫得不錯的J2EE簡介
kagami_QB
2018-08-27 19:38:14
JAVA 輸出 你 我 他
ycj170320
2018-08-27 19:34:26
JAVA 集合的使用
ycj170320
2018-08-27 19:34:25
類與對象 實驗一 機動車
ycj170320
2018-08-27 19:34:25
淺談Java中的Set、List、Map的區別
huxijiuhao
2018-08-27 19:33:14
九度online judge-A + B
huxijiuhao
2018-08-27 19:33:14
Mybatis源碼淺析、定製原理及方法
向ET同志学习
2018-08-27 19:32:39
24小時熱門文章
-
再談23種設計模式(3):行爲型模式(學習筆記)
-
Power Automate Desktop 安裝完,登錄後老是提示one driver 錯誤
-
微前端學習筆記(4):從微前端到微模塊之EMP與hel-micro方案探索
-
微前端學習筆記(1):微前端總體架構概述,從微服務發微
-
985 碩士程序員,空窗 4 個月沒有 Offer!
-
一文搞懂 Spring 循環依賴
-
賽博鬥地主——使用大語言模型扮演Agent智能體玩牌類遊戲。
-
VScode右鍵打開(添加到右鍵)
-
記一次 .NET某工控視覺自動化系統 卡死分析
-
WindowsServer--SQL Server搭建主從同步實現讀寫分離 - 事務性分發