準則: 指出 Servlet
這個準則討論如何指出和塑造 J2EE 應用程式的 Servlet。
關係
相關元素
主要說明

簡介

這個準則以指出 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。