「轉(zhuǎn)載」給小白的Java EE生存指南(4) : 一只叫Tom的貓

轉(zhuǎn)載自 微信公眾號(hào) 碼農(nóng)翻身 不用于商業(yè)宣傳 版權(quán)歸原作者所有 侵權(quán)刪

本文是給小白的Java EE生存指南的第4篇, 講一下幾乎100%Java 開(kāi)發(fā)人員都要用的 Tomcat僧著。

為什么有Tomcat 障簿? 其實(shí)需要從Servlet 說(shuō)起。

記得《給小白的Java EE生存指南(2)》 (回復(fù)“小白”查看) 提到的動(dòng)態(tài)網(wǎng)頁(yè)嗎皆怕? 常見(jiàn)的實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)就是CGI世蔗。

但是作為Java 的發(fā)明人, Sun肯定要搞一個(gè)超越CGI的技術(shù)出來(lái)顶滩, 之前Sun 通過(guò)Applet出了一個(gè)超級(jí)大風(fēng)頭寸爆, 讓整個(gè)世界一下子認(rèn)識(shí)了Java , 不過(guò)很快發(fā)現(xiàn)悲催的Applet其實(shí)用途不大仅醇, 眼看著互聯(lián)網(wǎng)開(kāi)始起勢(shì)魔种, 一定要搭上千載難逢的快車(chē)啊。

于是Servlet 就應(yīng)運(yùn)而生了叶摄, Servlet 其實(shí)就是Sun為了讓Java 能實(shí)現(xiàn)動(dòng)態(tài)的可交互的網(wǎng)頁(yè), 從而進(jìn)入Web編程的領(lǐng)域而定義的一套標(biāo)準(zhǔn)宵喂。

這套標(biāo)準(zhǔn)說(shuō)了:

你想用Java 開(kāi)發(fā)動(dòng)態(tài)網(wǎng)頁(yè)会傲,可以定義一個(gè)自己的"Servlet"(名字很怪,不知道怎么翻譯) , 但一定要是實(shí)現(xiàn)我的HttpServlet接口淌山, 然后重載doGet(), doPost()等方法。

用戶(hù)從瀏覽器GET的時(shí)候艾岂, 調(diào)用doGet()方法王浴, 從瀏覽器向服務(wù)器發(fā)送表單數(shù)據(jù)的時(shí)候, 調(diào)用doPost()方法氓辣。

(參見(jiàn) 《給小白的Java EE生存指南(1)》) 钞啸。

如果你想訪(fǎng)問(wèn)用戶(hù)從瀏覽器傳遞過(guò)來(lái)的參數(shù), 沒(méi)問(wèn)題体斩, 用HttpServletRequest 對(duì)象就好了絮吵, 里邊有g(shù)etParameter() ,getQueryString()方法蹬敲。

如果你處理完了伴嗡, 想向?yàn)g覽器返回?cái)?shù)據(jù), 用HttpServletResponse 調(diào)用getPrintWriter() 就可以輸出數(shù)據(jù)了澄暮。

如果你想實(shí)現(xiàn)一個(gè)購(gòu)物車(chē), 需要session, 很簡(jiǎn)單赏寇, 從HttpServletRequest 調(diào)用getSession() 就好了。

你寫(xiě)了一個(gè)"Servlet",接下來(lái)要運(yùn)行渠退, 你就發(fā)現(xiàn)沒(méi)法通過(guò)java 直接運(yùn)行了脐彩, 你需要一個(gè)能夠運(yùn)行Servlet的容器 , 這個(gè)容器Sun 最早實(shí)現(xiàn)了一個(gè)梅誓,叫Java Web Server, 1999年捐給了Apache Software foundation , 就改名叫Tomcat 佛南。

所以Tomcat 就是一個(gè)Servlet容器, 能接收用戶(hù)從瀏覽器發(fā)來(lái)的請(qǐng)求及穗, 然后轉(zhuǎn)發(fā)給Servlet處理绵载, 把處理完的響應(yīng)數(shù)據(jù)發(fā)回瀏覽器。

但是Servlet 輸出html ,還是采用了老的CGI 方式焚虱,是一句一句輸出懂版,所以,編寫(xiě)和修改 HTML 非常不方便谍咆。

于是 Java Server Pages(JSP) 就來(lái)救急了私股,JSP 并沒(méi)有增加任何本質(zhì)上不能用 Servlet 實(shí)現(xiàn)的功能倡鲸。

實(shí)際上JSP在運(yùn)行之前,需要先編譯成servlet , 然后才執(zhí)行的。

