首頁 > 軟體

Tomcat伺服器的設定與啟動全過程

2023-03-21 06:02:50

Tomcat的下載與安裝

Tomcat是Apache軟體基金會的一個開源免費的專案 , 它是一個輕量級WEB伺服器 , 體積小 , 執行速度快(只實現了Servlet+JSP規範)

Tomcat還有另外一個名字:catalina(catalina是美國的一個島嶼,據說作者是在這個風景秀麗的小島上開發了一個輕量級的WEB伺服器)

tomcat的logo是一隻公貓(寓意表示Tomcat伺服器是輕巧的)

Tomcat的安裝包是綠色版 , 安裝很簡單,直接zip包解壓即可。解壓就是安裝。

我有一個好習慣,在D槽的根目錄下新建一個dev目錄,java開發所有相關的工具都安裝到dev目錄下,這樣比較方便管理。

關於Tomcat伺服器的目錄

目錄存放的檔案
bin這個目錄是Tomcat伺服器的命令檔案存放的目錄 , 如啟動Tomcat,關閉Tomcat相關的bat命令檔案和shell命令檔案
conf這個目錄是Tomcat伺服器的組態檔存放目錄(server.xml檔案中可以設定埠號,預設Tomcat埠是8080)
lib這個目錄是Tomcat伺服器的核心程式目錄,因為Tomcat伺服器是Java語言編寫的,這裡的jar包裡面都是class檔案
logsTomcat伺服器的紀錄檔目錄,Tomcat伺服器啟動等資訊都會在這個目錄下生成紀錄檔檔案
tempTomcat伺服器的臨時目錄。儲存臨時檔案
webapps這個目錄當中就是用來存放大量的webapp專案(web application:web應用)
work這個目錄是用來存放JSP檔案翻譯之後的java檔案以及編譯之後的class檔案
  • 關於bat批次檔: bat檔案是windows作業系統專用的,這種檔案中可以編寫大量的windows的dos命令,執行bat檔案就相當於批次的執行dos命令
  • 關於shell批次檔: sh檔案是Linux操作統專用的 , 在Linux環境下能夠執行的是shell命令,大量的shell命令編寫在shell檔案當中,執行shell檔案就相當於批次的執行shell命令
  • Tomcat伺服器提供了bat和shell命令檔案,說明了Tomcat伺服器的通用性

分析startup.bat檔案得出,執行這個命令,實際上最後是執行:catalina.bat檔案

startup.bat檔案的執行需要CATALINA_HOME環境變數和catalina.bat檔案

startup.bat部分程式碼

<!---startup.bat檔案的執行需要CATALINA_HOME環境變數和catalina.bat檔案->
rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%CURRENT_DIR%"
if exist "%CATALINA_HOME%bincatalina.bat" goto okHome
cd ..
set "CATALINA_HOME=%cd%"
cd "%CURRENT_DIR%"
:gotHome
if exist "%CATALINA_HOME%bincatalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome

set "EXECUTABLE=%CATALINA_HOME%bincatalina.bat"

catalina.bat檔案中有這樣一行設定:MAINCLASS=org.apache.catalina.startup.Bootstrap (這個類就是main方法所在的類)

catalina.bat檔案的執行需要JAVA_HOME環境變數

catalina.bat部分程式碼

<!---catalina.bat檔案的執行需要JAVA_HOME環境變數-->
rem   JAVA_HOME       Must point at your Java Development Kit installation.
rem                   Required to run the with the "debug" argument.
rem
rem   JRE_HOME        Must point at your Java Runtime installation.

set _EXECJAVA=%_RUNJAVA%
set MAINCLASS=org.apache.catalina.startup.Bootstrap
set ACTION=start
set SECURITY_POLICY_FILE=
set DEBUG_OPTS=
set JPDA=

Tomcat伺服器既然是Java語言寫的,那麼啟動Tomcat伺服器就是執行main方法

  • 執行startup.bat檔案 ----> 執行catalina.bat檔案 -----> 執行org.apache.catalina.startup.Bootstrap類的main方法 ---->Tomca伺服器啟動成功

從 startup.bat檔案 和 catalina.bat檔案的內容可以得出 , 啟動Tomcat伺服器只把bin目錄中的相關的命令檔案配到PATH目錄下是不行的 , **還需要設定CATALINA_HOME 和 JAVA_HOME 兩個環境變數 **

  • JAVA_HOME=JDK的根 (Tomcat是java語言寫的所以想要執行Tomcat伺服器,必須先有jre)
  • CATALINA_HOME=Tomcat伺服器的根
  • PATH=%JAVA_HOME%bin;%CATALINA_HOME%bin (在DOS命令視窗可以執行相關的命令檔案)

Tomcat伺服器的執行最終步驟

啟動Tomcat: bin目錄下有一個 startup.bat 檔案,執行它可以啟動Tomcat伺服器 , 執行啟動命令時可以省略.bat的字尾

測試Tomcat伺服器是否啟動成功

開啟瀏覽器,在瀏覽器的位址列上輸入URL: http://127.0.0.1:8080

關閉Tomcat:bin目錄下有一個 shutdown.bat 檔案 , 通過它可以關閉Tomcat伺服器 , 執行關閉命令時不可以省略.bat的字尾

因為shutdown命令和windows中的關機命令衝突 , 所以建議將shutdown.bat檔案重新命名為stop.bat ,這樣就可以省略.bat的字尾

解決Tomcat伺服器啟動時在DOS命令視窗中的亂碼問題

將CATALINA_HOME/conf/logging.properties檔案中的內容修改如下:java.util.logging.ConsoleHandler.encoding = GBK

logging.properties檔案

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = GBK

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com