簡單瞭解什麼是Servlet

碼農張2019發表於2020-11-06

** servlet是Java Servlet的簡稱,稱為小服務程式或服務聯結器,用Java編寫的伺服器端程式,主要功能在於互動式地瀏覽和修改資料,生成動態Web內容。
Servlet可以響應任何型別的請求,但絕大多數情況下Servlet只用來擴充套件基於HTTP協議的Web伺服器。
**

實現過程

1.客戶端傳送請求至伺服器端;
2.伺服器將請求資訊傳送至 Servlet;
3.Servlet 生成響應內容並將其傳給伺服器。響應內容動態生成,通常取決於客戶端的請求;
4.伺服器將響應返回給客戶端。

*具體的一個servlet週期過程大概是:

1.客戶端請求該 Servlet;
2.載入 Servlet 類到記憶體;
3.例項化並呼叫init()方法初始化該 Servlet;
4.service()(根據請求方法不同呼叫doGet() 或者 doPost(),此外還有doHead()、doPut()、doTrace()、doDelete()、doOptions()、destroy())。
5.載入和例項化 Servlet。這項操作一般是動態執行的。然而,Server 通常會提供一個管理的選項,用於在 Server 啟動時強制裝載和初始化特定的 Servlet。
6.Server 建立一個 Servlet的例項
7.第一個客戶端的請求到達 Server
8.Server 呼叫 Servlet 的 init() 方法(可配置為 Server 建立 Servlet 例項時呼叫,在 web.xml 中 標籤下配置 標籤,配置的值為整型,值越小 Servlet 的啟動優先順序越高)
9.一個客戶端的請求到達 Server
10.Server 建立一個請求物件,處理客戶端請求
11.Server 建立一個響應物件,響應客戶端請求
12.Server 啟用 Servlet 的 service() 方法,傳遞請求和響應物件作為引數service() 方法獲得關於請求物件的資訊,處理請求,訪問其他資源,獲得需要的資訊service() 方法使用響應物件的方法,將響應傳回Server,最終到達客戶端。service()方法可能啟用其它方法以處理請求,如 doGet() 或 doPost() 或程式設計師自己開發的新的方法。
13.對於更多的客戶端請求,Server 建立新的請求和響應物件,仍然啟用此 Servlet 的 service() 方法,將這兩個物件作為引數傳遞給它。如此重複以上的迴圈,但無需再次呼叫 init() 方法。一般 Servlet 只初始化一次(只有一個物件),當 Server 不再需要 Servlet 時(一般當 Server 關閉時),Server 呼叫 Servlet 的 destroy() 方法。

下圖顯示了一個典型的 Servlet :
Servlet 架構

Servlet 大概可以理解為一個 Java 程式。Servlet 匯入特定的屬於 Java Servlet API 的包。因為是物件位元組碼,可動態地從網路載入,可以說 Servlet 對 Server 就如同 Applet對 Client 一樣,但是,由於 Servlet 執行於 Server 中,它們並不需要一個圖形使用者介面。

相關文章