什麼是Servlet的生命週期?

2021-09-24 01:48:18 字數 945 閱讀 6198

由於servlet執行在容器中,沒有 main()方法,因此,整個生命週期都是由容器來控制的。簡單而言,servlet的生命週期只有兩種狀態:未建立狀態和初始化狀態。這兩種狀態的轉換主要是由3個重要的方法來進行控制:init()、service()和destroy()。

其中,init()方法是servlet生命的起點,用於建立或開啟任何與servlet相關的資源以及執行初始化工作。

service()方法是servlet中真正處理客戶端傳過來的請求的方法,它根據http 請求方法(get/post等)將請求分發到doget()、dopost()等方法。

destroy()方法釋放任何在init()方法中開啟的與servlet相關的資源。

具體而言,servlet的生命週期可以分為載入、建立、初始化、處理客戶請求和銷毀5個階段。

1.載入。容器通過類載入器使用servlet類對應的檔案來載入 servlet。

2.建立。通過呼叫servlet的構造方法來建立乙個servlet例項。

3.初始化。通過呼叫servlet的init() 方法來完成初始化工作,這個方法是在servlet已被建立但向客戶端提供服務之前呼叫的,需要注意的是,init()方法只會被呼叫一次。

4.處理客戶請求。servlet 一旦被建立後,它就可以為客戶端提供服務了。每當有新的客戶請求到來時,容器都會建立乙個新的執行緒來處理該請求,接著會呼叫servlet的service()方法來完成客戶端的請求,當然,service()方法會根據請求的 method 屬性值的不同呼叫決定是呼叫doget()方法還是呼叫dopost()方法來完成具體的響應。

5.銷毀。容器在銷毀servlet之前需要呼叫destroy()方法,讓servlet自己釋放其占用的系統資源,一旦destroy方法被呼叫,容器就不會再向這個servlet傳送任何請求訊息了。如果容器需要這個servlet,那麼就必須重新建立並初始化乙個例項。需要注意的是,destroy()方法只會被呼叫一次。

Servlet生命週期

servlet生命週期分為三個階段 1,初始化階段 呼叫init 方法 2,響應客戶請求階段 呼叫service 方法 3,終止階段 呼叫destroy 方法 servlet初始化階段 1 自動裝載 servlet容器啟動時自動裝載某些servlet,實現它只需要在web.xml檔案中的之間新增1 ...

Servlet生命週期

什麼時候裝載 servlet 1,servlet容器啟動時自動裝載某些servlet,實現它只需要在web.xml檔案中的 之間新增如下 1 2,在servlet容器啟動後,客戶首次向servlet傳送請求。3,servlet類檔案被更新後,重新裝載servlet。2 初始化階段 呼叫init 方法...

Servlet生命週期

1 webclient向servlet容器 tomcat 發出http請求 2 servlet容器接收webclient的請求,建立servlet物件,呼叫其init方法,3 servlet容器建立乙個httprequest物件,將webclient請求的資訊封裝到這個物件中 4 servlet容器...