Servlet(Server Applet)是 Java Servlet 的簡稱,是使用 Java 語言編寫的運行在服務器端的程序。具有獨立于平臺和協議的特性,主要功能在于交互式地瀏覽和生成數據,生成動態Web內容。
通常來說,Servlet 是指所有實現了 Servlet 接口的類。
Servlet 主要用于處理客戶端傳來的 HTTP 請求,并返回一個響應,它能夠處理的請求有 doGet() 和 doPost() 等。
Servlet 由 Servlet 容器提供,Servlet 容器是指提供了 Servlet 功能的服務器(如 Tomcat)。
Servlet 容器會將 Servlet 動態加載到服務器上,然后通過 HTTP 請求和 HTTP 應與客戶端進行交互。
Servlet 應用程序的體系結構如圖 1 所示。
圖 1 Servlet 應用程序的體系結構
在圖 1 中,Servlet 的請求首先會被 HTTP 服務器(如 Apache)接收,HTTP 服務器只負責靜態 HTML 頁面的解析,而 Servlet 的請求會轉交給 Servlet 容器,Servlet 容器會根據 web.xml 文件中的映射關系,調用相應的 Servlet,Servlet 再將處理的結果返回給 Servlet 容器,并通過 HTTP 服務器將響應傳輸給客戶端。
Servlet 技術具有如下特點。
1. 方便
Servlet 提供了大量的實用工具例程,如處理很難完成的 HTML 表單數據、讀取和設置 HTTP 頭,以及處理 Cookie 和跟蹤會話等。
2. 跨平臺
Servlet 使用 Java 類編寫,可以在不同的操作系統平臺和不同的應用服務器平臺運行。
3. 靈活性和可擴展性強
采用 Servlet 開發的 Web 應用程序,由于 Java 類的繼承性及構造函數等特點,使得應用靈活,可隨意擴展。
除了上述幾點以外,Servlet 還具有功能強大、能夠在各個程序之間共享數據、安全性強等特點,此處不再詳細說明,讀者簡單了解即可。