servlet,session對象的生命周期


談到javaweb首先想到的就是servlet,說道servlet就會想到servlet的生命周期

 

那么servlet到底是什么時候出生,什么時候死亡叻

 

說道他的生命周期 就繞不過servlet的三個方法init service destroy  

 

當我們將web項目部署到服務器,服務器啟動的時候,這個時候servlet還沒創建,,服務器啟動了  開始對外提供服務,客戶端可以訪問了,

當某一個客戶端第一次訪問時候此servlet時候------》服務器找不到servlet對象-------》這個時候服務器就會創建servlet對象,並且調用init方法,使servlet初始化,獲得他的初始化參數------》init方法調用完成serlvet對象就可以對外提供服務-------》web服務器調用servlet的service方法給客戶端提供服務---》service服務完成servlet繼續存在-------》第二客戶端繼續訪問此servlet--------》服務器繼續尋找servlet對象--------》存在此servlet對象-------》調用此對象的servlet方法提供服務。。。。。。---》不遇到特殊原因知道服務器關閉之前一直存在-------》當web服務器正常關閉的時候,此時調用servlet的destroy方法銷毀,,,

 

當web服務器異常關閉時可能不會調用servlet的destroy方法,,,,

 

重點:

1.servlet不是一啟動web服務器就創建對象,而是要客戶端第一次訪問,web服務器先查看自己有沒有這個對象,沒有才會創建,

  但是有些servlet比較特殊,Web服務器創建時候創建,這是特殊的servlet

2.當web服務器創建servlet對象時候  就會調用init方法初始化servlet,獲得servlet的初始化參數,

  此init 方法,只會在生成對象的時候調用一次,提供服務的時候不調用

3.servlet對外提供服務是調用的他的service方法,調用完成后servlet未被銷毀,還繼續存在於web容器中,等待其他的用戶訪問時候繼續調用他的service方法,所有servlet的service方法是可以被多次調用的

4.只有正常關閉服務器才會調用一次servlet的destroy方法

 

session生命周期,

  session創建:在第一次使用resquest的getSession方法,web服務器會創建一個session

  session使用:session在服務端創建完成后,內存會給session分配一定的空間,並且會生成一個臨時cookie返回給用戶,當用戶第二次訪問的時候會帶上這個臨時cookie,當第二次調用resquest的getSession方法時候,由於有此臨時cookie攜帶的sessionid就可以找到session對應的內存空間,返回此session,此后只要用戶訪問時帶上這個臨時cookie就可以獲得第一次創建的session,並訪問對應的內存空間

  session的銷毀:

    1.默認銷毀:session是有默認時長的,默認情況下,當用戶三十分鍾不和服務器交互數據,session就會被自動銷毀,

    2.手動銷毀:當調用session的invalidate方法時候會銷毀此session

    3.關閉服務器:內存空間被回收了,自然就不存在session了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM