Servlet/JSP 是 Java 伺服器端開發核心技術。遵循良好設計原則可實現「表現與內容分離」,產出可維護、可重用的 Web 應用。本文概述 Servlet/JSP 運作機制,並提出開發原則重點。
Servlet 與 JSP 運作概覽
- Servlet:運行於 Servlet 容器的 Java 類別,處理請求/回應,支援多執行緒,具備 Session 管理、JDBC 存取等能力。
- JSP:以 HTML 為主、內嵌 Java 程式碼的頁面,首次請求時由 JSP 引擎轉譯為 Servlet 編譯執行,後續請求直接呼叫已載入的 Servlet 實例(「第一人懲罰」)。
核心開發原則
- 避免在 JSP 大量撰寫 Java 程式碼 (Scriptlet):導致難讀、難維護。應將商業邏輯移至 JavaBeans、Service 層或 Servlet。
- 採用 MVC 架構:
Model (JavaBeans/EJB) — View (JSP) — Controller (Servlet/Filter)。Controller 接收請求、呼叫 Model、轉向 View。
- 善用 JSP 標籤庫 (JSTL、自訂標籤):以宣告式標籤取代 Scriptlet,如
<c:forEach>、<fmt:formatDate>。
- 分離靜態資源:CSS、JS、圖片置於獨立目錄,利用瀏覽器快取。
- 例外處理集中化:定義錯誤頁面 (
web.xml <error-page>),避免在 JSP 散落 try-catch。
- 資源關閉與連線池:JDBC 連線、IO 流務必在 finally 區塊關閉;使用 DataSource 連線池提升效能。
JSP 頁面設計建議
- 盡量只包含顯示邏輯 (迴圈、條件判斷、格式化)。
- 使用 EL 表達式 (
${user.name}) 存取資料,不寫 Java 程式碼。
- 頁面編碼統一宣告:
<%@ page contentType="text/html;charset=UTF-8" %>。
遵循上述原則,可顯著降低專案複雜度,提升團隊協作效率。