簡介
這個準則以指出 Servlet 為重點。準則:Servlet 提供 Servlet 的其他指引。
指出 Servlet
Servlet 是與 Web 型用戶端互動的伺服器類別。大多在 Web 架構的控制類別中指出(請參閱準則:分析類別)。可以用來產生做為呈現用途的網頁,但通常較適用於 JSP(請參閱準則:JavaServer Page (JSP))。也可以用來與資料庫互動,例如以 Web 為核心的部署配置,請參閱概念:J2EE 部署配置。從 J2EE 1.4 開始,根據 JAX-RPC 規格的規定,Servlet 也可以用來實作 Web 服務。
不過,對於有大量商業邏輯的應用程式,或需要 EJB 提供的功能的應用程式,多層部署配置(請參閱概念:J2EE 部署配置)更適合。在此情況下,Servlet 通常用來協調呈現邏輯,且在商業邏輯和 EJB 提供的資料之間做為橋接機制。
Servlet 通常做為「前端控制器」。前端控制器提供應用程式的單一進入點,讓安全、應用程式狀態及呈現保持一致,較易於維護。前端控制器可接受使用者要求、處理要求,並決定轉遞給什麼適當的呈現元件。 如需詳細資訊,請參閱核心 J2EE
設計型樣 - 前端控制器 ([ALU01])。
如果您的設計中有大量 JSP 具有類似的控制程式碼,請考慮導入 Servlet,將此邏輯集中在一個地方。
建模 Servlet
Servlet 在 RUP 中以工作成果:設計類別表示,因此塑造為類別。負責處理 HTTP 要求的 Servlet 以
<<HTTPServlet>> 為模板。負責其他通訊協定的 Servlet 以 <<GenericServlet>> 為模板。
每一個 Servlet 可能提供相同的介面,只以單一操作來處理要求且提供標準的用戶端、階段作業及 Servlet 環境資訊。所以,建模 Servlet
並不是定義介面操作,而是定義責任及如何與其他設計元素互動,例如用戶端、JSP、Helper 類別、EJB 等。
Web 服務端點
如先前所述,Servlet 可用來實作 Web 服務,且必須符合下列需求:
-
必須有預設的公用建構子。
-
必須實作服務端點介面宣告的所有方法,且商業方法必須是 public,不得為 final 或 static。
-
必須是 Stateless。
-
類別必須是 public,不得為 final 和 abstract。
|