Tomcat理論(Ⅰ)

目錄

服務器流程圖一覽

一、JavaWeb前奏(了解)

1. C/S結構

?2. B/S結構

?3. 靜態網頁&動態網頁

4.常見的網頁

5.Web服務器

知名服務器:

?編輯

?二、Tomcat安裝(熟練)

1.Tomcat概述

2.Tomcat的作用

?3.Tomcat安裝

4.Tomcat測試

3.Tomcat分析(熟練)

1.Tomcat目錄結構

2.Tomcat修改端口號

3.Tomcat結構重點


早在自搭建Tomcat(一)---Socket&ServerSocket-CSDN博客? 這篇博客起,一共有六篇博客中詳細闡述了手寫搭建Tomcat的代碼全過程,在此篇博客中講解一下服務器的一些理論知識。

服務器流程圖一覽

首先上面是學習服務器理論知識的一份思維導圖。

一、JavaWeb前奏(了解)

1. C/S結構

C/S 結構即客戶端/服務器(Client/Server),例如QQ就是C/S結構的。我們每個 人電腦上都需要安裝QQ的客戶端,客戶端軟件向服務器端軟件發送請求,服務器端給客戶 端返回響應。

但是,因為客戶端需要不斷的更新,用戶使用起來就比較麻煩。現在的C/S結構的客 戶端已經好多了,可以提示用戶更新,用戶只需要點擊更新就可以了。最早時需要用戶自己 去官網上下載最新客戶端,然后把老版本卸載,再去安裝新版本。?

?2. B/S結構

B/S 結構即瀏覽器/服務器(Browser/Server),例如網站都是B/S結構的。當然, 網站也只是B/S結構體系軟件中的一種而已。網上銀行也都是B/S結構的!

B/S 結構的好處在于不需要用戶更新客戶端,客戶端只需要有一個瀏覽器就OK。當軟 件需要更新時,開發人員只需要關心服務器端就行。就像你在瀏覽器中訪問百度時,發現百 度的主頁發生了變化,但你也不需要更新什么。

?3. 靜態網頁&動態網頁

早期在Internet上都是靜態網頁,即html頁面。靜態網頁的數據都是不能自動變 化的,例如網頁上的當前用戶信息:“歡迎XXX登錄本系統”,這說明當前用戶名為XXX。 如果有其他用戶登錄系統就應該顯示其他用戶的名字,而且無需修改頁面!說白一點,用戶 名應該是變量,而不是常量!這是靜態網頁做不到的!

動態網頁可以中包含變量,數據的變化就不是問題了(就比如將上面那個“歡迎XXX登錄本系統”的例子連接上JDBC,并用cookie動態改變用戶名,那么就是動態頁面)。但動態網頁只能在服務器端使用, 客戶端瀏覽器只能識別靜態網頁。所以,如果用戶請求的是動態網頁,那么就需要服務器先 把動態網頁轉換成靜態網頁發送給客戶端瀏覽器!

動態網頁必須有服務器來處理。

4.常見的網頁

  • 靜態網頁:

    • htm、html

  • 動態網頁:

    • php、asp、aspx

    • jsp、.do、.action

我們要學習的是JSP(Javaserverpages),與其相關的是do(struts1)、action (struts2)

5.Web服務器

Web 服務器的作用是接收客戶端的請求,給客戶端作出響應。

知名服務器:

  • Tomcat (Apache):用來開發學習使用:免費,開源

  • JBoss (Redhat 紅帽):

  • Weblogic (Oracle):要錢的!使用 Tomcat 開發,項目寫完了,放到 Weblogic 上運行;

  • Websphere (IBM):要錢的!與 Weblogic 相似。

?二、Tomcat安裝(熟練)

1.Tomcat概述

Tomcat 服務器由Apache提供,開源免費。開發學習使用最佳選擇。安裝Tomcat 之前需要先安裝JDK,其實無論哪一種JavaWeb服務器都需要先安裝JDK。我們現在使用 的Tomcat版本可以是Tomcat8.5或Tomcat9。

Tomcat6 支持Servlet2.5;

Tomcat7,8,9 支持Servlet3.0;

2.Tomcat的作用

當用戶通過發送過來一個請求(通常是瀏覽器請求)后,Tomcat來接收請求,然后給用戶返回響應(通常會是HTML,或是文件、圖片等)。

?3.Tomcat安裝

4.Tomcat測試

測試 Tomcat 需要在瀏覽器中輸入:http://localhost:8080,或者是 http://127.0.0.1:8080。127.0.0.1 表示本機的IP地址,localhost表示本機的 主機名。

