Tomcat 介紹及使用教程

哈哈哈hh發表於2022-03-30

映象下載、域名解析、時間同步請點選  阿里雲開源映象站

1. Tomcat 介紹

Apache Tomcat 是由 Apache Software Foundation(ASF)開發的一個開源 Java WEB 應用伺服器。

由於 Tomcat 是由 Java 語言實現的,因此需要執行在 Java 虛擬機器上,所以使用前要先安裝 JDK,以提供執行環境

Tomcat 實現了幾個 Java EE 規範,包括 Java Servlet、Java Server Pages(JSP)、Java Expression Language 和 Java WebSocket 等。在下載好 Tomcat 後,可以在它的 lib 目錄中看到相關的 Java EE 規範 API 原始碼的引用

file

Tomcat 實現的幾個 Java EE 規範中,有一個很重要的規範 Servlet,透過它我們可以執行自己編寫的 Servlet 應用程式處理動態請求,即實現動態頁面

Tomcat 的 Connector 元件實現了 HTTP 請求的解析,可以把 Tomcat 看作是一個 HTTP 伺服器,Tomcat 可以透過 Connector 元件接收 HTTP 請求並解析,然後把解析後的資訊交給 Servlet 處理:

  • 對於靜態資源(html/css/js 等)請求:Tomcat 提供預設的 Servlet 來處理響應
  • 對於動態請求:可以對映到自己編寫的 Servlet 應用程式來處理

2. 下載安裝

這裡以 Tomcat 8 為例,在 Linux 系統中演示下載安裝 Tomcat 的方法。

注意: 由於 Tomcat 執行在 Java 虛擬機器上,因此在安裝 Tomcat 之前要先下載好 JDK

2.1 Linux 中安裝

  • 下載地址:

  • 首先切換到 opt 目錄(opt 是給主機額外安裝軟體(安裝包)所存放的目錄)

cd /opt

透過 wget 方式來下載 Tomcat 的安裝包

wget 

將下載的 Tomcat 壓縮包進行解壓

tar xzf apache-tomcat-8.5.77.tar.gz

之後透過 startup.sh 執行 Tomcat 伺服器

/opt/apache-tomcat-8.5.77/bin/startup.sh

2.2 訪問 Tomcat

當我們執行 Tomcat 之後,就可以在瀏覽器中透過 伺服器IP埠號 來進行訪問。

如果你是使用的伺服器,那麼 IP 地址就為伺服器的公網 IP
如果你是使用的自己的主機,那麼 IP 地址就為 127.0.0.1
Tomcat 的預設埠號為 8080(可以在 conf 目錄中手動修改)

注意: 如果你想要訪問其他人的 Tomcat,要麼他人 Tomcat 使用的是外網 IP,要麼你和他的外網必須相同,即在同一區域網下。只有這兩種情況你才能訪問到他人的 Tomcat,否則就訪問不了

當前我們使用的 IP 協議是 IPv4,這個協議下的 IP 地址是一個32位、4個位元組的整數,由於該數字並不大,但是全世界聯網的裝置已經超過了這個數字,因此想要每臺主機都有一個獨立的 IP 地址是不夠的。

因此就採用了 NAT 機制,即多臺主機使用一個外網 IP,外網是不同重複的,並且每個相同的外網下的不同主機都有自己獨自的內網 IP。如此一來,就很好的解決了 IP 地址不夠的問題。

3. Tomcat 的目錄結構

當安裝好 Tomcat 後,開啟它的資料夾,可以看到以下目錄

file

  • bin: 存放各種啟動、關閉和其它程式的指令碼( .sh 檔案是針對 Unix 系統使用的,.bat 檔案是針對 Windows 系統使用的,* 相同的程式的功能是一樣的)

  • conf: 配置檔案及相關資料檔案存放的目錄,如存放 server.xml、tomcat-users.xml、web.xml

  • lib: Tomcat 使用的庫檔案存放的目錄,如存放 Servlet 規範的 API

  • logs: 預設日誌檔案存放的目錄,如存放訪問日誌(可以透過 server.xml 檔案將日誌配置到其它目錄)

  • temp: 臨時檔案的工作目錄,如上傳大檔案時的快取資料會儲存在這裡

  • webapps: 存放 web 應用、用來程式部署的目錄(可以透過 server.xml 檔案配置)

