學習Tomcat,我們應該懂的
對於JAVA EE的學習者而言,Tomcat絕不陌生。從所周知,Tomcat是一個符合JAVA EE標準的WEB伺服器,換言之:JSP,Servlet等放在Tomcat容器(另一說法)可以執行。閒話不多說,進主題,如果你對Tomcat有一定的瞭解,可以不看第一部分,直接從第二部分看起。
一、 Tomcat的安裝
1、 首先需要從網站(www.apache.org)下載到適合的Tomcat版本,對眾多初學者而言,我們都選擇Windows安裝版本。當然啦,還要確定你的電腦是否安裝好了JDK,這是大前提。
2、 點選安裝一直按預設到,如下圖:
先注意到埠號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 凌晨
相關文章
- 我們都應該學習PHPPHP
- 我們該學習什麼?
- 我們該如何學習機器學習中的數學機器學習
- 我們應該怎樣學習嵌入式系統
- 對於Linux,我們應該學什麼?Linux
- 今天,我們為什麼應該讀懂華為人工智慧?人工智慧
- 深度學習的困境,我們該何去何從?深度學習
- WCF技術我們應該如何以正確的方式去學習掌握
- 我們究竟應不應該使用框架?框架
- 我們應該如何給需求排序?排序
- 關於註解我們應該知道的
- 我們應該測試 DAO 層嗎?
- 我們應該使用 TLS1.3 嗎TLS
- 找工作時,我們應該思考的幾件事情。
- 淺談AsyncLocal,我們應該知道的那些事兒
- 119的節日的安排,我們應該做些什麼
- 想要學習Linux-SRE的朋友們該怎麼學習?Linux
- 我們應該如何選擇蘋果簽名?蘋果
- 面對變革,我們應該怎麼做?
- 進行直播搭建前,我們應該瞭解的常識
- 我們應該如何編寫高質量的前端程式碼前端
- 我們的系統應該配置哪些監控報警項?
- Airbnb棄用之後,我們還應該用ReactNative嗎?AIReact
- 生物識別技術:我們應該擔心嗎?
- IT職場:如果我不熟悉TRIZ,應該如何學習它?
- 當我們談深度學習時,我們用它落地了什麼?深度學習
- 新手應該如何學習JAVAJava
- 學習Mysql 你應該懂得MySql
- 當我們在聊 Serverless 時你應該知道這些Server
- 2020年,為什麼我們應該使用abapGit代替SAPLinkGit
- 時到如今,我們應該如何評價《死亡擱淺》?
- Vue 3是一個錯誤,我們不應該再犯。Vue
- 學習 Linux 是我們的愛情語言Linux
- 為什麼springcloud值得我們學習?SpringGCCloud
- 愛孩子嗎?愛他們就讓我們懂他吧
- Java學習路線圖應該怎麼學習?Java
- 我應該怎麼樣來推薦我們製作的這款RPG遊戲呢?遊戲
- AI=機器學習²,我們在去往²的路上AI機器學習