1. 程式人生 > >Servlet 工作原理解析(個人標記,重點,隨時複習)

Servlet 工作原理解析(個人標記,重點,隨時複習)

參考連結:Servlet 工作原理解析

對原文的補充:
1.文中只說到loadOnStartup大於0時在web容器啟動時例項化該servlet,而其他情況並沒有說明。

如果沒有設定loadOnStartup,則第一次請求的時候例項化
設定loadOnStartup後分三種情況:
loadOnStartup < 0
即負數的情況下,web容器啟動的時候不做例項化處理,servlet首次被呼叫時做例項化
這種情況和沒有設定loadOnStartup是一樣的。
loadOnStartup > 0
web容器啟動的時候做例項化處理,順序是由小到大,正整數小的先被例項化
loadOnStartup = 0
web容器啟動的時候做例項化處理,相當於是最大整數,因此web容器啟動時,最後被例項化

2.銷燬Servlet物件的時機

Servlet容器停止或者重新啟動:Servlet容器呼叫Servlet物件的destroy方法來釋放資源。

網友整理:
Q:Java code官方文件上說:Servlet引擎必須等待所有的service()方法完成或超時結束之後才會銷燬這個servlet
我想問的是:一個web專案,當有多個使用者訪問了一個servlet,當都訪問結束以後servlet是不是會立即被銷燬掉或者是有什麼設定超時的配置在多長時間將會被銷燬????
A:要搞清楚doGet和doPost是在service中被呼叫的,doGet和doPost執行完返回資訊了不代表service也執行完了

Q:servlet會被回收嗎?
A:servlet是單例物件,不會被回收