Servlet的生命週期詳解
阿新 • • 發佈:2018-12-18
敘述Servlet的生命週期其實就是找出Servlet是怎麼出生的又是怎麼消失的一個過程。我們從最主要的三個方法去記錄Servlet產生與消失的過程:
初始化階段,呼叫init方法:
- 初始化階段。init方法是在Servlet例項化之後呼叫init()方法。整個servlet生命週期中,init()方法只執行一次。
- 當我們需要重寫init方法的時候我們只需要重寫無參的init方法即可。因為在GenericServlet類中有參的init方法呼叫了無參的init方法。
響應客戶請求階段,呼叫service方法(最重要):
- service() 方法是 Servlet 的核心。
- 響應客戶請求階段,呼叫service()方法。即建立的servlet方法。方法可以被多次呼叫。每次都是建立一個執行緒進行呼叫。
- 在servlet中預設情況下,無論你是get還是post 提交過來都會經過service()方法來處理,然後轉向到doGet。
- 對於service方法,一般不需要重寫,因為在HttpServlet中實現,它會根據請求的方式,呼叫doGet/doPost也就是說service是用來轉向的,所以我們一般寫一個servlet,只需要重寫doGet或者doPost就可以了。
終止階段,呼叫destroy方法:
- 呼叫destroy()方法。只執行一次。
- 通常情況下Servlet容器停止,重新啟動都會引起銷燬Servlet物件的動作,重新部署專案也會引起Servlet物件的銷燬同時會呼叫destroy方法。
- 除此之外,Servlet容器也有自身管理Servlet物件的準則,整個生命週期並不需要人為進行干預。
當執行完 destroy方法之後Servlet的生命週期也就結束了
垃圾回收:
- Servlet 由 JVM 的垃圾回收器進行垃圾回收的。