Servlet 生命周期:Servlet 加載—->實(shí)例化—->服務(wù)—->銷毀。
init():在Servlet的生命周期中,僅執(zhí)行一次init()方法。
它是在服務(wù)器裝入Servlet時(shí)執(zhí)行的,負(fù)責(zé)初始化Servlet對象。
可以配置服務(wù)器,以在啟動(dòng)服務(wù)器或客戶機(jī)首次訪問Servlet時(shí)裝入Servlet。
無論有多少客戶機(jī)訪問Servlet,都不會重復(fù)執(zhí)行init()。
service():它是Servlet的核心,負(fù)責(zé)響應(yīng)客戶的請求。
每當(dāng)一個(gè)客戶請求一個(gè)HttpServlet對象,該對象的Service()方法就要調(diào)用,而且傳遞給這個(gè)方法一個(gè)“請求”(ServletRequest)對象和一個(gè)“響應(yīng)”(ServletResponse)對象作為參數(shù)。
在HttpServlet中已存在Service()方法。默認(rèn)的服務(wù)功能是調(diào)用與HTTP請求的方法相應(yīng)的do功能。(doGet doPost)
destroy(): 僅執(zhí)行一次,在服務(wù)器端停止且卸載Servlet時(shí)執(zhí)行該方法。
當(dāng)Servlet對象退出生命周期時(shí),負(fù)責(zé)釋放占用的資源。
一個(gè)Servlet在運(yùn)行service()方法時(shí)可能會產(chǎn)生其他的線程,因此需要確認(rèn)在調(diào)用destroy()方法時(shí),這些線程已經(jīng)終止或完成。