1 回答

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
要知道什么是servlet容器?首先您必須熟悉 javax.servlet.Servlet 接口,
Servlet 接口有五個(gè)方法,如下:
public void init(ServletConfig config) throws ServletException
public void service(ServletRequest request, ServletResponse response) throws ServletException, java.io.IOException
public void destroy()
public ServletConfig getServletConfig()
public java.lang.String getServletInfo()
init、service和 destroy 方法是 Servlet 生命周期的方法。當(dāng) Servlet 類實(shí)例化后,容器加載 init,以通知 servlet 它已進(jìn)入服務(wù)行列。init 方法必須被加載,Servelt 才能接收和請求。如果要載入數(shù)據(jù)庫驅(qū)動(dòng)程序、初始化一些值等等,程序員可以重寫這個(gè)方法。在其他情況下,這個(gè)方法一般為空。
service 方法由 Servlet 容器調(diào)用,以允許 Servlet 響應(yīng)一個(gè)請求。Servlet 容器傳遞 javax.servlet.ServletRequest 對(duì)象和 javax.servlet.ServletResponse 對(duì)象。ServletRequest 對(duì)象包含客戶端 HTTP 請求信息,ServletResponse 則封裝servlet 響應(yīng)。通過這兩個(gè)對(duì)象,您可以寫一些需要 servlet怎樣服務(wù)和客戶怎樣請求的代碼。
從service中刪除Servlet實(shí)例之前,容器調(diào)用destroy方法。在servlet容器關(guān)閉或servlet 容器需要更多的內(nèi)存時(shí),就調(diào)用它。這個(gè)方法只有在servlet 的service 方法內(nèi)的所有線程都退出的時(shí)候,或在超時(shí)的時(shí)候才會(huì)被調(diào)用。在 servlet 容器調(diào)用 destroy方法之后,它將不再調(diào)用 servlet的 service方法。
destroy 方法給了servlet機(jī)會(huì),來清除所有空閑資源(比如:內(nèi)存,文件處理和線程),以確保在內(nèi)存的持續(xù)狀態(tài)和 servlet的當(dāng)前狀態(tài)是同步的。
Servlet容器有時(shí)候也叫做Servlet引擎,是Web服務(wù)器或應(yīng)用程序服務(wù)器的一部分,用于在發(fā)送的請求和響應(yīng)之上提供網(wǎng)絡(luò)服務(wù),解碼基于MIME的請求,格式化基于MIME的響應(yīng)。Servlet不能獨(dú)立運(yùn)行,它必須被部署到Servlet容器中,由容器來實(shí)例化和調(diào)用Servlet的方法,Servlet容器在Servlet的生命周期內(nèi)包容和管理Servlet。
- 1 回答
- 0 關(guān)注
- 870 瀏覽
添加回答
舉報(bào)