1. 程式人生 > >Servlet的生命週期詳解

Servlet的生命週期詳解

Servlet的宣告週期 敘述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 的垃圾回收器進行垃圾回收的。