學習Tomcat,我們應該懂的

xzhilie發表於2020-04-05

對於JAVA EE的學習者而言,Tomcat絕不陌生。從所周知,Tomcat是一個符合JAVA EE標準的WEB伺服器,換言之:JSP,Servlet等放在Tomcat容器(另一說法)可以執行。閒話不多說,進主題,如果你對Tomcat有一定的瞭解,可以不看第一部分,直接從第二部分看起。

一、   Tomcat的安裝

     1、 首先需要從網站(www.apache.org)下載到適合的Tomcat版本,對眾多初學者而言,我們都選擇Windows安裝版本。當然啦,還要確定你的電腦是否安裝好了JDK,這是大前提。

     2、 點選安裝一直按預設到,如下圖:

 Tomcat安裝中的埠號設定

     先注意到埠號8080,至於其作用以及如何修改,下面有詳解。密碼框隨便你自己填啦,忘記了也沒關係,可以到Tomcat安裝目錄:conf/tomcat-users.xml中找回來,也可以不填;(接下來的畫面你會看到“Java Virtual Machine path selection”,如果機器沒有安裝JDK就無法繼續了)。

     3、 等安裝接近完成,Tomcat會預設啟動的,你可以把那個勾給去掉。

     4、 檢檢視看是否安裝成功:如果剛才的勾給你去掉的話先啟動Tomcat伺服器,接著在瀏覽器位址列輸入:http://localhost:8080/或者http://127.0.0.1:8080如果進入了一個有個貓的頁面就證明你安裝成功啦。至於為什麼輸入上面的網址就可以進入頁面,大家可以查閱一下計算機網路相關書籍。這裡又出現了8080,還是那句,下面有詳解。PS:這樣說不是為了吸引大家往下面看,的確是因為還沒有必要詳細說,留在後面說更合理。

 

二、   Tomcat目錄結構

     進入Tomcat的安裝好的目錄,你會看到有以下幾個資料夾,如下圖:

1、 先說bin資料夾,這個資料夾是用來存放啟動、關閉Tomcat伺服器的指令碼。點選startup.bat就可以執行Tomcat伺服器,與之相對的shutdown.bat;

     2、 Common/lib用來存放你的程式所需要的jar包;

     3、 Conf資料夾,conf是configuration的縮寫,顧名思義,這個資料夾主要存放與Tomcat配置相關的檔案。Tomcat伺服器的配置檔案是:server.xml;

     4、 Logs資料夾,log是日誌的意思,也就是用來存放日誌檔案的(至於這些日誌檔案如何產生的以及都表示什麼,我也不清楚 );

     5、 Webapps資料夾,用來存放應用程式的,如果你全部選擇預設安裝的Tomcat裡面會幾個程式示例。通過http://localhost:8080可以訪問到。如果你將來需要部署應用程式,可以直接複製到此目錄下。當然啦,你也可以配置虛擬目錄,這個需要到server.xml裡面修改;

     6、 Work資料夾用來存放JSP編譯後產生的class檔案,你會看到,你所編寫的JSP檔案全部都有與之相對應的java檔案。如:login.jsp對應的是login_jsp.java,這也說明JSP是需要編譯後才能執行的,看到這裡,相信有些讀者會想到為什麼JSP第一次執行的時候會慢一些,同時也會想到JSP和Servlet之間的相同點和區別。

     至於其他更詳細的,大家可以參閱Tomcat相關文件。

 

三、   Tomcat的配置檔案server.xml

     1、 先說那個8080埠號,我們可以在server.xml裡面修改。開啟server.xml檔案,找到如下圖:

         Port="8080"就是這個埠號所在,我們可以修改其他我們喜歡的埠號,如:80,80是一個著名的埠號(具體查閱計算機網路書籍),如果我們設定成了80埠,我們可以直接在瀏覽器位址列輸入:http://localhost/或者http://127.0.0.1/便開啟Tomcat預設頁,當然啦,我們也可以設定成其他的,不過用這兩個也就足夠了。

           如果你設定為80,在啟動Tomcat中可能出現如下提示錯誤:

 

