Tomcat的用途

總結(jié):

這篇文章主要反思了Tomcat的作用统求。本文主要是自己的一個(gè)思考過程检碗,不是嚴(yán)謹(jǐn)?shù)亟榻B和詳細(xì)總結(jié)Tomcat使用方法的文章。最后嘗試?yán)胻omcat的知識(shí)码邻,以URL的形式來訪問文件夾(在瀏覽器的地址欄直接黏貼文件的路徑也可以訪問折剃,但是這里可以不用實(shí)際的路徑進(jìn)行訪問)。該例子實(shí)用意義不大像屋,主要是加深對(duì)tomcat的理解怕犁。

教材上說,Tomcat是Apache組織的Jakarta項(xiàng)目的一個(gè)重要子項(xiàng)目,它是Sun公司推薦的運(yùn)行Servlet和JSP的容器。也就是說它是一個(gè)容器奏甫,但隨處也可見“Tomcat服務(wù)器”的說法戈轿。

??事實(shí)上,Tomcat即是容器也是服務(wù)器扶檐。不過本文主要涉及Tomcat發(fā)揮容器功能的部分凶杖。Tomcat是用Java語言編寫的,需要運(yùn)行在Java虛擬機(jī)上款筑,所以一般需要先安裝JDK智蝠,以提供運(yùn)行環(huán)境。
??上面說過Tomcat是一個(gè)容器奈梳,但為什么開發(fā)出來的應(yīng)用需要裝進(jìn)Tomcat這個(gè)容器呢杈湾。忽略各個(gè)文件之間的跳轉(zhuǎn),web應(yīng)用本質(zhì)只是一個(gè)裝有很多資源(java/html/jsp/js/css等各種格式文件)的文件夾攘须。假如我們有一個(gè)web應(yīng)用projectA漆撞,我們?cè)谀撑_(tái)計(jì)算機(jī)A把這些文件寫好后,就希望其他設(shè)備能夠通過一些方式來訪問我們的資源于宙。一種方法是通過在瀏覽器地址欄輸入U(xiǎn)RL來實(shí)現(xiàn)資源的訪問浮驳。
??那么從我們?cè)谟?jì)算機(jī)A上寫好某個(gè)文件夾到文件夾能夠被其他計(jì)算機(jī)所訪問,需要什么呢捞魁。首先需要我們的互聯(lián)網(wǎng)至会。計(jì)算機(jī)B先通過互聯(lián)網(wǎng)找到計(jì)算機(jī)A。
??而這樣做的前提是你這個(gè)電腦必須在互聯(lián)網(wǎng)這個(gè)網(wǎng)絡(luò)里面谱俭,這樣別人才能訪問到你奉件。也就是說一臺(tái)電腦必須要有IP地址才能稱為服務(wù)器。但這樣也只是找到了IP地址而已昆著,我們還需要找到對(duì)應(yīng)的主機(jī)(注:一般主機(jī)是指一臺(tái)電腦县貌,但在tomcat中,虛擬主機(jī)指的是計(jì)算機(jī)中的某個(gè)文件夾)凑懂。但就算找到了計(jì)算機(jī)A煤痕,我們?cè)趺粗酪ツ睦飳ふ襴eb應(yīng)用projectA呢。Tomcat容器就是來解決這個(gè)問題的接谨。在我看來杭攻,Tomcat的一個(gè)重要的功能就在于“映射”(通過配置文件實(shí)現(xiàn))。


虛擬主機(jī)名的配置

??首先確定一個(gè)虛擬的主機(jī)名疤坝。Tomcat默認(rèn)使用localhost作為虛擬主機(jī)名,并映射到webapps文件夾馆铁。在Tomcat安裝目錄下的server.xml文件夾的內(nèi)容如下所示:

<Host appBase= "webapps" autoDeploy="true" name="localhost" unpackWARs="True">