但是逼争,在 JSP 中編寫(xiě)靜態(tài)HTML 更加方便劝赔,不必再用 println語(yǔ) 句來(lái)輸出每一行 HTML 代碼着帽。更重要的是,借助內(nèi)容和外觀的分離仍翰,頁(yè)面制作中不同性質(zhì)的任務(wù)可以方便地分開(kāi):比如予借,由頁(yè)面設(shè)計(jì)者進(jìn)行 HTML設(shè)計(jì),同時(shí)留出供 Java 程序員插入動(dòng)態(tài)內(nèi)容的空間秦叛。

Tomcat 能運(yùn)行Servlet, 當(dāng)然運(yùn)行JSP肯定也是易如反掌龟再。

既然是Web 服務(wù)器, Tomcat除了能運(yùn)行Servlet和JSP之外浆劲, 也能像Apache/nginx 那樣哀澈,支持靜態(tài)html, 圖片,文檔的訪(fǎng)問(wèn)膨报, 只是性能要差一些适荣, 在實(shí)際的應(yīng)用中, 一般是這么使用他們的:

Nginx 作為負(fù)載均衡服務(wù)器 和靜態(tài)資源服務(wù)器放在最前端够吩, 后面是tomcat組成的集群丈氓。

如果用戶(hù)請(qǐng)求的是靜態(tài)資源, Nginx直接搞定湾笛, 不用麻煩后面的tomcat了嚎研。

如果是動(dòng)態(tài)資源(如xxx.jsp) , Nginix 就會(huì)按照一定的算法轉(zhuǎn)發(fā)到某個(gè)Tomcat上, 達(dá)到負(fù)載均衡的目的嘉赎。


“碼農(nóng)翻身” 公共號(hào) : 由工作15年的前IBM架構(gòu)師創(chuàng)建,分享編程和職場(chǎng)的經(jīng)驗(yàn)教訓(xùn)公条。

長(zhǎng)按二維碼, 關(guān)注碼農(nóng)翻身

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末迂曲,一起剝皮案震驚了整個(gè)濱河市靶橱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌路捧,老刑警劉巖关霸,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異杰扫,居然都是意外死亡队寇,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)佳遣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人凡伊,你說(shuō)我怎么就攤上這事零渐。” “怎么了系忙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵诵盼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我银还,道長(zhǎng)风宁,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任蛹疯,我火速辦了婚禮戒财,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘苍苞。我一直安慰自己固翰,他們只是感情好狼纬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著骂际,像睡著了一般疗琉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上歉铝,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天盈简,我揣著相機(jī)與錄音,去河邊找鬼太示。 笑死柠贤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的类缤。 我是一名探鬼主播臼勉,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼餐弱!你這毒婦竟也來(lái)了宴霸?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤膏蚓,失蹤者是張志新(化名)和其女友劉穎瓢谢,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體驮瞧,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡氓扛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了论笔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片采郎。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖翅楼,靈堂內(nèi)的尸體忽然破棺而出尉剩,到底是詐尸還是另有隱情,我是刑警寧澤毅臊,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布理茎,位于F島的核電站,受9級(jí)特大地震影響管嬉,放射性物質(zhì)發(fā)生泄漏皂林。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一蚯撩、第九天 我趴在偏房一處隱蔽的房頂上張望础倍。 院中可真熱鬧,春花似錦胎挎、人聲如沸沟启。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)德迹。三九已至芽卿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胳搞,已是汗流浹背卸例。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肌毅,地道東北人筷转。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像悬而,于是被迫代替她去往敵國(guó)和親呜舒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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

  • 轉(zhuǎn)自陳明乾的博客笨奠,可能有一定更新阴绢。 轉(zhuǎn)原文聲明:原創(chuàng)作品,允許轉(zhuǎn)載艰躺,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 、...
    C86guli閱讀 4,690評(píng)論 6 72
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法眨八,類(lèi)相關(guān)的語(yǔ)法腺兴,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法廉侧,異常的語(yǔ)法页响,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,639評(píng)論 18 399
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司段誊,掛了不少闰蚕,但最終還是拿到小米、百度连舍、阿里没陡、京東、新浪索赏、CVTE盼玄、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,253評(píng)論 11 349
  • 微風(fēng)吹過(guò) 思緒萬(wàn)千 細(xì)雨是我的眼淚 倒映的是你的笑臉 拾一片綠葉 傾訴心中無(wú)限事 你不在的時(shí)候,一切是你 你在的時(shí)...
    念同閱讀 213評(píng)論 0 4
  • 如果有來(lái)世 讓我成為一匹野馬 青草是我的食糧 也是我的眠床 如果有來(lái)世 讓我成為一匹野馬 奔跑是我的工作 也是在游...
    倚詩(shī)愛(ài)世閱讀 126評(píng)論 1 2