Servlet生命周期

Servlet?生命周期

Servlet 生命周期可被定義為從創(chuàng)建直到毀滅的整個過程。以下是 Servlet 遵循的過程:

Servlet 通過調(diào)用?init ()?方法進行初始化湿硝。

Servlet 調(diào)用?service()?方法來處理客戶端的請求犹菇。

Servlet 通過調(diào)用?destroy()?方法終止(結(jié)束)悼枢。

最后锄开,Servlet 是由 JVM 的垃圾回收器進行垃圾回收的博助。

現(xiàn)在讓我們詳細討論生命周期的方法蚓庭。

init() 方法

init 方法被設計成只調(diào)用一次。它在第一次創(chuàng)建 Servlet 時被調(diào)用膀懈,在后續(xù)每次用戶請求時不再調(diào)用顿锰。因此,它是用于一次性初始化启搂,就像 Applet 的 init 方法一樣硼控。

Servlet 創(chuàng)建于用戶第一次調(diào)用對應于該 Servlet 的 URL 時,但是您也可以指定 Servlet 在服務器第一次啟動時被加載胳赌。

當用戶調(diào)用一個 Servlet 時淀歇,就會創(chuàng)建一個 Servlet 實例,每一個用戶請求都會產(chǎn)生一個新的線程匈织,適當?shù)臅r候移交給 doGet 或 doPost 方法浪默。init() 方法簡單地創(chuàng)建或加載一些數(shù)據(jù),這些數(shù)據(jù)將被用于 Servlet 的整個生命周期缀匕。

init 方法的定義如下:

public void init() throws ServletException {

// 初始化代碼...

}

service() 方法

service() 方法是執(zhí)行實際任務的主要方法纳决。Servlet 容器(即 Web 服務器)調(diào)用 service() 方法來處理來自客戶端(瀏覽器)的請求,并把格式化的響應寫回給客戶端乡小。

每次服務器接收到一個 Servlet 請求時阔加,服務器會產(chǎn)生一個新的線程并調(diào)用服務。service() 方法檢查 HTTP 請求類型(GET满钟、POST胜榔、PUT胳喷、DELETE 等),并在適當?shù)臅r候調(diào)用 doGet夭织、doPost吭露、doPut,doDelete 等方法尊惰。

下面是該方法的特征:

public void service(ServletRequest request, ServletResponse response)? throws ServletException, IOException{}

service() 方法由容器調(diào)用讲竿,service 方法在適當?shù)臅r候調(diào)用 doGet、doPost弄屡、doPut题禀、doDelete 等方法。所以膀捷,您不用對 service() 方法做任何動作迈嘹,您只需要根據(jù)來自客戶端的請求類型來重寫 doGet() 或 doPost() 即可。

doGet() 和 doPost() 方法是每次服務請求中最常用的方法全庸。下面是這兩種方法的特征江锨。

doGet() 方法

GET 請求來自于一個 URL 的正常請求,或者來自于一個未指定 METHOD 的 HTML 表單糕篇,它由 doGet() 方法處理。

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

?????? // Servlet 代碼

}

doPost() 方法

POST 請求來自于一個特別指定了 METHOD 為 POST 的 HTML 表單酌心,它由 doPost() 方法處理拌消。

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

???? // Servlet 代碼

}

destroy() 方法

destroy() 方法只會被調(diào)用一次,在 Servlet 生命周期結(jié)束時被調(diào)用安券。destroy() 方法可以讓您的 Servlet 關閉數(shù)據(jù)庫連接墩崩、停止后臺線程、把 Cookie 列表或點擊計數(shù)器寫入到磁盤侯勉,并執(zhí)行其他類似的清理活動鹦筹。

在調(diào)用 destroy() 方法之后,servlet 對象被標記為垃圾回收址貌。destroy 方法定義如下所示:

public void destroy() {

// 終止化代碼...

}

架構圖

下圖顯示了一個典型的 Servlet 生命周期方案铐拐。

第一個到達服務器的 HTTP 請求被委派到 Servlet 容器。

Servlet 容器在調(diào)用 service() 方法之前加載 Servlet练对。

然后 Servlet 容器處理由多個線程產(chǎn)生的多個請求遍蟋,每個線程執(zhí)行一個單一的 Servlet 實例的 service() 方法。


轉(zhuǎn)載自:https://www.runoob.com/servlet/servlet-life-cycle.html

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末螟凭,一起剝皮案震驚了整個濱河市虚青,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌螺男,老刑警劉巖棒厘,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纵穿,死亡現(xiàn)場離奇詭異,居然都是意外死亡奢人,警方通過查閱死者的電腦和手機谓媒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來达传,“玉大人篙耗,你說我怎么就攤上這事∠芨希” “怎么了宗弯?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長搂妻。 經(jīng)常有香客問我蒙保,道長,這世上最難降的妖魔是什么欲主? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任邓厕,我火速辦了婚禮,結(jié)果婚禮上扁瓢,老公的妹妹穿的比我還像新娘详恼。我一直安慰自己,他們只是感情好引几,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布昧互。 她就那樣靜靜地躺著,像睡著了一般伟桅。 火紅的嫁衣襯著肌膚如雪敞掘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天楣铁,我揣著相機與錄音玖雁,去河邊找鬼。 笑死盖腕,一個胖子當著我的面吹牛赫冬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播溃列,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼面殖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了哭廉?” 一聲冷哼從身側(cè)響起脊僚,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后辽幌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體增淹,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年乌企,在試婚紗的時候發(fā)現(xiàn)自己被綠了虑润。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡加酵,死狀恐怖拳喻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情猪腕,我是刑警寧澤冗澈,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站陋葡,受9級特大地震影響亚亲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜腐缤,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一捌归、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧岭粤,春花似錦惜索、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至偿渡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間霸奕,已是汗流浹背溜宽。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留质帅,地道東北人适揉。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像煤惩,于是被迫代替她去往敵國和親嫉嘀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

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

  • Servlet 生命周期可被定義為從創(chuàng)建直到毀滅的整個過程魄揉。以下是 Servlet 遵循的過程: Servlet ...
    駱晨_Rosin閱讀 83評論 0 0
  • Servlet 生命周期 Servlet 生命周期可被定義為從創(chuàng)建直到毀滅的整個過程剪侮。以下是 Servlet 遵循...
    RickJiang閱讀 586評論 0 2
  • 關于本篇文章 了解一些 servlet 概念,本編文章只進行一些文章格式修改,文章內(nèi)使用的圖片均來自 Runoob...
    LeeSpringFly閱讀 124評論 1 0
  • Servlet 生命周期可被定義為從創(chuàng)建直到毀滅的整個過程瓣俯。以下是 Servlet 遵循的過程: Servlet ...
    李序鍇閱讀 310評論 0 1
  • 也許你會問彩匕,到底是水杯泡蝦仁腔剂,還是蝦仁印在了水杯上?我說這兩個看似風馬牛不相及的東東驼仪,在我的心里烙上了愛的痕...
    吐字畫心閱讀 399評論 0 2