Tomcat的簡單工作原理

Tomcat是開源的實(shí)現(xiàn)了部分Java EE規(guī)范的Java Web應(yīng)用服務(wù)器滞乙。除了J2EE,還有其他技術(shù)也通過容器來實(shí)現(xiàn)鉴嗤,比如:EJB斩启,Java Mail,JPA醉锅,JTA兔簇,JMS。

值得注意的是硬耍,目前經(jīng)常接觸的java容器垄琐,tomcat和jetty只是實(shí)現(xiàn)了J2EE的部分規(guī)范,比如Servlet和JSP经柴。像XML,JMS,JTA,JTS,JAF,JDBC,JNDI,EJB,RMI,CORBA等其他規(guī)范會在Jboss狸窘,Glassfish等新興容器中首先實(shí)現(xiàn)。所以像Glassfish這種開源的的容器坯认,是研究Java EE最新技術(shù)的第一選擇翻擒。

下面針對Tomcat支持的Java EE的規(guī)范做個(gè)簡單的介紹:
Servlet:擴(kuò)展了Web服務(wù)器功能的小型的Java程序。
JSP:在HTML代碼中嵌入JAVA代碼牛哺,服務(wù)器在接收到客戶端的請求后對JAVA代碼進(jìn)行處理韭寸,然后將生成的HTML頁面返回給客戶端的瀏覽器。

Servlet容器

從tomcat的配置文件中可以看出荆隘,Servlet容器由Server恩伺,Service組成,其中Service又包含了很多的組件椰拒。

值得注意的是tomcat中conf路徑中的server.xml體現(xiàn)的Server就是指的Tomcat服務(wù)器晶渠,負(fù)責(zé)管理各個(gè)Service,同時(shí)監(jiān)聽shutdown鉤子燃观。

Service就是Tomcat封裝的支持WEB服務(wù)的組件褒脯,它包含許多的組件,其中有Connector和Container這兩個(gè)重要組件缆毁,和Loader(類加載器)番川,Realm(權(quán)限管理),JMX(提供遠(yuǎn)程監(jiān)控tomcat的功能),Jasper(JSP解析引擎)颁督,Pipeline(請求的管道)践啄,Naming(即JNDI命名服務(wù))等組件。

Container組件
Container由Engine(Servlet的主容器)沉御,Host(虛擬主機(jī)屿讽,負(fù)責(zé)部署web應(yīng)用和Context的創(chuàng)建),Context(負(fù)責(zé)配置解析吠裆,管理Web資源)伐谈,Wrapper(也就是每個(gè)Servlet的封裝)組成,Engine又由多個(gè)Host組成试疙,一個(gè)Host包含多個(gè)Wrapper诵棵。

Servlet的生命周期

  • 初始化調(diào)用init()方法:當(dāng)請求到達(dá)Server,會被映射到相對應(yīng)的Servlet祝旷,如果不存在對應(yīng)的Servlet實(shí)例履澳,則加載和實(shí)例化,此時(shí)調(diào)用init()方法
  • service()即是主方法缓屠,提供請求與返回
  • 銷毀方法destory():當(dāng)Server不再需要Servlet時(shí),Server調(diào)用Servlet的destory()方法护侮。

JSP規(guī)范

JSP引擎的工作流程

  • servlet容器編譯servlet源文件敌完,生成相應(yīng)的類
  • 加載與JSP對應(yīng)的servlet類,創(chuàng)建實(shí)例羊初,并調(diào)用它的初始化方法滨溉,對應(yīng)_jspInit()
  • 執(zhí)行servlet實(shí)例的服務(wù)方法,對應(yīng)_jspService()
  • 銷毀servlet實(shí)例的銷毀方法,銷毀servlet實(shí)例长赞,對應(yīng)_jspDestory()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晦攒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子得哆,更是在濱河造成了極大的恐慌脯颜,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贩据,死亡現(xiàn)場離奇詭異栋操,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)饱亮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門矾芙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人近上,你說我怎么就攤上這事剔宪。” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵葱绒,是天一觀的道長感帅。 經(jīng)常有香客問我,道長哈街,這世上最難降的妖魔是什么留瞳? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮骚秦,結(jié)果婚禮上她倘,老公的妹妹穿的比我還像新娘。我一直安慰自己作箍,他們只是感情好硬梁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著胞得,像睡著了一般荧止。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阶剑,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天跃巡,我揣著相機(jī)與錄音,去河邊找鬼牧愁。 笑死素邪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的猪半。 我是一名探鬼主播兔朦,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼磨确!你這毒婦竟也來了沽甥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤乏奥,失蹤者是張志新(化名)和其女友劉穎摆舟,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邓了,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盏檐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了驶悟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胡野。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖痕鳍,靈堂內(nèi)的尸體忽然破棺而出硫豆,到底是詐尸還是另有隱情龙巨,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布熊响,位于F島的核電站旨别,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏汗茄。R本人自食惡果不足惜秸弛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望洪碳。 院中可真熱鬧递览,春花似錦、人聲如沸瞳腌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嫂侍。三九已至儿捧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挑宠,已是汗流浹背菲盾。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留各淀,地道東北人懒鉴。 一個(gè)月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像揪阿,于是被迫代替她去往敵國和親疗我。 傳聞我的和親對象是個(gè)殘疾皇子咆畏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

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

  • 轉(zhuǎn)自陳明乾的博客南捂,可能有一定更新。 轉(zhuǎn)原文聲明:原創(chuàng)作品旧找,允許轉(zhuǎn)載溺健,轉(zhuǎn)載時(shí)請務(wù)必以超鏈接形式標(biāo)明文章 原始出處 、...
    C86guli閱讀 4,695評論 6 72
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法钮蛛,類相關(guān)的語法鞭缭,內(nèi)部類的語法,繼承相關(guān)的語法魏颓,異常的語法岭辣,線程的語...
    子非魚_t_閱讀 31,645評論 18 399
  • 0 系列目錄# WEB請求處理 WEB請求處理一:瀏覽器請求發(fā)起處理 WEB請求處理二:Nginx請求反向代理 本...
    七寸知架構(gòu)閱讀 13,964評論 22 190
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司甸饱,掛了不少沦童,但最終還是拿到小米仑濒、百度、阿里偷遗、京東墩瞳、新浪、CVTE氏豌、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,255評論 11 349
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,811評論 0 11