Servlet 的生命週期

2021-06-21 09:26:55 字數 1722 閱讀 1442

servlet 的生命週期

servlet的生命週期主要有下列三個過程組成:

(1)初始化servlet。servlet第一次被請求載入時,伺服器初始化這個servlet,即建立乙個servlet物件,這物件呼叫init方法完成必要的初始化工作。

(2)誕生的servlet物件再呼叫service方法響應客戶的請求。

(3)當伺服器關閉時,呼叫destroy方法,消滅servlet物件。

init方法只被呼叫一次,即在servlet第一次被請求載入時呼叫該方法。當後續的客戶請求servlet服務時,web服務將啟動乙個新的執行緒,在該執行緒中,servlet呼叫service方法響應客戶的請求,也就是說,每個客戶的每次請求都導致service方法被呼叫執行。

init方法

該方法是httpservlet類中的方法,我們可以在servlet中重寫這個方法。

方法描述:

public void init(servletconfig config) throws servletexception

servlet第一次被請求載入時,伺服器初始化乙個servlet,即建立乙個servlet物件,這個物件呼叫init方法完成必要的初始化工作。該方法在執行時,servlet引擎會把乙個

2sevletconfig型別的物件傳遞給init()方法,這個物件就被儲存在servlet物件中,直到servlet物件被消滅,這個servletconfig物件負責向servlet傳遞服務設定資訊,如果傳遞失敗就會發生serveletexception,servlet就不能正常工作。

我們已經知道,當多個客戶請求乙個servlet時,引擎為每個客戶啟動乙個執行緒,那麼servlet類的成員變數被所有的執行緒共享。

service方法

該方法是httpservlet類中的方法,我們可以在servlet中直接繼承該方法或重寫這個方法。

方法描述:

當servlet成功建立和初始化之後,servlet就呼叫service方法來處理使用者的請求並返回響應。servlet引擎將兩個引數傳遞給該方法,乙個httpservletrequest型別的物件,該物件封裝了使用者的請求資訊,此物件呼叫相應的方法可以獲取封裝的資訊,即使用這個物件可以獲取使用者提交的資訊。另外乙個引數物件是httpservletresponse型別的物件,該物件用來響應使用者的請求。和init方法不同的是,init方法只被呼叫一次,而service方法可能被多次的呼叫,我們已經知道,當後續的客戶請求servlet服務時,servlet引擎將啟動乙個新的執行緒,在該執行緒中,servlet呼叫service方法響應客戶的請求,也就是說,每個客戶的每次請求都導致service方法被呼叫執行,呼叫過程執行在不同的執行緒中,互不干擾。

destroy方法

該方法是httpservlet類中的方法。servlet可直接繼承這個方法,一般不需要重寫。

方法描述:

public destroy()

當servlet引擎終止服務時,比如關閉伺服器等,destroy()方法會被執行,消滅servlet物件。

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容器...