<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    servlet 學(xué)習(xí)筆記之二

    ——關(guān)于 Servlet 生命周期

     

     

    寫這篇總結(jié)的時(shí)候,已經(jīng)辭職有好幾天了。去北京還沒有買到票, 4 月前,北京、上海、拉薩等地方的火車票都沒有了,還好我不急著走。

     

    下面總結(jié)了 servlet 的生命周期。

    Servlet 運(yùn)行在 Servlet 容器中,其生命周期由容器來管理。 Servlet 的生命周期通過 Servlet 接口中 init ()、 service ()、 destroy ()方法來表示。

    Servlet 的生命周期包含了下面 4 個(gè)階段。

    (1)       加載和實(shí)例化

    Servlet 容器負(fù)責(zé)加載和實(shí)例化 Servlet 。當(dāng) Servlet 容器啟動(dòng)時(shí),或者在容器檢查到需要這個(gè) Servlet 來響應(yīng)一個(gè)請(qǐng)求時(shí),創(chuàng)建 Servlet 實(shí)例。當(dāng) Servlet 容器啟動(dòng)后,它必須要知道所需的 Servlet 類在什么位置, Servlet 容器可以從本地文件系統(tǒng)、遠(yuǎn)程文件系統(tǒng)或者其他網(wǎng)絡(luò)服務(wù)器中通過類加載器加載 Servlet 類,成功加載后,容器創(chuàng)建 Servlet 實(shí)例。因?yàn)槿萜魇峭ㄟ^ Java 的反射 API 來創(chuàng)建 Servlet 實(shí)例,調(diào)用的是 Servlet 的默認(rèn)構(gòu)造函數(shù),也就是那個(gè)不帶參數(shù)的構(gòu)造函數(shù),所以我們?cè)诰帉?/span> Servlet 類的時(shí)候,不應(yīng)該提供帶參數(shù)的構(gòu)造函數(shù)。——這也就是為什么 Servlet 類可以不寫構(gòu)造函數(shù)的原因。

    (2)       初始化

    Servlet 實(shí)例化之后,容器必須調(diào)用 Servlet init ()方法初始化這個(gè)對(duì)象。初始化的目的是為了讓 Servlet 對(duì)象在處理客戶請(qǐng)求前完成一些初始化工作,如建立數(shù)據(jù)庫(kù)連接,獲取配置信息等。對(duì)于每一個(gè) Servlet 實(shí)例, init ()方法只能被調(diào)用一次。在初始化期間, Servlet 實(shí)例可以使用容器為它準(zhǔn)備的 ServletConfit 對(duì)象從 web 應(yīng)用程序的配置信息(在 web.xml 中配置)中獲取初始化的參數(shù)信息。在初始化期間,如果發(fā)生錯(cuò)誤, Servlet 實(shí)例可以拋出異常來通知容器。

    (3)       請(qǐng)求處理

    Servlet 容器調(diào)用 Servlet service ()方法對(duì)請(qǐng)求進(jìn)行處理。要注意的是,在 service ()方法調(diào)用之前, init ()方法必須成功執(zhí)行。在 service ()方法中, servlet 實(shí)例通過 ServletRequest 對(duì)象得到客戶端的相關(guān)信息和請(qǐng)求信息,在對(duì)請(qǐng)求進(jìn)行處理后,調(diào)用 servletResponse 對(duì)象的方法設(shè)置響應(yīng)信息。

    (4)       服務(wù)終止

    當(dāng)容器檢測(cè)在一個(gè) Servlet 實(shí)例應(yīng)該從服務(wù)中被移除的時(shí)候,容器就會(huì)調(diào)用實(shí)例的 destroy ()方法,以便讓該實(shí)例可以釋放它所使用的資源,保存數(shù)據(jù)到持久存儲(chǔ)設(shè)備中。當(dāng)需要釋放內(nèi)存或者容器關(guān)閉時(shí),容器就會(huì)調(diào)用 Servlet 實(shí)例的 destroy ()方法。在調(diào)用 destroy ()方法后,容器會(huì)釋放這個(gè) Servlet 實(shí)例,該實(shí)例隨后會(huì)被 java 的垃圾收集器回收。

     

    在整個(gè) Servlet 的生命周期過程中,創(chuàng)建 Servlet 實(shí)例、調(diào)用實(shí)例的 init ()和 destroy ()方法都只進(jìn)行一次,當(dāng)初始化完成后, Servlet 容器會(huì)將該實(shí)例保存在內(nèi)存中,通過調(diào)用它的 service ()方法,為接收到的請(qǐng)求服務(wù)。

    posted on 2007-03-26 19:16 -274°C 閱讀(1700) 評(píng)論(4)  編輯  收藏 所屬分類: JSP


    FeedBack:
    # re: servlet學(xué)習(xí)筆記之二[未登錄]
    2007-03-26 20:26 | 阿蜜果
    許久不見了,繼續(xù)加油,找份好工作!  回復(fù)  更多評(píng)論
      
    # re: servlet學(xué)習(xí)筆記之二
    2007-03-27 13:47 | 兵臨城下
    呵呵,無意中看到了。去中興面試問我這個(gè)問題,一時(shí)沒答上來,郁悶!現(xiàn)在知道了!  回復(fù)  更多評(píng)論
      
    # re: servlet學(xué)習(xí)筆記之二
    2007-03-27 15:05 | BeanSoft
    是呀, 面試大部分時(shí)候都是問些概念題...  回復(fù)  更多評(píng)論
      
    # re: servlet學(xué)習(xí)筆記之二
    2012-03-08 22:14 | 開始了
    作者的類容真的很有用, 學(xué)習(xí)中希望自己也能有自己的收獲啊,我也要加油了  回復(fù)  更多評(píng)論
      

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊(cè)

    JAVA網(wǎng)站

    關(guān)注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914507
    • 排名 - 40

    最新評(píng)論

    主站蜘蛛池模板: 夫妻免费无码V看片| 亚洲av综合日韩| 亚洲伊人久久综合影院| 国产免费女女脚奴视频网| 久久99毛片免费观看不卡| 美女视频黄频a免费大全视频| 亚洲一卡2卡4卡5卡6卡在线99 | 国产在线19禁免费观看| 18禁无遮挡无码国产免费网站| 国产一级婬片A视频免费观看| 美女无遮挡免费视频网站| 精品亚洲成在人线AV无码| 亚洲国产女人aaa毛片在线| 亚洲一区二区三区香蕉| 亚洲美女在线国产| 国产美女无遮挡免费视频 | 91丁香亚洲综合社区| 亚洲精品成人av在线| 狠狠色伊人亚洲综合成人| 国产亚洲精aa成人网站| 亚洲精品第一国产综合境外资源| 国产精品深夜福利免费观看| 永久免费av无码网站韩国毛片| 成人免费福利视频| 91精品视频免费| 午夜福利不卡片在线播放免费| 99久久精品免费精品国产| 免费视频成人片在线观看| 日韩免费无码视频一区二区三区 | 亚洲精品无码久久毛片| 日产国产精品亚洲系列| 亚洲色欲久久久久综合网| 成人亚洲性情网站WWW在线观看| 久久久久亚洲AV成人网| 自拍偷自拍亚洲精品第1页| 日韩精品亚洲aⅴ在线影院| 亚洲情XO亚洲色XO无码| 久久精品国产亚洲AV麻豆不卡| 一区二区三区亚洲| 亚洲一级毛片中文字幕| 亚洲av成本人无码网站|