Servlet(Server Applet)是 Java Servlet 的簡(jiǎn)稱,是使用 Java 語(yǔ)言編寫的運(yùn)行在服務(wù)器端的程序。具有獨(dú)立于平臺(tái)和協(xié)議的特性,主要功能在于交互式地瀏覽和生成數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。
通常來說,Servlet 是指所有實(shí)現(xiàn)了 Servlet 接口的類。
- Servlet 主要用于處理客戶端傳來的 HTTP 請(qǐng)求,并返回一個(gè)響應(yīng),它能夠處理的請(qǐng)求有 doGet() 和 doPost() 等。
- Servlet 由 Servlet 容器提供,Servlet 容器是指提供了 Servlet 功能的服務(wù)器(如 Tomcat)。
- Servlet 容器會(huì)將 Servlet 動(dòng)態(tài)加載到服務(wù)器上,然后通過 HTTP 請(qǐng)求和 HTTP 應(yīng)與客戶端進(jìn)行交互。
Servlet 應(yīng)用程序的體系結(jié)構(gòu)如圖 1 所示。
在圖 中,Servlet 的請(qǐng)求首先會(huì)被 HTTP 服務(wù)器(如 Apache)接收,HTTP 服務(wù)器只負(fù)責(zé)靜態(tài) HTML 頁(yè)面的解析,而 Servlet 的請(qǐng)求會(huì)轉(zhuǎn)交給 Servlet 容器,Servlet 容器會(huì)根據(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 和跟蹤會(huì)話等。
2)跨平臺(tái)
Servlet 使用 Java 類編寫,可以在不同的操作系統(tǒng)平臺(tái)和不同的應(yīng)用服務(wù)器平臺(tái)運(yùn)行。
3)靈活性和可擴(kuò)展性強(qiáng)
采用 Servlet 開發(fā)的 Web 應(yīng)用程序,由于 Java 類的繼承性及構(gòu)造函數(shù)等特點(diǎn),使得應(yīng)用靈活,可隨意擴(kuò)展。