首頁 > 常見問題 > 主體

如何認識servlet的生命週期

coldplay.xixi
發布: 2020-11-02 11:52:20
原創
37193 人瀏覽過

servlet生命週期:1、初始化階段,Servlet容器會建立一個Servlet實例並呼叫【init()】方法;2、處理客戶端請求階段,每收到一個客戶端請求,伺服器就會產生一個新的執行緒去處理;3、終止階段,呼叫destroy方法終止。

如何認識servlet的生命週期

servlet生命週期:

1、servlet的生命週期

主要有三個方法:

  • init()初始化階段

  • service()處理客戶端請求階段

  • destroy()終止階段

初始化階段:

Servlet容器載入Servlet,載入完成後,Servlet容器會建立一個Servlet實例並呼叫init()方法,init()方法只會呼叫一次

Servlet容器會在一下幾種情況裝載Servlet:

Servlet容器啟動時自動裝載某些servlet,實作這個需要在web.xml檔案中加入1

在Servlet容器啟動後,客戶首次向Servlet發送請求

Servlet類別檔案被更新後,重新載入

#處理客戶端請求階段:

每收到一個客戶端請求,伺服器就會產生一個新的執行緒去處理。

對於使用者的Servlet請求,Servlet容器會建立一個特定於請求的ServletRequest和ServletResponse。

對於tomcat來說,它會將傳遞來的參數放入一個HashTable中,這是一個String–>String[]的鍵值映射

終止階段:

當web應用程式終止,或Servlet容器終止運行,或Servlet重新載入Servlet新實例時,Servlet容器會呼叫Servlet的destroy()方法

#2 、servlet的工作原理

客戶發送一個請求,Servlet調用service()方法對請求進行回應,service()方法會對請求的方法進行匹配,進入相應的邏輯層,完成請求的響應。

但是Servlet介面和GenericServlet介面中沒有doGet(),doPost()等方法,HttpServlet中定義了這些,但是傳回的都是Error訊息,所以每次定義Servlet都要重寫這些方法。

Sertvlet和GenericServlet是不特定於任何協定的,而HttpServlet是特定於Http協定的,所以HttpServlet中的service()方法中將ServletRequest,ServletResponse強轉為HttpRequest和HttpResponse,最後呼叫自己的service方法去完成回應。

相關免費推薦:程式設計影片課程

以上是如何認識servlet的生命週期的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!