日韩精品欧美激情国产一区_中文无码精品一区二区三区在线_岛国毛片AV在线无码不卡_亞洲歐美日韓精品在線_使劲操好爽好粗视频在线播放_日韩一区欧美二区_八戒八戒网影院在线观看神马_亚洲怡红院在线色网_av无码不卡亚洲电影_国产麻豆媒体MDX

Tomcat的用途

時(shí)間:2019-12-11 14:39:48 類(lèi)型:JAVA
字號(hào):    

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

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

  ??事實(shí)上,Tomcat即是容器也是服務(wù)器。不過(guò)本文主要涉及Tomcat發(fā)揮容器功能的部分。Tomcat是用Java語(yǔ)言編寫(xiě)的,需要運(yùn)行在Java虛擬機(jī)上,所以一般需要先安裝JDK,以提供運(yùn)行環(huán)境。

  ??上面說(shuō)過(guò)Tomcat是一個(gè)容器,但為什么開(kāi)發(fā)出來(lái)的應(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把這些文件寫(xiě)好后,就希望其他設(shè)備能夠通過(guò)一些方式來(lái)訪(fǎng)問(wèn)我們的資源。一種方法是通過(guò)在瀏覽器地址欄輸入U(xiǎn)RL來(lái)實(shí)現(xiàn)資源的訪(fǎng)問(wèn)。

  ??那么從我們?cè)谟?jì)算機(jī)A上寫(xiě)好某個(gè)文件夾到文件夾能夠被其他計(jì)算機(jī)所訪(fǎng)問(wèn),需要什么呢。首先需要我們的互聯(lián)網(wǎng)。計(jì)算機(jī)B先通過(guò)互聯(lián)網(wǎng)找到計(jì)算機(jī)A。

  ??而這樣做的前提是你這個(gè)電腦必須在互聯(lián)網(wǎng)這個(gè)網(wǎng)絡(luò)里面,這樣別人才能訪(fǎng)問(wèn)到你。也就是說(shuō)一臺(tái)電腦必須要有IP地址才能稱(chēng)為服務(wù)器。但這樣也只是找到了IP地址而已,我們還需要找到對(duì)應(yīng)的主機(jī)(注:一般主機(jī)是指一臺(tái)電腦,但在tomcat中,虛擬主機(jī)指的是計(jì)算機(jī)中的某個(gè)文件夾)。但就算找到了計(jì)算機(jī)A,我們?cè)趺粗酪ツ睦飳ふ襴eb應(yīng)用projectA呢。Tomcat容器就是來(lái)解決這個(gè)問(wèn)題的。在我看來(lái),Tomcat的一個(gè)重要的功能就在于“映射”(通過(guò)配置文件實(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í)能夠訪(fǎng)問(wèn)計(jì)算機(jī)A中的不同路徑下的文件,這時(shí)候就可以添加一個(gè)元素,把這個(gè)新的路徑添加進(jìn)去,然后給它起一個(gè)虛擬的主機(jī)名字(關(guān)于虛擬主機(jī)名和路徑的配置,因?yàn)槭歉鶕?jù)虛擬目錄來(lái)指定要訪(fǎng)問(wèn)的路徑,如果虛擬目錄的路徑是絕對(duì)路徑,那么這里的路徑?jīng)]有意義,但是如果采用相對(duì)路徑的方式,那么這里的路徑就有意義。而虛擬的主機(jī)名除了在這里進(jìn)行設(shè)置外,還需要在hosts中進(jìn)行設(shè)置,并且需要在catalina文件夾下新建一個(gè)同名的文件夾,虛擬目錄可以在這里進(jìn)行配置,這些內(nèi)容會(huì)在下面具體展開(kāi))。

<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)到特定的目錄下。就需要在\conf\Catalina\localhost目錄下新建一個(gè)chapter01.xml(命名任意)。輸入:

  

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

  ??也就是說(shuō),從表面上來(lái)看,url中的localhost/chapter01貌似是指向localhost下面的chapter01文件夾,但其實(shí)上并非如此,這兩者仍然要分開(kāi)進(jìn)行指定。并且不一定存在父子文件夾的關(guān)系。除此以外,還可以指定默認(rèn)頁(yè)面(例如指定welcome.html)。打開(kāi)\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>

      welcome.html

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

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

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

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

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

  ??假如我有視頻放在文件夾(E:\jpvideo)中,其中有一個(gè)文件名為1.mp4,如果我想通過(guò)URL(例如:video/jpvideo/1.mp4)來(lái)訪(fǎng)問(wèn)電腦上的這個(gè)文件夾的資源。那么要怎么做呢。方法如下:

  a、首先來(lái)到tomcat安裝目錄下,找到server.xml。添加一個(gè)名為“video”的虛擬主機(jī)。

  

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

  127.0.0.1   video

  c、配置虛擬目錄,方法是在\conf\Catalina下面新建一個(gè)video文件夾,在video文件夾下面新建一個(gè)xml文件(名字任意),輸入如下內(nèi)容。

  

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

  d、最后通過(guò)cmd輸入startup.bat來(lái)啟動(dòng)tomcat,激活這些配置。

  e、(驗(yàn)證)在地址欄中輸入video/jpvideo/1.mp4,結(jié)果如下,可以直接打開(kāi)視頻并播放

  作者:secondtown

  鏈接:https://www.jianshu.com/p/a32ce58cc9c2

  來(lái)源:簡(jiǎn)書(shū)

  著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。


<