servlet生命週期:1、初始化階段,Servlet容器會建立一個Servlet實例並呼叫【init()】方法;2、處理客戶端請求階段,每收到一個客戶端請求,伺服器就會產生一個新的執行緒去處理;3、終止階段,呼叫destroy方法終止。
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中文網其他相關文章!