如果其他機器需要訪問,那么要把localhost使用本機IP地址替換。

假如我的IP是192.168.1.100,你們要訪問我機器上的Tomcat,那么需要在你們 的瀏覽器中訪問:http://192.168.1.100:800

項目被訪問到的必要條件 。

3.Tomcat分析(熟練)

1.Tomcat目錄結構

有必要了解一下Tomcat的目錄結構:
bin:該目錄下存放的是可執行文件,有startup.bat和shutdown.bat文件, startup.bat 用來啟動Tomcat,但需要先配置JAVA_HOME和shutdown.bat 用來停止Tomcat;

在此就引申出來一個問題:配置環境變量的意義?

  1. 提供靈活性和便捷性:環境變量可以存儲程序所需的配置信息,使得程序在運行時能夠動態地獲取資源路徑(如bin目錄)而無需硬編碼固定的路徑。這樣,程序可以在不同的系統環境或場景下靈活運行,無需手動修改代碼中的路徑信息,從而實現隨時隨地的調用。

  2. 增強系統的安全性:通過環境變量管理配置信息,可以避免直接暴露敏感的系統路徑或配置細節,從而在一定程度上保護系統的安全性和隱私性。

?conf:這是一個非常非常重要的目錄,這個目錄下有三個最為重要的文件:

①server.xml

  • 功能:配置整個服務器的信息。
  • 用途:例如,可以通過修改server.xml來設置服務器的端口號、定義虛擬主機、配置連接器(Connector)等。
  • 重要性:它是服務器的核心配置文件,決定了服務器的基本運行參數和架構。

②web.xml

  • 功能:部署描述符文件。
  • 用途:定義了Web應用程序的全局配置信息,包括Servlet映射、過濾器(Filter)、監聽器(Listener)等。
  • MIME類型web.xml中還注冊了許多MIME(Multipurpose Internet Mail Extensions)類型,這些類型用于說明文檔的內容類型。

MIME(Multipurpose Internet Mail Extensions)類型是一種用于標識文件類型和格式的網絡標準。它通過一個字符串(如text/htmlimage/jpeg)告訴客戶端(如瀏覽器)如何處理接收到的數據,例如顯示網頁、渲染圖片或下載文件。MIME類型由類型(如textimage)和子類型(如htmljpeg)組成,廣泛應用于Web開發和網絡通信中,確保數據正確傳輸和解析。

③context.xml

  • 功能:定義上下文(Context)級別的配置。
  • 用途:用于配置特定Web應用程序的運行環境,例如資源鏈接(Resource Links)、環境變量(Environment Variables)等。
  • 重要性:它為每個Web應用程序提供了獨立的配置選項,使得應用程序可以獨立于服務器全局配置運行,增強了靈活性和可維護性。

?lib:Tomcat的類庫,里面是一大堆jar文件。如果需要添加Tomcat依賴的 jar 文件,可以把它放到這個目錄中,當然也可以把項目依賴的jar文件放到這 個目錄中,這個目錄中的jar所有項目都可以共享之;?

logs:這個目錄中都是日志文件,記錄了Tomcat啟動和關閉的信息,如果啟動 Tomcat 時有錯誤,那么異常也會記錄在日志文件中。

temp:存放Tomcat的臨時文件,這個目錄下的東西可以在停止Tomcat后刪除!?

webapps:存放web項目的目錄,其中每個文件夾都是一個項目;如果這個目錄 下已經存在了目錄,那么都是tomcat自帶的。項目。其中ROOT是一個特殊的項目,在地址欄中沒有給出項目目錄時,對應的就是ROOT項目。 ?

work:運行時生成的文件,最終運行的文件都在這里。通過webapps中的項目生成的!可以把這個目錄下的內容刪除,再次運行時會生再次生成work目錄。當 客戶端用戶訪問一個JSP文件時,Tomcat會通過JSP生成Java文件,然后再 編譯Java文件生成class文件,生成的java和class文件都會存放到這個目 錄下。

LICENSE:許可證。

NOTICE:說明文件。

你應該已經發現,訪問ROOT項目時無需給出項目名,其實localhost是一個主 機名,每個主機都會對應一個項目空間,localhost對應的就是Tomcat目錄下的 webapps,每個項目空間都可以有一個名為ROOT項目,這個ROOT項目被訪問時無需給出 項目名稱。

2.Tomcat修改端口號

打開conf\server.xml(這里面存放著服務器配置信息)

http 默認端口號為80,也就是說在URL中不給出端口號時就表示使用80端口。當 然你也可以修改為其它端口號。修改之后必須重新啟動服務器

