[javaweb] servlet的生命周期 (二)
在父類servlet接口中有三個方法
void init (config) -初始化方法
void service(request,response) -服務方法
void destroy() -摧毀方法
生命周期
對三個方法進行重寫
生命周期∶從出生到死亡的過程就是生命周期。對應servlet中的三個方法:init() ,service ( ) , destroy()
默認情況下∶
第一次接收請求時,這個servlet會進行實例化、初始化,然后服務從第二次請求開始,每一次都是服務當容器關閉時,其中的所有的servlet實例會被銷毀,調用銷毀方法
通過案例我們發現:servlet實例tomcat只會創建一個,所有的請求都是這個實例去響應默認情況下,第一次請求時,tomcat才會去實例化,初始化,然后再服務
優點:提高系統啟動速度
缺點:第一次請求時.耗時時間長
如果需要提高系統的啟動速度,當前默認情況就是這樣。如果需要提高響應速度,我們應該設置Servlet的初始化時機
Servlet的初始化時機
在web.xml中配置
-默認是第一次接收請求時,實例化,初始化
-我們可以通過來設置servlet啟動的先后順序,數字越小,啟動越靠前,最小值0
servlet在容器中是:單例的、線程不安全的
-單例:所有的請求都是同一個實例去響應
-線程不安全:一個線程需要根據這個實例中的某個成員變量值去做邏輯判斷。但是在中間某個時機,另一個線程改變了這個成員變量的值,從而導致第一個線程的執行路徑發生了變化
我們已經知道了servlet是線程不安全的,給我們的啟發是:盡量的不要在servlet中定義成員變量。
如果不得不定義成員變量,那么不要去:①不要去修改成員變量的值 ②根據成員變量的值做一些邏輯判斷
總結
以上是生活随笔為你收集整理的[javaweb] servlet的生命周期 (二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [javaweb] servlet介绍与
- 下一篇: [javaweb] servlet-se