Servlet 定位
Servlet 是平台獨立、協定獨立的伺服器端 Java 應用程式,運行於支援 Servlet 的 JVM 內建 Web 伺服器中,動態生成 Web 內容。
與 Applet 比較
| 相同點 | 不同點 |
| 無 main()、由容器管理生命週期 (init/destroy) | Applet:客戶端、有 GUI (AWT) |
| Servlet:伺服器端、無 GUI、稱「無臉物件」 |
與 CGI 比較 — Servlet 完勝
- 高效能:執行緒取代進程,單一類別實例服務所有請求,記憶體佔用極低。
- 開發便利:內建表單解析、Header 處理、Cookie、Session 追蹤等工具。
- 功能強大:直接與伺服器互動、共享資料庫連線池、實現 Servlet 鏈。
- 可移植:標準 API,主流伺服器 (iPlanet, Apache, IIS, WebStar) 皆支援。
- 低成本:大量免費/廉價伺服器可用,現有伺服器多免費加裝 Servlet 引擎。
與 JSP 比較
JSP 是 Servlet 的高層抽象,本質上編譯為 Servlet。JSP 優勢在於:
- 靜態 HTML 編寫更直觀,無需大量
out.println()。
- 分離「內容邏輯」(Java) 與「呈現樣式」(HTML),設計師與工程師並行開發。
選擇建議:純邏輯處理用 Servlet,大量動態頁面輸出用 JSP,兩者互補。