Servlet的生命周期
分為三個(gè)階段:初始化階段、響應(yīng)客戶請(qǐng)求階段和終止階段。
javax.servlet.Servlet接口定義了3個(gè)方法:
init()、service()、destroy().
初始化階段:
在下列情況下Servlet容器裝載Servlet:
Servlet容器啟動(dòng)時(shí)自動(dòng)裝在某些Servlet.
Servlet容器啟動(dòng)后,客戶首次向Servlet發(fā)出請(qǐng)求。
Servlet的類文件被更新后,重新裝載Servlet.
//Servlet容器是否在啟動(dòng)時(shí)自動(dòng)裝載Servlet,這是由在web.xml中為Servlet設(shè)置的<load-on-startup>屬性決定的
Servlet被裝載后,Servlet容器創(chuàng)建一個(gè)Servlet實(shí)例并且調(diào)用Servlet的init()方法進(jìn)行初始化。在Servlet的整個(gè)生命周期中,init方法只會(huì)被調(diào)用一次。
重載方式:
public void init(ServletConfig config) throws ServletException;
public void init()throws ServletException;
用第一個(gè)方法應(yīng)該先調(diào)用super.init(config)方法確保參數(shù)config應(yīng)用ServletConfig對(duì)象;
用第二個(gè)方法可以不用調(diào)用super.init()方法,如果要在init方法中訪問ServletConfig對(duì)象,可以調(diào)用Servlet類的getServletConfig()方法。
響應(yīng)客戶請(qǐng)求階段
Servlet容器創(chuàng)建特定于這個(gè)請(qǐng)求的ServletRequest對(duì)象和ServletResponse對(duì)象,然后調(diào)用Servlet的service方法從ServletRequest對(duì)象獲得客戶請(qǐng)求信息并處理該請(qǐng)求,通過
ServletResponse對(duì)象向客戶返回響應(yīng)結(jié)果。
終止階段
當(dāng)Web應(yīng)用被終止,或Servlet容器終止運(yùn)行,或Servlet容器重新裝載Servlet的新實(shí)例時(shí),Servlet容器會(huì)先調(diào)用Servlet的destroy()方法。在destroy方法中,可以釋放Servlet所
占用的資源。
posted on 2009-03-08 12:12 亂せ英豪 閱讀(168) 評(píng)論(0) 編輯 收藏