1乍狐、初始化階段:
調(diào)用init()方法,創(chuàng)建一個 Servlet 實例。
在下列時刻Servlet容器裝載Servlet:
∶己ⅰ① Servlet容器啟動時自動裝載某些Servlet咕别,實現(xiàn)它只需要在web.XML文件中的<Servlet></Servlet>之間添加如下代碼:<loadon-startup>1</loadon-startup> 技健;
② Servlet容器啟動后惰拱,客戶首次向Servlet發(fā)送請求雌贱。
出現(xiàn)以上一種情況,Servlet容器(如 tomcat )調(diào)用 init() 方法,創(chuàng)建一個 Servlet 實例欣孤。
2馋没、響應(yīng)客戶請求階段:
① Web客戶向Servlet容器發(fā)出Http請求;
② Servlet容器解析Web客戶的Http請求降传,并創(chuàng)建一個HttpRequest對象篷朵,在這個對象中封裝Http請求信息;
③ Servlet容器創(chuàng)建一個HttpResponse對象婆排;
④ Servlet容器激活 Servlet 的 service() 方法声旺,HttpRequest和HttpResponse對象作為 service() 的參數(shù);
⑤ service() 方法獲得請求的信息,處理請求泽论,訪問其他資源艾少,獲得信息 ;
⑥ Service() 方法調(diào)用響應(yīng)對象的方法翼悴,生成響應(yīng)數(shù)據(jù)缚够,將響應(yīng)傳回 Server ,最終到達客戶端。
注:對于更多的客戶端請求鹦赎,Server創(chuàng)建新的請求和響應(yīng)對象谍椅,仍然激活此Servlet的service()方法,將這兩個對象作為參數(shù)傳遞給它古话。如此重復(fù)以上的循環(huán)雏吭,但無需再次調(diào)用init()方法。一般Servlet只初始化一次陪踩。
3杖们、終止階段:
當WEB應(yīng)用被終止,或Servlet容器終止運行肩狂,或Servlet容器重新裝載Servlet新實例時摘完,Servlet容器會先調(diào)用Servlet的destroy()方法,在destroy()方法中可以釋放掉Servlet所占用的資源傻谁。