一個具有獨立完整功能的網站,可以稱為一個 web 應用。一個 Tomcat 的伺服器上可以同時部署多個這樣的 web 應用。這些 web 應用以目錄的形式被存放到 webapps 目錄中

  • work: Tomcat 的工作目錄,如存放 JSP 編譯後的類檔案

4. Tomcat 的配置檔案

在 Tomcat 的 conf 目錄中,存放了 Tomcat 的配置檔案,開啟該目錄,可以看到主要有以下幾個配置檔案

file

  • catalina.policy: 當基於 -securty 選項啟動 Tomcat 例項時會讀取此配置檔案。此檔案是 Java 的安全策略配置檔案,用於配置訪問 codebase(程式碼庫)或某些 Java 類的許可權
  • catalina.properties: Java 屬性定義檔案,設定類載入器路徑、安全包列表和一些調整效能的引數資訊
  • context.xml: 為部署與此 Tomcat 例項上的 web 應用程式提供的預設配置檔案,每個 webapp 都可以使用獨有的 context.xml,通常放置於 webapp 目錄的 META-INF 子目錄中,常用於定義會話管理器,Realm 和 JDBC 等
  • logging.properties: 定義日誌相關的配置資訊,如日誌級別、檔案路徑等
  • server.xml: Tomcat 核心配置檔案,包含 Service、Connector、Engine、Realm、Valve、Hosts 主元件的相關配置資訊
  • tomcat-users.xml: 包含 Realm 認證時用到的相關角色、使用者和密碼等資訊;Tomcat 自帶的 manager 預設情況下會用到此檔案;在 Tomcat 中新增火刪除使用者,為使用者指定角色等將透過編輯此檔案實現
  • web.xml: 為部署與 Tomcat 例項上的所有 web 應用程式提供部署描述符,通常用於為 webapp 提供預設的 servlet 定義和基本的 MUIME 對映表

5. WEB 應用部署目錄結構

部署應用程式時,一般會將其打包成一個 war 包,然後放到 Tomcat 的應用程式部署目錄 webapps 中。而 web 應用程式有特定的組織格式,是一種層次型目錄結構,通常包含了 servlet 程式碼檔案、HTML、JSP 頁面檔案、類檔案、部署描述符檔案等等,相關說明如下:

  • /: 表示 web 應用程式的根目錄,可以存放 HTML、JSP 頁面以及其他客戶端瀏覽器必須可見的其他檔案(如 JS、CSS、影像檔案)。在較大的應用程式中,還可以選擇將這些檔案劃分為子目錄層次結構

  • /WEB-INF: 表示 web 應用程式的所有私有資源目錄,使用者瀏覽器不可能訪問到的,通常 web.xml 和 context.xml 均放置於此目錄。

  • /WEB-INF/web.xml: 表示 web 應用程式的私有的部署描述符,描述組成應用程式的 servlet 和其他元件(如 filter),以及相關初始化引數和容器管理的安全性約束。

  • /WEB-INF/classes: 表示 web 應用程式自有的 Java 程式類檔案及相關資源存放目錄。

  • /WEB-INF/lib: 表示 web 應用程式自有的 JAR 檔案,其中包含應用程式所需的 Java 類檔案及相關資源(如第三方類庫或 JDBC 驅動程式)

6. 部署靜態頁面

什麼是靜態頁面?

靜態頁面就是內容始終固定的頁面,即使使用者不同、時間不同、輸入的引數不同,頁面內容也不會發生變化。除非網站的開發人員修改原始碼,否則頁面的內容始終不變。

6.1 部署單個 HTML

可以將自己寫好的單個 HTML 部署到 Tomcat 中,方法如下:

  • 先建立好 html 檔案(hello.html)