80 端口是默認的端口,如果使用80端口訪問時就可以省略端口。

如果我們改成80端口,訪問時就可以不加端口號。http://localhost/

項目提供給其他同學訪問的必要條件:

1. 和其他同學在同一局域網內或本機在公網上有固定IP

2. Web項目部署到tomcat后,如果使用80端口的話,需要進行公安部備案(百度搜索)

引申問題:如何查看本機IP地址?? 終端輸入ipconfig查看 。

注:127.0.1和localhost代表本機,僅限于本機使用,如果想讓其他人訪問自己的電腦,需要用到IP地址。

3.Tomcat結構重點

bin、conf、webapps、work。

bin 目錄中東西我們只關心啟動和停止 Tomcat,現在大家也應該掌握了!

webapps 目錄下存放的是項目,每個文件夾都對應一個項目,而且在訪問項目時,其中包含了項目名,而項目名往往都對應項目目錄名。這個也應該可以掌握了!還有就是 JavaEE Web 項目的目錄結構,這個必須必須背下來!

work:這個東西有點小難度,現在只需要知道它存放的文件是通過 webapps 目錄下的項目在運行時產生的,最終運行的都是 work 目錄下的文件。這個目錄下的東西可以刪除,然后再次運行時還會產生!

上述就是有關Tomcat的相關理論知識。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70356.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70356.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70356.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何使用 DeepSeek R1 構建開源 ChatGPT Operator 替代方案

開源大型語言模型(LLMs)的興起使得創建 AI 驅動的工具比以往任何時候都更容易,這些工具可以與 OpenAI 的 ChatGPT Operator 等專有解決方案相媲美。在這些開源模型中,DeepSeek R1 以其強大的推理能力、自由的可訪問性和適應性而脫…

使用Docker Desktop部署GitLab

