鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 1. Tomcat 介紹 Apache Tomcat 是由 Apache Software Foundation(ASF)開發的一個開源 Java WEB 應用伺服器。 由於 Tomcat 是由 Java 語言實現的,因此需要運行在 Java 虛 ...
鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站
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 源碼的引用
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 https://mirrors.aliyun.com/apache/tomcat/tomcat-8/v8.5.77/bin/apache-tomcat-8.5.77.tar.gz
將下載的 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 後,打開它的文件夾,可以看到以下目錄
-
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 的配置文件,打開該目錄,可以看到主要有以下幾個配置文件
- 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 lang="en">
<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 目錄中
啟動 Tomcat,在瀏覽器的網址欄輸入 127.0.0.1:8080/hello.html 就可以訪問到剛剛部署的 HTML
6.2 部署帶有 CSS、JavaScript、圖片的 HTML
實際開發中,HTML 可能不僅僅是單一文件,還會依賴一些其它資源,如 CSS、JavaScript、圖片等等。
可以將自己寫好的帶有 CSS、JavaScript 或圖片的 HTML 部署到 Tomcat 中,方法如下:
- 創建好 html 文件(hello.html)
<!DOCTYPE html>
<html lang="en">
<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)
- 將以上幾個文件都拷貝到 Tomcat 的 webapps/ROOT 目錄中
- 啟動伺服器,在瀏覽器的網址欄輸入 127.0.0.1:8080/hello.html 就可以訪問到剛剛部署的 HTML
6.3 部署 HTML 到單獨的目錄中
實際開發中,HTML 文件可能不止一個,依賴的資源也比較多,很雜亂。因此直接全部拷貝到 webapps/ROOT 目錄中就不太合適。
可以創建一個單獨的目錄,和 ROOT 目錄併列,來存放我們要部署到 Tomcat 中的內容,方法如下:
-
在 webapps 目錄中創建一個新的文件夾(這裡為 HelloApp),併在該文件中,將 HTML 的依賴再通過創建新的目錄來進行合理的分類(如 css、js、img 等)
-
將 6.2 中的那些文件全部拷貝到該文件中,並按照新建的目錄進行分類(註意:可能要調整一些資源的路徑)
- 啟動 Tomcat,在瀏覽器的網址欄輸入 127.0.0.1:8080/HelloApp/hello.html 就可以訪問到剛剛部署的 HTML
6.4 部署博客系統頁面
這裡就以這個博客系統的頁面為例,將其部署到 Tomcat 上
-
首先在 webapps 目錄下創建一個目錄(這裡為 blog)
-
將寫的博客系統頁面的文件拷貝進來
- 啟動 Tomcat,在瀏覽器的網址欄輸入 127.0.0.1:8080/blog/blog_list.html 就可以訪問到剛剛部署的博客系統
6.5 部署博客系統到雲伺服器
上面已經介紹瞭如何將 HTML 文件等 web 程式部署到本地的 Tomcat 上,但是僅僅如此,其他人是無法訪問到這些頁面的。
因此,可以將 web 程式部署到雲伺服器的 Tomcat 的 webapps 目錄中,這樣你部署的程式其他人也可以看到。方式如下:
- 首先將你要部署的程式的目錄打一個 zip 壓縮包(這裡以上述博客系統頁面為例)
- 通過 xshell 連接上雲伺服器,並切換到 Tomcat 的 webapps 目錄中
- 將 blog.zip 拖拽到 xshell 中(也可以使用其它方式,如使用 xftp)
- 拖拽成功後,將 blog.zip 進行解壓縮
unzip. blog.zip
- 最後在瀏覽器中的網址欄搜索 http://:8080/blog/blog_list.html 就可以訪問到該頁面,大家也可以訪問到的!
本文轉自:https://blog.csdn.net/weixin_51367845/article/details/123429050