了解了servlet的執行流程後,要講一下servlet的生命週期,包括三個階段:
初始化執行銷毀
初始化 init方法 執行一次
servllet的初始化就是將對應的類例項化並呼叫其init方法,僅執行一次,有兩種初始化方案
在伺服器啟動時執行(需要在web.xml中對應的servlet下增加 load-start-up標籤來標註啟動的順序)
在呼叫對應的servlet時執行
執行 service方法 執行多次
執行過程中每當有對應的請求傳送過來,執行servlet例項的service方法
執行過程如下圖:
注意:servlet的原始碼中定義了,直接呼叫父類的doget/dopost方法時會返回400或405的錯誤相應**,需要在子類中重寫這兩個方法
在api中有說明,不需要重寫父類的service方法,因為該方法只是做一次分發動作
父類的service方法中呼叫doget/dopost方法時,省略了this關鍵字,所以實際執行的方法應該是當前物件的方法即子類重寫的方法
注意這裡用到了單例模式(後面學習)
銷毀 destory方法 執行一次
在伺服器關閉前呼叫對應的destory方法,僅執行一次
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容器...