1. 環境準備 確保Windows 10/11系統支持虛擬化技術(需在BIOS中開啟Intel VT-x/AMD-V)內存建議≥8GB,存儲空間≥100GB 2. 安裝Docker Desktop 訪問Docker官網下載安裝包安裝時勾選"Use WSL 2 instead of Hyper-V"(推薦…

【復習】Java集合

集合概念 集合與數組 數組是固定長度;集合是動態長度的數據結構,需要動態增加或刪除元素 數組可以包含基本數據類型和對象;集合只能包含對象 數組可以直接訪問元素;集合需要通過迭代器訪問元素 線程安全的集合? …

vue3 文件類型傳Form Data數據格式給后端

在 Vue 3 中,如果你想將文件(例如上傳的 Excel 文件)以 FormData 格式發送到后端,可以通過以下步驟實現。這種方式通常用于處理文件上傳,因為它可以將文件和其他數據一起發送到服務器。 首先,創建一個 Vue…

使用 INFINI Console 配置集群監控 Webhook 通知指南

在集群管理中,監控關鍵指標如CPU、內存、磁盤、JVM等是至關重要的。對于Easysearch及ES生態系統,還需要關注集群本身的指標,例如搜索延遲、集群狀態、節點移除等。INFINI Console不僅提供了默認的監控指標,還支持用戶自定義監控項…

WPF的頁面設計和實用功能實現

目錄 一、TextBlock和TextBox 1. 在TextBlock中實時顯示當前時間 二、ListView 1.ListView顯示數據 三、ComboBox 1. ComboBox和CheckBox組合實現下拉框多選 四、Button 1. 設計Button按鈕的邊框為圓角,并對指針懸停時的顏色進行設置 一、TextBlock和TextBox…

二級公共基礎之數據結構與算法篇(八)排序技術

目錄 前言 一、交換類排序 1.冒泡排序法 1. 冒泡排序的思想 2. 冒泡排序的實現步驟 3. 示例 4. 冒泡排序的特點 2.快速排序 1. 快速排序的核心思想 2. 快速排序的實現步驟 3. 示例代碼(C語言) 4. 快速排序的特點 二、插入類排序 1. 簡單插入排序 1.簡單插入排…

記錄一次 ALG 的處理過程

前幾天朋友找我幫忙,說碰到很大困難了,實際上,不過如此 現象是這樣的: FreeSWITCH mod_unimrcp 工作不正常 FS 和 mrcp-server 兩邊同時抓包,看到的是: sip 流程正常 FS TCP 連接到 mccp-server 失敗&…

【Linux網絡編程】IP協議格式,解包步驟

目錄 解析步驟 1.版本字段(大小:4比特位) 2.首部長度(大小:4比特位)(單位:4字節) 🍜細節解釋: 3.服務類型(大小:8比特…

CSDN文章質量分查詢系統【贈python爬蟲、提分攻略】

CSDN文章質量分查詢系統 https://www.csdn.net/qc 點擊鏈接-----> CSDN文章質量分查詢系統 <------點擊鏈接 點擊鏈接-----> https://www.csdn.net/qc <------點擊鏈接 點擊鏈接-----> CSDN文章質量分查詢系統 <------點擊鏈接 點擊鏈…

HTML應用指南:利用GET請求獲取全國瀘溪河門店位置信息

隨著新零售業態的快速發展,門店位置信息的獲取變得越來越重要。作為新興烘焙品牌之一,瀘溪河自2013年在南京創立以來,一直堅持“健康美味,香飄世界”的企業使命,以匠人精神打造新中式糕點。為了更好地理解和利用這些數據,本篇文章將深入探討GET請求的實際應用,并展示如何…

如何在 React 中測試高階組件?

在 React 中測試高階組件可以采用多種策略&#xff0c;以下是常見的測試方法&#xff1a; 1. 測試高階組件返回的組件 高階組件本身是一個函數&#xff0c;它返回一個新的組件。因此&#xff0c;可以通過測試這個返回的組件來間接測試高階組件的功能。通常使用 Jest 作為測試…

R語言Stan貝葉斯空間條件自回歸CAR模型分析死亡率多維度數據可視化

全文鏈接&#xff1a;https://tecdat.cn/?p40424 在空間數據分析領域&#xff0c;準確的模型和有效的工具對于研究人員至關重要。本文為區域數據的貝葉斯模型分析提供了一套完整的工作流程&#xff0c;基于Stan這一先進的貝葉斯建模平臺構建&#xff0c;幫助客戶為空間分析帶來…

Casbin 權限管理介紹及在 Go 語言中的使用入門

引言 在現代軟件開發過程中&#xff0c;權限管理是一個至關重要的環節&#xff0c;它關系到系統的安全性和用戶體驗。Casbin 是一個強大的訪問控制庫&#xff0c;支持多種訪問控制模型&#xff0c;如 ACL&#xff08;訪問控制列表&#xff09;、RBAC&#xff08;基于角色的訪問…

快速入門——第三方組件element-ui

學習自嗶哩嗶哩上的“劉老師教編程”&#xff0c;具體學習的網站為&#xff1a;10.第三方組件element-ui_嗶哩嗶哩_bilibili&#xff0c;以下是看課后做的筆記&#xff0c;僅供參考。 第一節 組件間的傳值 組件可以有內部Data提供數據&#xff0c;也可由父組件通過prop方式傳…

【算法通關村 Day7】遞歸與二叉樹遍歷

遞歸與二叉樹遍歷青銅挑戰 理解遞歸 遞歸算法是指一個方法在其執行過程中調用自身。它通常用于將一個問題分解為更小的子問題&#xff0c;通過重復調用相同的方法來解決這些子問題&#xff0c;直到達到基準情況&#xff08;終止條件&#xff09;。 遞歸算法通常包括兩個主要…

樸素貝葉斯法

文章目錄 貝葉斯定理樸素貝葉斯法的學習與分類條件獨立假設樸素貝葉斯的后驗概率最大化準則樸素貝葉斯的基本公式 樸素貝葉斯法的參數估計極大似然估計 貝葉斯定理 前置知識&#xff1a;條件概率、全概率、貝葉斯公式 推薦視頻&#xff0c;看完視頻后搜索博客了解先驗概率、后…

《A++ 敏捷開發》- 20 從 AI 到最佳設計

“我們現在推行AIGC&#xff0c;服務端不需要UI交互設計的用AI自動產出代碼&#xff0c;你建議的結對編程、TDD等是否還適用&#xff1f;” 這兩年AI確實很火&#xff0c;是報紙、雜志的熱門話題。例如&#xff0c;HBR雜志從2024年9月至2025年二月份3期&#xff0c;里面有接近一…

GO系列-IO 文件操作

os io 判斷文件是否存在 func fileExist(filePath string) (bool, error) {_, err : os.Stat(filePath)if err nil {return true, nil}if os.IsNotExist(err) {return false, nil}return false, &CheckFileExistError{filePath} } 讀取文件內容 func readFileContext(…

rs485協議、電路詳解(保姆級)

起源 RS-485即Recommended Standard 485 協議的簡寫。1983年被電子工業協會(EIA)批準為一種通訊接口標準. 數據在通信雙方之間傳輸&#xff0c;本質是傳輸物理的電平&#xff0c;比方說傳輸5V的電壓 -1V的電壓信號&#xff0c;這些物理信號在傳輸過程中會受到很多干擾&#x…