標籤:blog http java 使用 os io 檔案 ar
1、首先是Tomcat的擷取和安裝。
擷取當然得上Apache的官方網站下載,開源免費,而且頻寬也足夠。下載會很快。
這是兩種不同的下載,一個是普通安裝版本,一個是解壓安裝版本。使用起來是一樣的,只是在普通安裝版本中有一些介面可提供對Tomcat的快捷設定,而且普通安裝會將Tomcat作為系統服務進行註冊。
2、Tomcat的運行環境搭建。
(解壓版)安裝(就是解壓)完成後如下:
Tomcat的啟動是一個bat檔案(Windows下),在bin目錄下。雙擊即可。
如果啟動不成功,一般的情況是控制台出來一下立即消失,說明Tomcat沒有找到Java的運行時環境。
簡單理解,就是Tomcat找不到JDK,沒辦法運行。
我們“告訴”它JDK的安裝路徑。即在環境變數裡建立JAVA_HOME(不區分大小寫),指向JDK安裝目錄。如下:
這樣,Tomcat就配置好了,啟動就OK。
啟動Tomcat,在瀏覽器地址欄輸入http://localhost:8080/如果看到亂七八糟的關於Tomcat的介紹神馬,說明配置成功。
3、Tomcat的目錄結構介紹。
bin目錄存放一些啟動運行Tomcat的可執行程式和相關內容。
conf存放關於Tomcat伺服器的全域配置。
lib目錄存放Tomcat運行或者網站運行所需的jar包,所有在此Tomcat上的網站共用這些jar包。
wabapps目錄是預設的網站根目錄,可以更改。
work目錄用於在伺服器運行時過度資源,簡單來說,就是儲存jsp、servlet翻譯、編譯後的結果。
其他目錄和檔案暫時不做介紹。
4、Tomcat的預設行為。
我們的瀏覽器請求如果到達了Tomcat,並且請求無誤,一般Tomcat會以靜態頁面(即html檔案)的形式給與響應,這是http伺服器的預設行為。
一個完整的資源請求包括:
協議(如http)
主機名稱(網域名稱,如localhost、www.baidu.com)
連接埠號碼(http協議預設為80,所以我們一般向某個網站發起請求沒有輸入)
網站
資源位置
如http://localhost:8080/ROOT/index.jsp
那麼在第二步時我們只輸入了網域名稱(或者主機名稱)就訪問到了某個具體的頁面,這是怎麼回事呢?。
首先,請求會通過一些途徑到達請求的主機地址並被該伺服器(指硬體,如我們的本機電腦)上的http伺服器程式獲得。這一步解釋起來比較麻煩,我們不做贅述,我會在其他篇幅裡介紹。
比如我們輸入http://localhost:8080到瀏覽器裡。被Tomcat發現了。
現在它拿到請求,先分析我們所請求的是什麼資源。由於我們沒有指定,它會到預設的網站去拿預設的頁面給我們。
現在我們把過程走一遍:
伺服器端:Tomcat監聽著8080連接埠,時時注意是否有請求過來。
用戶端瀏覽器發出請求,到達了伺服器端,由於連接埠的分配,請求最終被Tomcat得到。
Tomcat解析請求的資源,發現沒有指定需要的是哪個網站下的哪個資源。
Tomcat在預設的網站下把預設的頁面返回給用戶端瀏覽器作為響應。
5、更改Tomcat預設配置。
①、修改Tomcat監聽連接埠。
我們都有過訪問網站的經曆。我們一般只輸入了網域名稱對吧,那麼假設我們現在作為網路服務提供者,將要對外發布網站,我們怎麼讓使用者只輸入我們的網域名稱就能看到我們為他/她準備的網頁呢?
首先我們需要將監聽連接埠設定為80,道理很簡單,使用者不會在瀏覽器輸入:8080來訪問網站,瀏覽器也不會自動將請求發送到伺服器的8080連接埠。
在%TOMCAT_HOME%(以下代指Tomcat的安裝路徑)下的conf目錄下的server.xml檔案中修改。
這個檔案裡東西不少,其實大家不必在意。為什麼呢?你把注釋刪除後再把整個xml看作一個對象,是吧,每個節點是一個屬性,這個屬性又可能是一個對象,它裡面有屬性……要這樣去理解,或者直接認為是Tomcat的配置資訊到也沒錯。
這樣,就不用輸入:8080了。
②、修改預設網站。
首先說,網站是具有特定結構的檔案夾。這一點在Tomcat裡表現得極為清晰。
網站,在伺服器上肯定是用檔案夾(即目錄結構)來儲存和管理的。但是它和普通的檔案夾又不同,在Tomcat裡,可用於作為網站的檔案夾必須有如下特點:擁有一個名為WEB-INF的子檔案夾,該子檔案夾下必須有一個名為web.xml的檔案,而且該xml檔案必須受約束與特定的DTD。
我們先配置或者說叫建立一個網站,再將其設定為預設網站。
配置網站:建立檔案夾,建立WEB-INF子檔案夾,建立web.xml,完成。web.xml內容可以參考webapps/ROOT/WEB-INF/web.xml。
設定為預設網站:
這裡需要分為兩步執行。
告訴Tomcat當請求哪個網站時(或者說在網域名稱後面跟的是什麼名字),你來找我。
告訴Tomcat我在哪裡。
已經將兩步配置好了(實際上Tomcat預設加上了將空網站指向ROOT的代碼),我們的d:/myweb:
如果你的網站存放在webapps目錄下,可以使用相對路徑,比如,我們將d:/myweb整個拷到%TOMCAT_HOME%/webapps下,的docBase很明顯就不需要加上d:/了。
我在index.html裡寫了幾句話,然後結果出來了:
③、修改預設頁面。
在上面,我們還算是中規中矩,按照常理出牌,謝了index.html。那麼如果沒有寫呢?Tomcat會怎麼做呢?
請大家找到conf/web.xml。這個檔案是對所有網站的共同屬性做出了設定。比如大家看檔案結尾處:
這個叫做歡迎頁面,當沒有輸入資源地址時,會由上至下地尋找,擷取頁面,進行響應。
很清楚了吧,改動它就可以,但是不建議在這裡改,會是所有網站設定變化,你應該將其複製到你需要改動的網站下的web.xml,進行設定。
6、虛擬機器主機的配置。
所謂虛擬機器主機,就是將一個或多個主機名稱(網域名稱)和Tomcat所在的伺服器進行綁定。由於一個IP可以和多個網域名稱進行幫定,我們大可以將不同的網域名稱指向伺服器(指硬體)上的不同檔案夾,造成一個伺服器(或者一個IP)多個主機的“虛擬機器主機”效果。
這個實現起來相當的簡單。只需要在server.xml檔案中建立Host節點,將其屬性進行不同設定即可。
1 #你的主機名稱(網域名稱)1 2 <Host name="localhost" appBase="webapps" 3 unpackWARs="true" autoDeploy="true" 4 xmlValidation="false" xmlNamespaceAware="false"> 5 </Host> 6 #你的網域名稱2 7 <Host name="www.coderecord.org" appBase="主機空間地址" 8 unpackWARs="true" autoDeploy="true" 9 xmlValidation="false" xmlNamespaceAware="false"> 10 #網域名稱3可以和網域名稱2共用一個主機空間11 <alias>coderecord.org</alias>12 <Context path="" docBase="網站地址" debug="1" reloadable="true" allowLinking="true" />13 </Host>
以上配置資訊根據Tomcat的版本不同而不同。