servlet生命周期

當(dāng)web應(yīng)用啟動(dòng)的時(shí)候,we b.xml文件首先被裝載,(這里面包含了整個(gè)應(yīng)用的servlet配置信息,以及每個(gè)servlet的初始化信息)。同時(shí)創(chuàng)建應(yīng)用的servletContext對(duì)象。

servlet的初始化階段:

一旦一個(gè)servlet進(jìn)入初始化階段,這是需要客戶(hù)端首次請(qǐng)求訪問(wèn)或者在web.xml文件中的<load-on-startup>元素中設(shè)置了數(shù)字(即在應(yīng)用啟動(dòng)的時(shí)候),便開(kāi)始一系列初始化過(guò)程。

1.容器加載servlet.class文件到內(nèi)存中。

2..class文件裝載到內(nèi)存之后,必然可以獲取該servlet的配置信息(位于web.xml文件中的),進(jìn)而封裝稱(chēng)為一個(gè)servletConfig對(duì)象,此時(shí)的servletConfig對(duì)象與servlet Context對(duì)象關(guān)聯(lián)。

3.接下來(lái)是創(chuàng)建servlet對(duì)象。也就是實(shí)例化一個(gè)servlet對(duì)象。

4.servlet容器調(diào)用servlet對(duì)象的init(servletConfig)方法,這使得該對(duì)象與servletConfig對(duì)象關(guān)聯(lián)。

經(jīng)過(guò)以上的步驟那么,servlet對(duì)象與servlet Config對(duì)象關(guān)聯(lián),servletConfig對(duì)象又與servletContext對(duì)象關(guān)聯(lián),導(dǎo)致servlet與servlet Context對(duì)象關(guān)聯(lián)。那么也就是說(shuō)在創(chuàng)建了servlet對(duì)象之后,servlet對(duì)象只要通過(guò)getServletContext()方法就能獲取到當(dāng)前應(yīng)用的servlet Context對(duì)象。

運(yùn)行時(shí)階段:

就是響應(yīng)客戶(hù)端請(qǐng)求的一系列過(guò)程,通過(guò)HttpServletRequest獲取請(qǐng)求信息,再通過(guò)HttpServletResponse對(duì)象生成響應(yīng)結(jié)果。當(dāng)響應(yīng)結(jié)束之后,那么容器會(huì)銷(xiāo)毀request/response對(duì)象。

銷(xiāo)毀階段:(銷(xiāo)毀servletContext對(duì)象)

web應(yīng)用被終止的時(shí)候,Servlet容器會(huì)先調(diào)用web應(yīng)用中所有servlet對(duì)象的destroy()方法,然后再銷(xiāo)毀servlet對(duì)象。此外容器還會(huì)銷(xiāo)毀與servlet對(duì)象關(guān)聯(lián)的servlet Config對(duì)象。

待續(xù)~~~~~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,366評(píng)論 11 349
  • 局部變量放在棧中,實(shí)例變量放在堆中,靜態(tài)變量放在方法區(qū)中 所謂生命周期,指的是Servlet容器如何創(chuàng)建Servl...
    itachi閱讀 212評(píng)論 0 1
  • Servlet 生命周期:Servlet 加載--->實(shí)例化--->服務(wù)--->銷(xiāo)毀。 Servlet生命周期分為...
    重山楊閱讀 765評(píng)論 0 2
  • Servlet程序是運(yùn)行在服務(wù)器端的一段Java程序,其生命周期受到Web容器的控制,生命周期包括:加載程序、初始...
    kylelin閱讀 578評(píng)論 0 1
  • 本文包括: Servlet簡(jiǎn)介關(guān)于Servlet的一些類(lèi) Servlet生命周期 ServletConfig獲得初...
    廖少少閱讀 3,900評(píng)論 1 67