??如果也想要同時(shí)能夠訪問計(jì)算機(jī)A中的不同路徑下的文件跑揉,這時(shí)候就可以添加一個(gè)<Host>元素,把這個(gè)新的路徑添加進(jìn)去,然后給它起一個(gè)虛擬的主機(jī)名字(關(guān)于虛擬主機(jī)名和路徑的配置历谍,因?yàn)槭歉鶕?jù)虛擬目錄來指定要訪問的路徑现拒,如果虛擬目錄的路徑是絕對(duì)路徑,那么這里的路徑?jīng)]有意義望侈,但是如果采用相對(duì)路徑的方式印蔬,那么這里的路徑就有意義。而虛擬的主機(jī)名除了在這里進(jìn)行設(shè)置外脱衙,還需要在hosts中進(jìn)行設(shè)置侥猬,并且需要在catalina文件夾下新建一個(gè)同名的文件夾,虛擬目錄可以在這里進(jìn)行配置捐韩,這些內(nèi)容會(huì)在下面具體展開)退唠。

<Engine name="Catalina" defaultHost = "localhost">
  ...
<Host name= "newhost" appBase="d:\newhost">
  ...
</Host>
</Engine>

(注:還需要到Windows系統(tǒng)中hosts進(jìn)行注冊(cè),這樣ip地址才能映射到這個(gè)虛擬主機(jī))


虛擬目錄的配置

??然后就是配置虛擬目錄荤胁。例如想在url為localhost/chapter01時(shí)跳轉(zhuǎn)到特定的目錄下瞧预。就需要在<Tomcat安裝目錄>\conf\Catalina\localhost目錄下新建一個(gè)chapter01.xml(命名任意)。輸入:

<Context path="/chapter01" docBase="d:\chapter01">

??也就是說仅政,從表面上來看垢油,url中的localhost/chapter01貌似是指向localhost下面的chapter01文件夾,但其實(shí)上并非如此圆丹,這兩者仍然要分開進(jìn)行指定滩愁。并且不一定存在父子文件夾的關(guān)系。除此以外运褪,還可以指定默認(rèn)頁面(例如指定welcome.html)惊楼。打開<Tomcat根目錄>\conf目錄下的web.xml文件。這時(shí)候需要在chapter01目錄中創(chuàng)建WEB-INF目錄秸讹,并在該目錄下創(chuàng)建一個(gè)web.xml文件檀咙。配置方法如下:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app ...>   
           <welcome-file-list>
                <welcome-file>welcome.html</welcome-file>
        </welcome-file-list>
     </web-app>

(也可以在<Tomcat安裝目錄>/conf目錄下的server.xml文件進(jìn)行配置,但是需要進(jìn)行重啟后才生效)

??而tomcat的管理平臺(tái)又起到什么作用呢璃诀。它列出了所有的web應(yīng)用及其狀態(tài)弧可。并且提供每個(gè)web的啟動(dòng)、停止和卸載的功能劣欢。這意味著它可以選擇電腦中哪部分資源有效棕诵,哪部分資源無效。那么這樣來看的話凿将,其實(shí)tomcat就像酒店前臺(tái)校套,給你門卡讓你去找到對(duì)應(yīng)的房間(web資源),并且決定哪些房間不能進(jìn)牧抵,哪些可以進(jìn)去笛匙。

??然后執(zhí)行了startup.bat啟動(dòng)Tomcat侨把。啟動(dòng)后其實(shí)就是把這些映射激活了。關(guān)閉后就相當(dāng)于酒店前臺(tái)走了妹孙,來訪者(URL請(qǐng)求)不知如何是好秋柄。網(wǎng)上有人說啟動(dòng)了tomcat后,CATALINA_PATH & CATALINA_BASE will refer to the resource location.也就是說知道去哪里找我們的資源了蠢正。如果仔細(xì)看上面虛擬主機(jī)的配置內(nèi)容骇笔,就會(huì)發(fā)現(xiàn)<Host>元素是放在<Engine>元素里面的。而Engine的name就是Catalina嚣崭。一旦啟動(dòng)tomcat笨触,就表明我們的配置能夠生效。文件夾projectA就不是簡(jiǎn)單的一個(gè)文件夾了有鹿,而是變成了一個(gè)可以通過URL訪問得到的一個(gè)文件夾旭旭。按照這種思路的話,我們其實(shí)可以自己定義一些路徑(下文給出一個(gè)例子)葱跋。

