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