<!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>將 HTML 部署到 Tomcat 上</title> </head> <body>     <div>hello</div> </body> </html>
  • 將建立好的 html 檔案複製到 Tomcat 的 webapps/Root 目錄中

file

啟動 Tomcat,在瀏覽器的網址欄輸入 127.0.0.1:8080/hello.html 就可以訪問到剛剛部署的 HTML

file

6.2 部署帶有 CSS、JavaScript、圖片的 HTML

實際開發中,HTML 可能不僅僅是單一檔案,還會依賴一些其它資源,如 CSS、JavaScript、圖片等等。

可以將自己寫好的帶有 CSS、JavaScript 或圖片的 HTML 部署到 Tomcat 中,方法如下:

  • 建立好 html 檔案(hello.html)
<!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>將 HTML 部署到 Tomcat 上</title>     <link rel="stylesheet" href="style.css"> </head> <body>     <img src="彌豆子.jpg" alt="彌豆子">     <script src="app.js"></script> </body> </html>
  • 建立好 css 檔案(style.css)
img {     width: 500px;     height: 300px;
  • 建立好 js 檔案(app.js)
console.log("hello");
  • 準備好圖片(彌豆子.jpg)

file

  • 將以上幾個檔案都複製到 Tomcat 的 webapps/ROOT 目錄中

file

  • 啟動伺服器,在瀏覽器的網址欄輸入 127.0.0.1:8080/hello.html 就可以訪問到剛剛部署的 HTML

file

6.3 部署 HTML 到單獨的目錄中

實際開發中,HTML 檔案可能不止一個,依賴的資源也比較多,很雜亂。因此直接全部複製到 webapps/ROOT 目錄中就不太合適。

可以建立一個單獨的目錄,和 ROOT 目錄並列,來存放我們要部署到 Tomcat 中的內容,方法如下:

  • 在 webapps 目錄中建立一個新的資料夾(這裡為 HelloApp),並在該檔案中,將 HTML 的依賴再透過建立新的目錄來進行合理的分類(如 css、js、img 等)

  • 將 6.2 中的那些檔案全部複製到該檔案中,並按照新建的目錄進行分類(注意:可能要調整一些資源的路徑)

file

  • 啟動 Tomcat,在瀏覽器的網址欄輸入 127.0.0.1:8080/HelloApp/hello.html 就可以訪問到剛剛部署的 HTML

file

6.4 部署部落格系統頁面

這裡就以這個部落格系統的頁面為例,將其部署到 Tomcat 上

  • 首先在 webapps 目錄下建立一個目錄(這裡為 blog)

  • 將寫的部落格系統頁面的檔案複製進來

file

  • 啟動 Tomcat,在瀏覽器的網址欄輸入 127.0.0.1:8080/blog/blog_list.html 就可以訪問到剛剛部署的部落格系統

file

6.5 部署部落格系統到雲伺服器

上面已經介紹瞭如何將 HTML 檔案等 web 程式部署到本地的 Tomcat 上,但是僅僅如此,其他人是無法訪問到這些頁面的。

因此,可以將 web 程式部署到雲伺服器的 Tomcat 的 webapps 目錄中,這樣你部署的程式其他人也可以看到。方式如下:

  • 首先將你要部署的程式的目錄打一個 zip 壓縮包(這裡以上述部落格系統頁面為例)

file

  • 透過 xshell 連線上雲伺服器,並切換到 Tomcat 的 webapps 目錄中

file

  • 將 blog.zip 拖拽到 xshell 中(也可以使用其它方式,如使用 xftp)

file

  • 拖拽成功後,將 blog.zip 進行解壓縮
unzip. blog.zip

file

  • 最後在瀏覽器中的網址欄搜尋 http://:8080/blog/blog_list.html 就可以訪問到該頁面,大家也可以訪問到的!

本文轉自:https://blog.csdn.net/weixin_51367845/article/details/123429050


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70003733/viewspace-2884878/,如需轉載,請註明出處,否則將追究法律責任。

相關文章