Servlet 是甚么?
第1,Servlet是1種規范,由Sun公司制定的服務器端組件規范。
第2,Servlet 可以運行在web服務器或利用服務器上。
第3,Servlet由Servlet容器進行管理,可實現諸如“實例化并管理Servlet對象”、“調用Servlet生命周期方
法”、“解析及封裝特定協議的要求和響應”等工作。
第4,作為來自 Web 閱讀器的要求和 數據庫或利用程序之間的中間層,Servlet可以搜集來自網頁的用戶請
求,顯現來自數據庫或其他源的記錄,可實現動態創建網頁。
Servlet 架構圖
下圖顯示了 Servlet 在 Web 利用程序中的位置。
Servlet生命周期
Servlet 生命周期可定義為其從創建直到燒毀的全部進程。當用戶調用1個 Servlet 時,就會創建1個 Servlet
實例,每個用戶要求都會產生1個新的線程。
以上是 Servlet 生命周期遵守的進程。
現在讓我們詳細討論生命周期的方法。
Servlet 方法解讀
init() 方法
init 方法被設計成只調用1次。它在第1次創建 Servlet 時被調用,在后續每次用戶要求時不再調用。因此,它
是用于1次性初始化,init() 方法簡單地創建或加載1些數據,這些數據將被用于 Servlet 的全部生命周期。
init 方法的定義以下:
service() 方法
service() 方法是履行實際任務的主要方法。Servlet 容器調用 service() 方法來處理來自客戶端(閱讀
器)的要求,并把格式化的響應寫回給客戶端。
每次服務器接收到1個 Servlet 要求時,服務器會產生1個新的線程并調用服務。service() 方法檢查 HTTP
要求類型(GET、POST、PUT、DELETE 等),并在適當的時候調用 doGet、doPost、doPut,doDelete 等方法。
方法定義:
service() 方法由容器調用,service 方法在適當的時候調用 doGet、doPost、doPut、doDelete 等方法。
所以,我們不用對 service() 方法做任何動作,您只需要根據來自客戶真個要求類型來重載 doGet() 或
doPost() 便可。
doGet() 方法
GET 要求來自于1個 URL 的正常要求,或1個未指定提交方式 的 HTML 表單,它由 doGet() 方法處理。
doPost() 方法
POST 要求來自于1個特別指定了提交方式為 POST 的 HTML 表單,它由 doPost() 方法處理。
destroy() 方法
destroy() 方法只會被調用1次,在 Servlet 生命周期結束時被調用。destroy() 方法可使 Servlet
關閉數據庫連接、停止后臺線程、把 Cookie 列表或點擊計數器寫入到磁盤,并履行其他類似的清算活動。
在調用 destroy() 方法以后,servlet 對象被標記為垃圾回收。destroy 方法定義以下所示:
初次接觸Servlet,可以把它理解為 .NET 中的Handler,由于他們有著類似的作用:都可用來處理客戶端發送的請
求,讓前臺與業務邏輯松耦合,并且實現動態網頁的創建。
由于認知的不足,只能說先這么理解。具體是否是這樣還需要實際利用深入了解后才能做出判斷。 現在學習新
知識的時候很希望從本來學過的知識中找到1些對應的影子,雖然不是那末對應,也有可能這么理解是毛病的,但是
隨著不斷的深入學習,我們也會自但是然的校訂這些偏差,留下更深入的印象。
僅供參考,希望不要誤導大家。