servlet生命週期

2021-08-02 11:53:59 字數 1703 閱讀 3722

servlet生命週期分為三個階段:

-初始化階段 呼叫init()方法

-響應客戶請求階段  呼叫service()方法

-終止階段  呼叫destroy()方法

servlet採用單例模式懶漢式呼叫init()方法,在servlet的生命週期中,僅執行一次init()方法。

init()方法共有兩種:

@override

public

void

init() throws servletexception

@override

public

void

init(servletconfig config) throws servletexception

常用的為不帶引數的構造器,帶引數的構造器一般由**後台管理人員使用,用於**配置檔案的更新。

可通過加入一段xml,來設定初始化使用餓漢式還是懶漢式(是在訪問伺服器的時候直接初始化,還是在執行操作時初始化)

-startup>1(內填入正整數,代表設定餓漢式,否則該**無效)on

-startup>

它是servlet的核心,負責響應客戶的請求。每當乙個客戶請求乙個httpservlet物件,該物件的service()方法就要呼叫,而且傳遞給這個方法乙個「請求」(servletrequest)物件和乙個「響應」(servletresponse)物件作為引數。

service()方法共有兩種:

@override

public

void

service(servletrequest req, servletresponse res) throws servletexception, ioexception

只有void service(servletrequest req,servletresponse response)方法是由tomcat自動呼叫,它將接收的客戶端請求轉交給httpservlet中的另乙個protected void service(httpservletrequest req,httpservletresponse res)方法。

@override

protected

void

service(httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception

此保護型別的service方法再把將請求分發給dopost()、doget()方法進行下一步處理。所以我們完全可以重寫受保護的service()方法來代替dopost()和doget()方法。

僅執行一次,在伺服器端停止且解除安裝servlet時執行該方法。當servlet物件退出生命週期時,負責釋放占用的資源。乙個servlet在執行service()方法時可能會產生其他的執行緒,因此需要確認在呼叫destroy()方法時,這些執行緒已經終止或完成。

destroy()方法標誌servlet生命週期的結束。當服務需要關閉時,它呼叫servlet的destroy()方法。此時,在init()方法中建立的任何資源都應該被清除和釋放。如果有開啟的資料庫連線,應當在此處儲存任何在下一次載入時需要用到的永久性資訊。

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