Posted on 2006-01-18 17:42
JDeodar 閱讀(392)
評論(0) 編輯 收藏 所屬分類:
J2EE
Web Tier Design -- Web層設計
1、設計目標
A:一個清晰的Web層。
用MVC達到:控制器(Controller)對象,接受用戶輸入的信息,并調用業務邏輯去創建和更新模型對象。模型(Model)對象,提供要顯示的數據,提供控制器和視圖之間的契約。視圖(View)對象,顯示由控制器提供的模型對象。
B:Web層應該盡可能地薄。
2、請求驅動的Web MVC框架
一個HTTP請求過來,被一個通用的分發器servlet(dispatcher servlet)分析,再被分發到一個對應的應用處理器。處理器依次處理UI特有的控制邏輯,調用業務對象和管理會話狀態(如果需要),準備一個模型,再轉發到一個視圖。每個UI動作對應一個處理器,后者通常被稱為動作(action)或控制器(controller),具體的名稱雖框架而定。
控制器可能被建模為可重用、線程安全的處理器,類似Servlet(例如Struts和Spring);也可能實現為“只使用一次”的command實例(例如WebWork)。
請求驅動的Web MVC框架的設計模型通常包括六種類型的對象。在一些框架中有些對象同時扮演了幾個角色:
A:控制器(controller):它是由框架調用的組件,負責處理HTTP請求,并確定一個要呈現的視圖。
B:攔截器(interceptor):它是由框架調用的組件......
C:command或form:它是根據請求參數組裝的JavaBean,
可用作中間層業務對象的方法參數。如果是只使用一次(只在一次請求范圍內有效)的對象,則通常稱為command對象;如果表示可重復提交的表單,則稱為form對象。
D:驗證器(validator):用于驗證command/form對象,如果發現錯誤,則生成驗證錯誤對象,交給視圖顯示。驗證可以針對整個對象,也可以針對特定的字段。
E:驗證錯誤收集器(validation errors holder):收集驗證錯誤,并將其暴露給視圖去顯示。驗證過程可能是編程實現的,也可能是由框架特有的JSP標簽進行的。
F:模型(Model):由控制器曝露給視圖的一個或多個JavaBean,表示控制器和視圖之間的數據約定。
G:視圖引用(view reference):可能是一個符號名稱、一個資源URL、或一個真實的視圖對象??刂破鞣祷匾晥D引用,由框架進行渲染。
3、事件驅動(event-driven)的Web MVC框架
Tapestry和JSF