Servlet的生命周期:
(1)裝載Servlet。這項(xiàng)操作一般是動(dòng)態(tài)執(zhí)行的。然而,Server通常會(huì)提供一個(gè)管理的選項(xiàng),用于在Server啟動(dòng)時(shí)強(qiáng)制裝載和初始化特定的Servlet;
(2)Server創(chuàng)建一個(gè)Servlet的實(shí)例;
(3)Server調(diào)用Servlet的init()方法;
(4)一個(gè)客戶端的請(qǐng)求到達(dá)Server;
(5)Server創(chuàng)建一個(gè)請(qǐng)求對(duì)象;
(6)Server創(chuàng)建一個(gè)響應(yīng)對(duì)象;
(7)Server激活Servlet的service()方法,傳遞請(qǐng)求和響應(yīng)對(duì)象作為參數(shù);
(8)service()方法獲得關(guān)于請(qǐng)求對(duì)象的信息,處理請(qǐng)求,訪問其他資源,獲得需要的信息;
(10)service()方法使用響應(yīng)對(duì)象的方法,將響應(yīng)傳回Server、最終到達(dá)客戶端。
service()方法可能激活其它方法以處理請(qǐng)求,如doGet()或doPost()或程序員自己開發(fā)的新的方法;
對(duì)于更多的客戶端請(qǐng)求,Server創(chuàng)建新的請(qǐng)求和響應(yīng)對(duì)象,仍然激活此Servlet的service()方法,將這兩個(gè)對(duì)象作為參數(shù)傳遞給它。如此重復(fù)以上的循環(huán),但無需再次調(diào)用init()方法。一般Servlet只初始化一次;
當(dāng)Server不再需要Servlet時(shí),Server調(diào)用Servlet的Destroy()方法。