web開發(fā)中 web 容器的作用(如tomcat)

我們講到servlet可以理解服務(wù)器端處理數(shù)據(jù)的java小程序饲帅,那么誰來負(fù)責(zé)管理servlet呢拓萌?這時候我們就要用到web容器睦优。它幫助我們管理著servlet等壳咕,使我們只需要將重心專注于業(yè)務(wù)邏輯。

什么是web容器血淌?

servlet沒有main方法矩欠,那我們?nèi)绾螁右粋€servlet,如何結(jié)束一個servlet悠夯,如何尋找一個servlet等等癌淮,都受控于另一個java應(yīng)用,這個應(yīng)用我們就稱之為web容器沦补。

我們最常見的tomcat就是這樣一個容器乳蓄。如果web服務(wù)器應(yīng)用得到一個指向某個servlet的請求,此時服務(wù)器不是把servlet交給servlet本身策彤,而是交給部署該servlet的容器栓袖。要有容器向servlet提供http請求和響應(yīng),而且要由容器調(diào)用servlet的方法店诗,如doPost或者doGet裹刮。

web容器的作用

servlet需要由web容器來管理,那么采取這種機制有什么好處呢庞瘸?

  • 通信支持
    利用容器提供的方法捧弃,你可以簡單的實現(xiàn)servlet與web服務(wù)器的對話。否則你就要自己建立server搜創(chuàng)可貼擦囊,監(jiān)聽端口违霞,創(chuàng)建新的流等等一系列復(fù)雜的操作。而容器的存在就幫我們封裝這一系列復(fù)雜的操作瞬场。使我們能夠?qū)W⒂趕ervlet中的業(yè)務(wù)邏輯的實現(xiàn)买鸽。

  • 生命周期管理
    容器負(fù)責(zé)servlet的整個生命周期。如何加載類贯被,實例化和初始化servlet眼五,調(diào)用servlet方法妆艘,并使servlet實例能夠被垃圾回收。有了容器看幼,我們就不用花精力去考慮這些資源管理垃圾回收之類的事情批旺。

  • 多線程支持
    容器會自動為接收的每個servlet請求創(chuàng)建一個新的java線程,servlet運行完之后诵姜,容器會自動結(jié)束這個線程汽煮。

  • 聲明式實現(xiàn)安全
    利用容器,可以使用xml部署描述文件來配置安全性棚唆,而不必將其硬編碼到servlet中暇赤。

  • jsp支持
    容器將jsp翻譯成java!

容器如何處理請求

How the Container handles a request01.PNG

client點擊一個URL瑟俭,其URL指向一個servlet而不是靜態(tài)界面翎卓。

How the Container handles a request02.PNG

容器識別出這個請求索要的是一個servlet,所以創(chuàng)建兩個對象:

  • httpservletrequest
  • httpservletresponse
03.PNG

容器根據(jù)請求中的URL找到對應(yīng)的servlet摆寄,為這個請求創(chuàng)建或分配一個線程,并把兩個對象request和response傳遞到servlet線程中坯门。

Paste_Image.png

容器調(diào)用servlet的service()方法微饥。根據(jù)請求的不同類型,service()方法會調(diào)用doGet()或者doPost()方法古戴。

Paste_Image.png

doGet()方法生成動態(tài)頁面欠橘,然后把這個頁面填入到response對象中,此時现恼,容器仍然擁有response對象的引用肃续。

Paste_Image.png

線程結(jié)束。容器把response對象轉(zhuǎn)換成http響應(yīng)叉袍,傳回client始锚,并銷毀response和request對象。

URL與servlet映射模式

<servlet>
    <servlet-name>Ch1Servlet</servlet-name>
    <servlet-class>ch1Servlet.Ch1Servlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Ch1Servlet</servlet-name>
    <url-pattern>/Ch1Servlet</url-pattern>
  </servlet-mapping>

servlet有三個名字:

  • 客戶知道的URL名 <url-pattern>/Ch1Servlet</url-pattern>
  • 部署人員知道的秘密的內(nèi)部名 <servlet-name>Ch1Servlet</servlet-name>
  • 實際文件名 <servlet-class>ch1Servlet.Ch1Servlet</servlet-class>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喳逛,一起剝皮案震驚了整個濱河市瞧捌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌润文,老刑警劉巖姐呐,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異典蝌,居然都是意外死亡曙砂,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門骏掀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乔夯,“玉大人,你說我怎么就攤上這事末荐。” “怎么了新锈?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長妹笆。 經(jīng)常有香客問我,道長拳缠,這世上最難降的妖魔是什么墩新? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任海渊,我火速辦了婚禮,結(jié)果婚禮上哲鸳,老公的妹妹穿的比我還像新娘。我一直安慰自己徙菠,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布婿奔。 她就那樣靜靜地躺著,像睡著了一般萍摊。 火紅的嫁衣襯著肌膚如雪挤茄。 梳的紋絲不亂的頭發(fā)上记餐,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天驮樊,我揣著相機與錄音,去河邊找鬼片酝。 笑死囚衔,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雕沿。 我是一名探鬼主播练湿,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼审轮!你這毒婦竟也來了肥哎?” 一聲冷哼從身側(cè)響起辽俗,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎篡诽,沒想到半個月后崖飘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡杈女,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年朱浴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片达椰。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡翰蠢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出啰劲,到底是詐尸還是另有隱情梁沧,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布蝇裤,位于F島的核電站廷支,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏猖辫。R本人自食惡果不足惜酥泞,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啃憎。 院中可真熱鬧,春花似錦似炎、人聲如沸辛萍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至辉阶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谆甜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工集绰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留规辱,地道東北人。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓罕袋,卻偏偏與公主長得像改淑,于是被迫代替她去往敵國和親浴讯。 傳聞我的和親對象是個殘疾皇子朵夏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,747評論 2 361

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

  • 0 系列目錄# WEB請求處理 WEB請求處理一:瀏覽器請求發(fā)起處理 WEB請求處理二:Nginx請求反向代理 本...
    七寸知架構(gòu)閱讀 13,971評論 22 190
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法榆纽,類相關(guān)的語法,內(nèi)部類的語法掠河,繼承相關(guān)的語法唠摹,異常的語法,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • 從三月份找實習(xí)到現(xiàn)在,面了一些公司藕赞,掛了不少斧蜕,但最終還是拿到小米批销、百度、阿里丘逸、京東掀宋、新浪劲妙、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,278評論 11 349
  • 這部分主要是與Java Web和Web Service相關(guān)的面試題。 96富雅、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,412評論 0 10
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理没佑,服務(wù)發(fā)現(xiàn),斷路器鬼癣,智...
    卡卡羅2017閱讀 134,714評論 18 139