Servlet是使用Java Servlet 應用程序設計接口(API)及相關類和方法的 Java 程序。除了 Java Servlet API,Servlet 還可以使用用以擴展和添加到 API 的 Java 類軟件包。Servlet 在啟用 Java 的 Web 服務器上或應用服務器上運行並擴展了該服務器的能力。Java servlet對於Web服務器就好象Java applet對於Web浏覽器。Servlet裝入Web服務器並在Web服務器內執行,而applet裝入Web浏覽器並在Web浏覽器內執行。Java Servlet API 定義了一個servlet 和Java使能的服務器之間的一個標准接口,這使得Servlets具有跨服務器平台的特性。
Servlet 通過創建一個框架來擴展服務器的能力,以提供在 Web 上進行請求和響應服務。當客戶機發送請求至服務器時,服務器可以將請求信息發送給 Servlet,並讓 Servlet 建立起服務器返回給客戶機的響應。 當啟動 Web 服務器或客戶機第一次請求服務時,可以自動裝入 Servlet。裝入後, Servlet 繼續運行直到其它客戶機發出請求。Servlet 的功能涉及范圍很廣。例如,Servlet 可完成如下功能:
(1) 創建並返回一個包含基於客戶請求性質的動態內容的完整的 HTML頁面。
(2) 創建可嵌入到現有 HTML 頁面中的一部分 HTML 頁面(HTML 片段)。
(3) 與其它服務器資源(包括數據庫和基於 Java 的應用程序)進行通信。
(4) 用多個客戶機處理連接,接收多個客戶機的輸入,並將結果廣播到多個客戶機上。例如,Servlet 可
以是多參與者的游戲服務器。
(5) 當允許在單連接方式下傳送數據的情況下,在浏覽器上打開服務器至applet的新連接,並將該連
接保持在打開狀態。當允許客戶機和服務器簡單、高效地執行會話的情況下,applet也可以啟動客戶浏覽器和服務器之間的連接。可以通過定制協議或標准(如 IIOP)進行通信。
(6) 對特殊的處理采用 MIME 類型過濾數據,例如圖像轉換和服務器端包括(SSI)。
(7) 將定制的處理提供給所有服務器的標准例行程序。例如,Servlet 可以修改如何認證用戶。
2.Servlet 的生命周期:
Servlet 的生命周期始於將它裝入 Web 服務器的內存時,並在終止或重新裝入 Servlet 時結束。
(1) 初始化
在下列時刻裝入 Servlet:
=如果已配置自動裝入選項,則在啟動服務器時自動裝入
=在服務器啟動後,客戶機首次向 Servlet 發出請求時
=重新裝入 Servlet 時
裝入 Servlet 後,服務器創建一個 Servlet 實例並且調用 Servlet 的 init() 方法。在初始化階段,Servlet 初始化參數被傳遞給 Servlet 配置對象。
(2) 請求處理
對於到達服務器的客戶機請求,服務器創建特定於請求的一個"請求"對象和一個"響應"對象。服務器調用 Servlet 的 service() 方法,該方法用於傳遞"請求"和"響應"對象。service() 方法從"請求"對象獲得請求信息、處理該請求並用"響應"對象的方法以將響應傳回客戶機。service() 方法可以調用其它方法來處理請求,例如 doGet()、doPost() 或其它的方法。
(3) 終止
當服務器不再需要 Servlet, 或重新裝入 Servlet 的新實例時,服務器會調用 Servlet 的 destroy() 方法。