相信稍懂英文的讀者都知道是什麼意思:80埠已經被應用了。80埠太出名了,微軟的IIS伺服器的預設埠號就是它了,如想解決該病,有兩種方法,第一種是吃藥:停止IIS伺服器;第二種是動手術:將IIS伺服器給刪了,我們現在學java體系的,微軟的東西一邊待去(傻笑)。常言道:人怕出名豬怕壯,看來埠號太出名也不好啊。哈哈,寫了太久,隨便找點開心的說說。

     2、 好了,埠說完啦,該笑的也笑過了。繼續說虛擬目錄的配置,虛擬目錄最好滿足一定的規範,這樣才能被Tomcat正確載入,虛擬目錄下得有一命名為:WEB-INF的資料夾,在WEB-INF資料夾中有個名叫web.xml的檔案,web.xml是專案的配置檔案。(如果你的專案只有HTML、JSP檔案,可以不滿足此規範,但是如果存在Servlet必須要滿足此規範,原因很簡單:Servlet是需要在web.xml中註冊的,否則Tomcat伺服器不能正確識別。建議任何專案都滿足此規範,哪怕專案只有HTML、JSP檔案)別問為什麼制定如此規範,這是規定。如果你非要弄個明白,你就加油學好java,將來找機會當面問Tomcat伺服器的設計師,哈哈,又扯遠啦,回正題,配置虛擬目錄有兩種方法:

          (1)第一種是通過修改server.xml實現

                 在<host>標籤之中加入<Context path="/對映名" docBase="虛擬目錄的絕對路徑"/>。如:

                  如果你的虛擬目錄絕對路徑是:E:/workspace/xzhilie/WebRoot,而你希望通過xibianyu對映名能找到該

                 虛擬目錄。你應該在<host>標籤中插入如下程式碼:

                   <Context path="/xibianyu" docBase=" E:/workspace/xzhilie/WebRoot"/>

                  在瀏覽器位址列輸入:http://localhost:8080/xibianyu便可以指向該虛擬目錄了。

                  如果你需要java程式碼編譯後自動載入的話(開發中常用到),你可以在<host>標籤中插入的程式碼加入:

                  reloadable="true";完整如下:

                  <Context path="/xibianyu" docBase=" E:/workspace/xzhilie/WebRoot" reloadable="true"/>

                 還有些其他引數設定,參閱Tomcat文件。(百度一下,你就知道)

          (2)第二種是通過在conf/Catalina/localhost裡新增相關的xml檔案實現

                  如要實現第一種方法的虛擬目錄的配置,在conf/Catalina/localhost目錄下新建xibianyu.xml,然後將如

                  下程式碼寫進:

                  <Context path="/xibianyu" docBase=" E:/workspace/xzhilie/WebRoot"/>

                  當然xibianyu.xml的名字你可以換成其他,但是個人建議用xibianyu.xml,為什麼?你命名類名都可以

                 小寫字母開頭;方法名、變數名你也可以不採用駝峰式,但是java程式書籍都建議你類名第一字母大

                 寫;方法名、變數名採用駝峰式,理由相同。

     3、 Server.xml還有其他亂七八糟的配置,至於他們的具體含義以及如何配置我都不清楚。如需更詳細瞭解,大家可以參閱Tomcat文件,不過一般而言,瞭解上面說的兩點配置也夠用了。好讀書,不求甚解,如有需要,查閱資料相信可以很快上手。

 

四、   寫在最後

Tomcat伺服器的基礎配置就寫到這裡啦,希望對各讀者有所幫助,對初學者更容易上手,基於水平有限,如有寫錯了,還請批評指正。同時也歡迎各位技術愛好者一起探討java技術。我的郵箱是:xzhilie@gmail.com

 

                                                                                                                              2008-3-17 凌晨

相關文章