J2EE架構中各層的資料表示方法

2021-04-03 01:58:50 字數 1811 閱讀 3060

j2ee

架構中各層的資料表示方法

web

層的資料表示是

formbean

,資料**於

html form post

業務層的資料表示是vo

持久層的資料表示是

po,其資料**於資料庫,持久層的資料表示例如

cmp。在乙個規範的

j2ee

架構中,不同層的資料表示應該被限制在層內,而不應該擴散到其它層,這樣可以降低層間的耦合性,提高

j2ee

架構整體的可維護性和可擴充套件性。比如說

web層的邏輯進行了修改,那麼只需要修改

formbean

的結構,而不需要觸動業務層和持久層的**修改。同樣滴,當資料庫表進行了小的調整,那麼也只需要修改持久層資料表示,而不需要觸動業務層**和

web層**。

jsp(view) ---> action form bean (module) ---> action(control)

action form bean

是web

層的資料表示,它和

html

頁面form

對應,只要

web頁面的操作流程發生改變,它就要相應的進行修改,它不應該也不能被傳遞到業務層和持久層,否則一旦頁面修改,會一直牽連到業務層和持久層的大面積的**進行修改,對於軟體的可維護性和可擴充套件性而言,是乙個災難,

actiont

就是他的邊界,到此為止!

action(web control) ---> business bean ---> dao ---> orm --->db 而

po則是業務層和持久層的資料表示,它在業務層和持久層之間進行流動,他不應該也不能被傳遞到

web層的

view

中去,而

actionservlet

就是他的邊界,到此為止!

整個架構的流程:

當使用者通過瀏覽器訪問網頁,提交了乙個頁面。於是

action

拿到了這個

formbean

,他會把

formbean

屬性讀出來,然後構造乙個

po物件,再呼叫業務層的

bean

類,完成了註冊操作,重定向到成功頁面。而業務層

bean

收到這個

po物件之後,呼叫

dao介面方法,進行持久物件的持久化操作。 業務

bean

取得name(

注意: name

物件只是

user

的乙個屬性

)物件之後呼叫

dao介面,返回乙個

user的po

物件,注意這個

user

不同於在

web層使用的

userformbean

,他有很多集合屬性滴。然後業務

bean

把user

物件返回給

action。

總結:

form bean

是web

層的資料表示,他不能被傳遞到業務層;

po是持久層的資料表示,在特定情況下,例如

hibernate

中,他可以取代

vo出現在業務層,但是不管

po還是

vo都必須限制在業務層內使用,最多到達

web層的

control

,絕不能被擴散到

view去。

form bean 和po

之間的資料轉化是在

action

中進行滴。

J2EE中的路徑問題

解決方案 採用絕對路徑,但為了解決不同部署方式的差別,在所有非 struts 標籤的路徑前加 如原路徑為 images title.gif 改為 images title.gif 的作用是取出部署的應用程式名,這樣不管如何部署,所用路徑都是正確的。缺點 操作不便,其他工具無法正確解釋 採用相對路徑,...

J2EE中的Config與Context引數應用

我們先來回顧一下各種內建物件的作用範圍 這兩個屬性的作用範圍最小。時間上 只是本身請求和應答完成就失效,當然 是把當前的request物件取出來傳給另乙個資源,其實本身的request物件還是只生存到本次請求結束,response也同樣。空間上 只能傳送請求的客戶端有效。一次鏈結到客戶端關閉,時間作...

Spring在J2ee中的角色

在ssh框假中spring充當了管理容器的角色。我們都知道hibernate用來做持久層,因 為它將jdbc做了乙個良好的封裝,程式設計師在與資料庫進行互動時可以不用書寫大量的sql語 句。struts是用來做應用層的,他它負責呼叫業務邏輯serivce層。所以ssh框架的流程大致 是 jsp頁面 ...