??所以tomcat像是一個(gè)橋梁持寄,外界訪問服務(wù)器(某臺(tái)計(jì)算機(jī))資源的時(shí)候,tomcat能夠找到對(duì)應(yīng)的文件夾娱俺。所以當(dāng)我們?cè)L問localhost://index.html稍味,他就知道去這臺(tái)電腦的哪個(gè)位置尋找資源index.html。當(dāng)然荠卷,tomcat也有它力所難及的地方模庐,例如編寫有組織的web應(yīng)用就不是它的強(qiáng)項(xiàng)了。這也是我們后面要不停地用Eclipse等進(jìn)行整合開發(fā)的原因油宜。

一個(gè)簡(jiǎn)單的案例(用URL請(qǐng)求訪問本地文件夾中的視頻)

??假如我有視頻放在文件夾(E:\jpvideo)中掂碱,其中有一個(gè)文件名為1.mp4,如果我想通過URL(例如:video/jpvideo/1.mp4)來訪問電腦上的這個(gè)文件夾的資源慎冤。那么要怎么做呢疼燥。方法如下:
a、首先來到tomcat安裝目錄下蚁堤,找到server.xml醉者。添加一個(gè)名為“video”的虛擬主機(jī)。

  <Host appBase="e:\" name="video">
  </Host>

b披诗、然后更改了hosts文件:(添加如下代碼)

127.0.0.1   video

c撬即、配置虛擬目錄,方法是在<Tomcat安裝目錄>\conf\Catalina下面新建一個(gè)video文件夾呈队,在video文件夾下面新建一個(gè)xml文件(名字任意)剥槐,輸入如下內(nèi)容。

<Context path = "/jpvideo" docBase="E:\jpvideo"/>

注:由于此處使用的是絕對(duì)路徑宪摧,所以Host的appBase路徑的設(shè)置對(duì)實(shí)驗(yàn)結(jié)果沒有影響

d才沧、最后通過cmd輸入startup.bat來啟動(dòng)tomcat迈喉,激活這些配置。
e温圆、(驗(yàn)證)在地址欄中輸入video/jpvideo/1.mp4,結(jié)果如下孩革,可以直接打開視頻并播放岁歉。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市膝蜈,隨后出現(xiàn)的幾起案子锅移,更是在濱河造成了極大的恐慌,老刑警劉巖饱搏,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件非剃,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡推沸,警方通過查閱死者的電腦和手機(jī)备绽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鬓催,“玉大人肺素,你說我怎么就攤上這事∮罴荩” “怎么了倍靡?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)课舍。 經(jīng)常有香客問我塌西,道長(zhǎng),這世上最難降的妖魔是什么筝尾? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任捡需,我火速辦了婚禮,結(jié)果婚禮上忿等,老公的妹妹穿的比我還像新娘栖忠。我一直安慰自己,他們只是感情好贸街,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布庵寞。 她就那樣靜靜地躺著,像睡著了一般薛匪。 火紅的嫁衣襯著肌膚如雪捐川。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天逸尖,我揣著相機(jī)與錄音古沥,去河邊找鬼瘸右。 笑死,一個(gè)胖子當(dāng)著我的面吹牛岩齿,可吹牛的內(nèi)容都是我干的太颤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼盹沈,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼龄章!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起乞封,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤做裙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后肃晚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锚贱,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年关串,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拧廊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡悍缠,死狀恐怖卦绣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情飞蚓,我是刑警寧澤滤港,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站趴拧,受9級(jí)特大地震影響溅漾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜著榴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一添履、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脑又,春花似錦暮胧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至严卖,卻和暖如春席舍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哮笆。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國打工来颤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留汰扭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓福铅,卻偏偏與公主長(zhǎng)得像萝毛,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子滑黔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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