Servlet 的生命周期

Servlet體系結(jié)構(gòu)是建立在 Java 多線程機(jī)制上的松却,它的生命周期由 Web 容器負(fù)責(zé)辕近。當(dāng)客戶端第一次請(qǐng)求某個(gè) Servlet 時(shí)介褥,Servlet 容器將會(huì)根據(jù) web.xml 的配置文件實(shí)例化這個(gè) Servlet 類吮廉。當(dāng)有新的客戶端請(qǐng)求該 Servlet 時(shí)逾礁,一般不會(huì)再實(shí)例化該 Servlet 類说铃。當(dāng)有多個(gè)請(qǐng)求時(shí),Servlet 容器會(huì)起多個(gè)線程來訪問同一個(gè) Servlet 實(shí)例的 service() 方法嘹履,如果該 Servlet 實(shí)例中有共享的實(shí)例變量腻扇,需要注意多線程安全問題。

Servlet 生命周期定義了 Servlet 從創(chuàng)建到毀滅的整個(gè)過程砾嫉,總共分為四個(gè)步驟幼苛。

  1. 調(diào)用 init() 方法初始化
  2. 調(diào)用 service() 方法來處理客戶端的請(qǐng)求
  3. 調(diào)用 destroy() 方法釋放資源,標(biāo)記自身為可回收
  4. 被垃圾回收器回收

init() 方法

init 方法被設(shè)計(jì)成只調(diào)用一次焕刮。它在第一次創(chuàng)建 Servlet 時(shí)被調(diào)用舶沿,用于 Servlet的初始化,初始化的數(shù)據(jù)配并,可以在整個(gè)生命周期中使用暑椰。

service() 方法

service() 方法是執(zhí)行實(shí)際任務(wù)的主要方法。 Servlet 容器(Tomcat荐绝、Jetty等)調(diào)用 service() 方法來處理來自客戶端(瀏覽器)的請(qǐng)求一汽,并把相應(yīng)結(jié)果返回給客戶端。

每次 Servlet 容器接收到一個(gè) Http 請(qǐng)求低滩, Servlet 容器會(huì)產(chǎn)生一個(gè)新的線程并調(diào)用 Servlet實(shí)例的 service 方法召夹。 service 方法會(huì)檢查 HTTP 請(qǐng)求類型(GET、POST恕沫、PUT监憎、DELETE 等),并在適當(dāng)?shù)臅r(shí)候調(diào)用 doGet婶溯、doPost鲸阔、doPut偷霉、doDelete 方法。所以褐筛,在編碼請(qǐng)求處理邏輯的時(shí)候类少,我們只需要關(guān)注 doGet()、或doPost()的具體實(shí)現(xiàn)即可渔扎。

destroy() 方法

destroy() 方法也只會(huì)被調(diào)用一次硫狞,在 Servlet 生命周期結(jié)束時(shí)調(diào)用。destroy() 方法主要用來清掃“戰(zhàn)場(chǎng)”晃痴,執(zhí)行如關(guān)閉數(shù)據(jù)庫(kù)連接残吩、釋放資源等行為。

調(diào)用 destroy 方法之后倘核,servlet 對(duì)象被標(biāo)記為垃圾回收泣侮,等待 JVM 的垃圾回收器進(jìn)行處理。

Servlet 生命周期

參考鏈接:

  1. Servlet生命周期-菜鳥教程
  2. Servlet是否線程安全
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末紧唱,一起剝皮案震驚了整個(gè)濱河市活尊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌琼蚯,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惠况,死亡現(xiàn)場(chǎng)離奇詭異遭庶,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)稠屠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門峦睡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人权埠,你說我怎么就攤上這事榨了。” “怎么了攘蔽?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵龙屉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我满俗,道長(zhǎng)转捕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任唆垃,我火速辦了婚禮五芝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辕万。我一直安慰自己枢步,他們只是感情好沉删,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著醉途,像睡著了一般矾瑰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上结蟋,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天脯倚,我揣著相機(jī)與錄音,去河邊找鬼嵌屎。 笑死推正,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宝惰。 我是一名探鬼主播植榕,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼尼夺!你這毒婦竟也來了尊残?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤淤堵,失蹤者是張志新(化名)和其女友劉穎寝衫,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拐邪,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慰毅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扎阶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汹胃。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖东臀,靈堂內(nèi)的尸體忽然破棺而出着饥,到底是詐尸還是另有隱情,我是刑警寧澤惰赋,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布宰掉,位于F島的核電站,受9級(jí)特大地震影響赁濒,放射性物質(zhì)發(fā)生泄漏贵扰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一流部、第九天 我趴在偏房一處隱蔽的房頂上張望戚绕。 院中可真熱鬧,春花似錦枝冀、人聲如沸舞丛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽球切。三九已至谷誓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吨凑,已是汗流浹背捍歪。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸵钝,地道東北人糙臼。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像恩商,于是被迫代替她去往敵國(guó)和親变逃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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

  • servlet的生命周期是servlet相關(guān)知識(shí)中很重要的一部分怠堪。 servlet從被加載到銷毀經(jīng)歷了多個(gè)階段揽乱,其...
    六尺帳篷閱讀 1,132評(píng)論 1 10
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司粟矿,掛了不少凰棉,但最終還是拿到小米、百度陌粹、阿里撒犀、京東、新浪申屹、CVTE绘证、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,255評(píng)論 11 349
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法隧膏,類相關(guān)的語法哗讥,內(nèi)部類的語法,繼承相關(guān)的語法胞枕,異常的語法杆煞,線程的語...
    子非魚_t_閱讀 31,644評(píng)論 18 399
  • 0 系列目錄# WEB請(qǐng)求處理 WEB請(qǐng)求處理一:瀏覽器請(qǐng)求發(fā)起處理 WEB請(qǐng)求處理二:Nginx請(qǐng)求反向代理 本...
    七寸知架構(gòu)閱讀 13,964評(píng)論 22 190
  • Servlet Interface 是Java Servlet API的核心抽象。所有的servlets都直接或者...
    Lucky_Micky閱讀 1,699評(píng)論 2 2