好久沒有經過博客對學習所得進行記錄了。html
如今將使用Tomcat的一些經驗和心得寫到這裏,做爲記錄和備忘。若是有朋友看到,也請不吝賜教。web
首先,我我的使用的是apache-tomcat-7.0.27你能夠下載使用,前提條件你須要安裝JDK1.6或者1.7均可以,本人使用的jdk1.6,最好你仍是使用jdk1.7,其餘都同樣。apache
一、首先是Tomcat的獲取和安裝。瀏覽器
獲取固然得上Apache的官方網站下載,開源免費,並且帶寬也足夠。下載會很快。tomcat
這是兩種不一樣的下載,一個是普通安裝版本,一個是解壓安裝版本。使用起來是同樣的,只是在普通安裝版本中有一些界面可提供對Tomcat的快捷設置,並且普通安裝會將Tomcat做爲系統服務進行註冊。服務器
二、Tomcat的運行環境搭建。網絡
(解壓版)安裝(就是解壓)完成後以下:app
Tomcat的啓動是一個bat文件(Windows下),在bin目錄下。雙擊便可。webapp
若是啓動不成功,通常的狀況是控制檯出來一下當即消失,說明Tomcat沒有找到Java的運行時環境。jsp
簡單理解,就是Tomcat找不到JDK,沒辦法運行。
咱們「告訴」它JDK的安裝路徑。即在環境變量裏新建JAVA_HOME(不區分大小寫),指向JDK安裝目錄。以下:
這樣,Tomcat就配置好了,啓動就OK。
啓動Tomcat,在瀏覽器地址欄輸入http://localhost:8080/若是看到亂七八糟的關於Tomcat的介紹神馬,說明配置成功。
三、Tomcat的目錄結構介紹。
bin目錄存放一些啓動運行Tomcat的可執行程序和相關內容。
conf存放關於Tomcat服務器的全局配置。
lib目錄存放Tomcat運行或者站點運行所需的jar包,全部在此Tomcat上的站點共享這些jar包。
wabapps目錄是默認的站點根目錄,能夠更改。
work目錄用於在服務器運行時過分資源,簡單來講,就是存儲jsp、servlet翻譯、編譯後的結果。
其餘目錄和文件暫時不作介紹。
四、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在默認的站點下把默認的頁面返回給客戶端瀏覽器做爲響應。
五、更改Tomcat默認配置。
①、修改Tomcat監聽端口。
咱們都有過訪問網站的經歷。咱們通常只輸入了域名對吧,那麼假設咱們如今做爲網絡服務提供者,將要對外發佈網站,咱們怎麼讓用戶只輸入咱們的域名就能看到咱們爲他/她準備的網頁呢?
首先咱們須要將監聽端口設置爲80,只須要把Connector下面的port屬性設置爲80就能夠了,道理很簡單,用戶不會在瀏覽器輸入:8080來訪問網站,瀏覽器也不會自動將請求發送到服務器的8080端口。
在%TOMCAT_HOME%(如下代指Tomcat的安裝路徑)下的conf目錄下的server.xml文件中修改。
這個文件裏東西很多,其實你們沒必要在乎。爲何呢?你把註釋刪除後再把整個xml看做一個對象,是吧,每一個節點是一個屬性,這個屬性又多是一個對象,它裏面有屬性……要這樣去理解,或者直接認爲是Tomcat的配置信息到也沒錯。
這樣,用戶就不用輸入:8080了。
②、修改默認站點。
首先說,站點是具備特定結構的文件夾。這一點在Tomcat裏表現得極爲清晰。
站點,在服務器上確定是用文件夾(即目錄結構)來存儲和管理的。可是它和普通的文件夾又不一樣,在Tomcat裏,可用於做爲站點的文件夾必須有以下特色:擁有一個名爲WEB-INF的子文件夾,該子文件夾下必須有一個名爲web.xml的文件,並且該xml文件必須受約束與特定的DTD(web.xml內容能夠參考webapps/ROOT/WEB-INF/web.xml。)。
咱們先配置或者說叫建立一個站點,再將其設置爲默認站點。
配置站點:首先建立文件夾,建立WEB-INF子文件夾,建立web.xml,完成。web.xml內容能夠參考webapps/ROOT/WEB-INF/web.xml。
設置爲默認站點,這裏須要分爲兩步執行:
1:增長剛剛新建的站點讓Tomcat能夠找到相關頁面。
2:設置默認狀況下Tomcat去那個站點(或文件夾)下請求。
告訴Tomcat當請求哪一個站點時(或者說在域名後面跟的是什麼名字),你來找我。
首先找到Host節點,而後在該節點下面添加Contextj節點,其中path屬性表示在域名後面跟的是什麼名字,docBase屬性表示頁面程序存放的路徑,告訴Tomcat程序在哪裏。這裏設置path爲空,表示域名後面不加任何路徑信息,也就是默認站點的做用。
上圖已經將兩步配置好了(實際上Tomcat默認加上了將空站點指向ROOT的代碼),咱們的d:/myweb
若是你的站點存放在webapps目錄下,可使用相對路徑,好比,咱們將d:/myweb整個拷到%TOMCAT_HOME%/webapps下,上圖的docBase很明顯就不須要加上d:/了,直接寫成myweb就能夠了。
我在index.html裏寫了幾句話,而後結果出來了:
③、修改默認頁面。
在上面,咱們還算是中規中矩,按照常理出牌,謝了index.html。那麼若是沒有寫呢?Tomcat會怎麼作呢?
請你們找到conf/web.xml。這個文件是對全部站點的共同屬性作出了設置。好比你們看文件結尾處:
這個叫作歡迎頁面,當沒有輸入資源地址時,會由上至下地查找,獲取頁面,進行響應。
很清楚了吧,改動它就能夠,可是不建議在這裏改,會是全部站點設置變化,你應該將其複製到你須要改動的站點下的web.xml,進行設置。
六、虛擬主機的配置。
所謂虛擬主機,就是將一個或多個主機名(域名)和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的版本不一樣而不一樣。
本篇隨筆對Tomcat的安裝、環境搭建、虛擬目錄、虛擬主機配置都有淺陋的看法,忘你們指正。