【JavaWeb】TomcatJavaWebHTTP

Tomcat&JavaWeb&HTTP

文章目錄

  • Tomcat&JavaWeb&HTTP
  • 一、Tomcat
    • 1.1 版本選擇及安裝
    • 1.2 目錄
    • 1.3 WEB項目部署的方式
  • 二、IDEA中Java Web開發部署流程
  • 三、HTTP協議
    • 3.1 發展歷程
    • 3.2 HTTP協議的會話方式
    • 3.3 請求報文
    • 3.4 響應報文

一、Tomcat

Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。最新的Servlet 和JSP 規范總是能在Tomcat 中得到體現,因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛并得到了部分軟件開發商的認可,成為目前比較流行的Web 應用服務器。

1.1 版本選擇及安裝

版本:企業用的比較廣泛的是8.0和9.0,目前比較新正式發布版本是Tomcat10.0, Tomcat11仍然處于測試階段。從 Java EE 遷移到 Jakarta EE 的結果是,所有已實現 API 的主包已從 更改 javax.*jakarta.*這幾乎肯定需要更改代碼以使應用程序能夠從 Tomcat 9 及更早版本遷移到 Tomcat 10 及更高版本。官方有提供遷移工具。

  • JAVAEE 版本和Servlet版本號對應關系 Jakarta EE Releases
Servlet VersionEE Version
6.1Jakarta EE ?
6.0Jakarta EE 10
5.0Jakarta EE 9/9.1
4.0JAVA EE 8
3.1JAVA EE 7
3.1JAVA EE 7
3.0JAVAEE 6
  • Tomcat 版本和Servlet版本之間的對應關系
Servlet VersionTomcat VersionJDK Version
6.111.0.x17 and later
6.010.1.x11 and later
5.010.0.x (superseded)8 and later
4.09.0.x8 and later
3.18.5.x7 and later
3.18.0.x (superseded)7 and later
3.07.0.x (archived)6 and later (7 and later for WebSocket)

下載

  • Tomcat官方網站:http://tomcat.apache.org/
  • 安裝版:需要安裝,一般不考慮使用。
  • 解壓版:直接解壓縮使用,我們使用的版本。

在這里插入圖片描述

安裝

  1. 正確安裝JDK并配置JAVA_HOME( https://injdk.cn中可以下載各種版本的JDK),配置了才能啟動

  2. 解壓tomcat到非中文無空格目錄

  3. 點擊bin/startup.bat啟動

  4. 打開瀏覽器輸入 http://localhost:8080訪問測試

  5. 直接關閉窗口或者運行 bin/shutdown.bat關閉tomcat

  6. 處理dos窗口日志中文亂碼問題: 修改 conf/logging.properties ,將所有的UTF-8修改為GBK

1.2 目錄

  • bin:該目錄下存放的是二進制可執行文件;解壓版會有startup.bat和shutdown.bat文件控制服務器啟停
  • conf:配置文件目錄,這個目錄下有四個最為重要的文件:
    • server.xml:配置整個服務器信息。例如修改端口號。默認HTTP請求的端口號是:8080
    • tomcat-users.xml:存儲tomcat用戶的文件,以及用戶的角色信息。用于從主頁進入Tomcat Manager頁面
    • web.xml:部署描述符文件,這個文件中注冊了很多MIME類型,即文檔類型。文件類型映射配置文件
    • context.xml:對所有應用的統一配置,通常不會去配置它
  • lib:Tomcat的類庫
  • logs:日志文件目錄,記錄了Tomcat啟動和關閉的信息,如果啟動Tomcat時有錯誤,那么異常也會記錄在日志文件中
  • temp:存放Tomcat的臨時文件,這個目錄下的東西可以在停止Tomcat后刪除
  • webapps:存放web項目的目錄,其中每個文件夾都是一個項目;如果目錄下已經存在目錄,這些是tomcat自帶的項目。其中ROOT是一個特殊的項目,在地址欄中訪問:http://127.0.0.1:8080,沒有給出項目目錄時,對應的就是ROOT項目。http://localhost:8080/examples,進入示例項目。其中examples 就是項目名,即文件夾的名字
  • work:運行時生成的文件,最終運行的文件都在這里。通過webapps中的項目生成的。可以把這個目錄下的內容刪除,再次運行時會生再次生成work目錄。當客戶端用戶訪問一個JSP文件時,Tomcat會通過JSP生成Java文件,然后再編譯Java文件生成class文件,生成的java和class文件都會存放到這個目錄下

1.3 WEB項目部署的方式

  • 方式1:直接將編譯好的項目或者war包(tomcat啟動后會自動解壓war包)放在 webapps 目錄下
  • 方式2:在tomcat中通過配置文件指向app的實際磁盤路徑
    • 在tomcat的conf下創建Catalina/localhost目錄,并在該目錄下準備一個app.xml文件
<!-- path: 項目的訪問路徑,也是項目的上下文路徑,就是在瀏覽器中,輸入的項目名稱docBase: 項目在磁盤中的實際路徑-->
<Context path="/app" docBase="D:\mywebapps\app" />

二、IDEA中Java Web開發部署流程

  1. idea配置應用服務器:settings -> Build, Execution, Deployment -> Application Servers

在這里插入圖片描述

  1. 新建項目后,新建 Module,為 Module 添加 Tomcat 依賴

在這里插入圖片描述

  1. 選擇module,雙擊shift,添加 framework support;idea低版本選中 module 右鍵也有該選項。添加 Web Application 并且勾選 web.xml

在這里插入圖片描述

  1. IDEA部署-運行web項目:在運行和debug旁邊有編輯配置,添加tomcat Server,選擇 Local,之后點擊右下角 Fix的配置項目,選擇帶 _exploded 的(或者到該頁面 Deployment 頁簽配置),配置完即可啟動了,瀏覽器將打開 index 頁面

在這里插入圖片描述

IDEA部署并運行項目的原理

  • idea并沒有直接將編譯好的項目放入tomcat的webapps中
  • idea根據關聯的tomcat,創建了一個tomcat副本,將項目部署到了這個副本中
  • idea的tomcat副本在C:\用戶\當前用戶\AppData\Local\JetBrains\IntelliJIdea2022.2\tomcat\中
  • idea的tomcat副本并不是一個完整的tomcat,副本里只是準備了和當前項目相關的配置文件而已
  • idea啟動tomcat時,是讓本地tomcat程序按照tomcat副本里的配置文件運行
  • idea的tomcat副本部署項目的模式是通過conf/Catalina/localhost/*.xml配置文件的形式實現項目部署的

三、HTTP協議

3.1 發展歷程

HTTP/1.1

  • HTTP 的第一個標準化版本 HTTP/1.1 ( RFC 2068 ) 于 1997 年初發布,支持七種請求方法:OPTIONS,GET,HEAD,POST,PUT,DELETE,和TRACE
  • 發布后15年非常穩定,但之后出現了 HTTPS(安全超文本傳輸協議)。它是使用 SSL/TLS 進行安全加密通信的 HTTP 的安全版本

HTTP/2

  • 由IETF在2015年發布。HTTP/2旨在提高Web性能,減少延遲,增加安全性,使Web應用更加快速、高效和可靠
  • 多路復用:HTTP/2 允許同時發送多個請求和響應,而不是像 HTTP/1.1 一樣只能一個一個地處理。這樣可以減少延遲,提高效率,提高網絡吞吐量
  • 二進制傳輸:HTTP/2 使用二進制協議,與 HTTP/1.1 使用的文本協議不同。二進制協議可以更快地解析,更有效地傳輸數據,減少了傳輸過程中的開銷和延遲
  • 頭部壓縮:HTTP/2 使用 HPACK 算法對 HTTP 頭部進行壓縮,減少了頭部傳輸的數據量,從而減少了網絡延遲
  • 服務器推送:HTTP/2 支持服務器推送,允許服務器在客戶端請求之前推送資源,以提高性能
  • 改進的安全性:HTTP/2 默認使用 TLS(Transport Layer Security)加密傳輸數據,提高了安全性
  • 兼容 HTTP/1.1:HTTP/2 可以與 HTTP/1.1 共存,服務器可以同時支持 HTTP/1.1 和 HTTP/2。如果客戶端不支持 HTTP/2,服務器可以回退到 HTTP/1.1

HTTP/3

  • 于 2021 年 5 月 27 日發布 , HTTP/3 是一種新的、快速、可靠且安全的協議,適用于所有形式的設備。 HTTP/3 沒有使用 TCP,而是使用谷歌在 2012 年開發的新協議 QUIC
  • HTTP/3 帶來了革命性的變化,以提高 Web 性能和安全性。設置 HTTP/3 網站需要服務器和瀏覽器支持
  • 目前,谷歌云、Cloudflare和Fastly支持 HTTP/3。Chrome、Firefox、Edge、Opera 和一些移動瀏覽器支持 HTTP/3

3.2 HTTP協議的會話方式

瀏覽器與服務器之間的通信過程要經歷四個步驟

在這里插入圖片描述

  • 瀏覽器與WEB服務器的連接過程是短暫的,每次連接只處理一個請求和響應。對每一個頁面的訪問,瀏覽器與WEB服務器都要建立一次單獨的連接
  • 瀏覽器到WEB服務器之間的所有通訊都是完全獨立分開的請求和響應對

3.3 請求報文

請求報文組成:

  • 請求首行(請求行); GET/POST 資源路徑?參數 HTTP/1.1
    • 請求方式 GET
    • 訪問服務器的資源路徑?參數1=值1&參數2=值2 …
    • 協議及版本 HTTP/1.1
  • 請求頭信息(請求頭);
  • 空行;
  • 請求體;POST請求才有請求體
- 請求行
GET http://localhost:8080/TestWeb_war_exploded/ HTTP/1.1
- 請求頭
- 主機虛擬地址
Host: localhost:8080
- 長連接
Connection: keep-alive
Cache-Control: max-age=0
sec-ch-ua: "Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
- 請求協議的自動升級[http的請求,服務器卻是https的,瀏覽器自動會將請求協議升級為https的]
Upgrade-Insecure-Requests: 1
- 用戶系統信息
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
- 瀏覽器支持的文件類型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
- 當前頁面的上一個頁面的路徑[當前頁面通過哪個頁面跳轉過來的]:   可以通過此路徑跳轉回上一個頁面, 廣告計費,防止盜鏈
Referer: http://localhost:8080/TestWeb_war_exploded/login.html
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
- 瀏覽器支持的壓縮格式
Accept-Encoding: gzip, deflate, br
- 瀏覽器支持的語言
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=4A572D771E3A36F8CBCB791AB56C9D9E

3.4 響應報文

響應報文組成:

  • 響應首行(響應行); 協議/版本 狀態碼 狀態碼描述
    • 協議及版本 HTTP/1.1
    • 響應狀態碼 200;HTTP 狀態碼(英語:HTTP Status Code)是用以表示 HTTP 響應狀態的 3 位數字代碼。
    • 狀態描述 OK (缺省)
  • 響應頭信息(響應頭);
  • 空行;
  • 響應體;
- 響應行
HTTP/1.1 200
- 響應頭
- 響應體數據的類型[瀏覽器根據類型解析響應體數據,如果響應的是html頁面,最終響應體內容會被瀏覽器顯示到頁面中]
Content-Type: text/html;charset=UTF-8
- 響應體內容的字節數
Content-Length: 111
- 響應的時間,這可能會有8小時的時區差
Date: Fri, 24 Nov 2023 08:22:39 GMT
Keep-Alive: timeout=20
Connection: keep-alive
- 下面是空行及響應體<html><head><title>$Title$</title></head><body>$END$<br />老鐵666</body>
</html>

常見響應狀態碼:

  • 200: 請求成功,瀏覽器會把響應體內容(通常是html)顯示在瀏覽器中;
  • 302: 重定向,當響應碼為302時,表示服務器要求瀏覽器重新再發一個請求,服務器會發送一個響應頭Location指定新請求的URL地址;
  • 304: 使用了本地緩存
  • 404: 請求的資源沒有找到,說明客戶端錯誤的請求了不存在的資源;
  • 405: 請求的方式不允許
  • 500: 請求資源找到了,但服務器內部出現了錯誤;

一般含義:

  • 1xx:消息
  • 2xx:成功
  • 3xx:重定向
  • 4xx:客戶端錯誤
  • 5xx:服務器錯誤

更多狀態碼:

狀態碼狀態碼英文描述中文含義
1**消息
100Continue繼續。客戶端應繼續其請求
101Switching Protocols切換協議。服務器根據客戶端的請求切換協議。只能切換到更高級的協議,例如,切換到HTTP的新版本協議
2**成功
200OK請求成功。一般用于GET與POST請求
201Created已創建。成功請求并創建了新的資源
202Accepted已接受。已經接受請求,但未處理完成
203Non-Authoritative Information非授權信息。請求成功。但返回的meta信息不在原始的服務器,而是一個副本
204No Content無內容。服務器成功處理,但未返回內容。在未更新網頁的情況下,可確保瀏覽器繼續顯示當前文檔
205Reset Content重置內容。服務器處理成功,用戶終端(例如:瀏覽器)應重置文檔視圖。可通過此返回碼清除瀏覽器的表單域
206Partial Content部分內容。服務器成功處理了部分GET請求
3**重定向
300Multiple Choices多種選擇。請求的資源可包括多個位置,相應可返回一個資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇
301Moved Permanently永久移動。請求的資源已被永久的移動到新URI,返回信息會包括新的URI,瀏覽器會自動定向到新URI。今后任何新的請求都應使用新的URI代替
302Found臨時移動。與301類似。但資源只是臨時被移動。客戶端應繼續使用原有URI
303See Other查看其它地址。與301類似。使用GET和POST請求查看
304Not Modified未修改。所請求的資源未修改,服務器返回此狀態碼時,不會返回任何資源。客戶端通常會緩存訪問過的資源,通過提供一個頭信息指出客戶端希望只返回在指定日期之后修改的資源
305Use Proxy使用代理。所請求的資源必須通過代理訪問
306Unused已經被廢棄的HTTP狀態碼
307Temporary Redirect臨時重定向。與302類似。使用GET請求重定向
4**客戶端錯誤
400Bad Request客戶端請求的語法錯誤,服務器無法理解
401Unauthorized請求要求用戶的身份認證
402Payment Required保留,將來使用
403Forbidden服務器理解請求客戶端的請求,但是拒絕執行此請求
404Not Found服務器無法根據客戶端的請求找到資源(網頁)。通過此代碼,網站設計人員可設置"您所請求的資源無法找到"的個性頁面
405Method Not Allowed客戶端請求中的方法被禁止
406Not Acceptable服務器無法根據客戶端請求的內容特性完成請求
407Proxy Authentication Required請求要求代理的身份認證,與401類似,但請求者應當使用代理進行授權
408Request Time-out服務器等待客戶端發送的請求時間過長,超時
409Conflict服務器完成客戶端的 PUT 請求時可能返回此代碼,服務器處理請求時發生了沖突
410Gone客戶端請求的資源已經不存在。410不同于404,如果資源以前有現在被永久刪除了可使用410代碼,網站設計人員可通過301代碼指定資源的新位置
411Length Required服務器無法處理客戶端發送的不帶Content-Length的請求信息
412Precondition Failed客戶端請求信息的先決條件錯誤
413Request Entity Too Large由于請求的實體過大,服務器無法處理,因此拒絕請求。為防止客戶端的連續請求,服務器可能會關閉連接。如果只是服務器暫時無法處理,則會包含一個Retry-After的響應信息
414Request-URI Too Large請求的URI過長(URI通常為網址),服務器無法處理
415Unsupported Media Type服務器無法處理請求附帶的媒體格式
416Requested range not satisfiable客戶端請求的范圍無效
417Expectation Failed服務器無法滿足Expect的請求頭信息
5**服務器錯誤
500Internal Server Error服務器內部錯誤,無法完成請求
501Not Implemented服務器不支持請求的功能,無法完成請求
502Bad Gateway作為網關或者代理工作的服務器嘗試執行請求時,從遠程服務器接收到了一個無效的響應
503Service Unavailable由于超載或系統維護,服務器暫時的無法處理客戶端的請求。延時的長度可包含在服務器的Retry-After頭信息中
504Gateway Time-out充當網關或代理的服務器,未及時從遠端服務器獲取請求
505HTTP Version not supported服務器不支持請求的HTTP協議的版本,無法完成處理

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

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

相關文章

php xml數據轉數組兩種方式

目錄 方法一、可以使用simplexml_load_string()函數將XML數據轉換為數組。 方法二、使用PHP內置的DOMDocument類來將XML數據轉換為數組的方法 方法一、可以使用simplexml_load_string()函數將XML數據轉換為數組。 $xmlData <root><name>John Doe</name>&l…

NX二次開發UF_CSYS_create_matrix 函數介紹

文章作者&#xff1a;里海 來源網站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_create_matrix Defined in: uf_csys.h int UF_CSYS_create_matrix(const double matrix_values [ 9 ] , tag_t * matrix_id ) overview 概述 Creates a 3 x 3 matrix. 創建…

nodejs+vue+python+PHP+微信小程序-青云商場管理系統的設計與實現-安卓-計算機畢業設計

研究步驟、措施&#xff1a; &#xff08;1&#xff09;與指導老師確定系統主要功能&#xff1b; &#xff08;2&#xff09;做需求分析及功能模塊劃分&#xff1b; &#xff08;3&#xff09;指導老師通過后&#xff0c;設計出用例圖&#xff0c;E-R圖&#xff0c;功能模塊圖 …

【XSLVGL2.0】如何新增一種語言和詞條

XSLVGL2.0 開發手冊 【XSLVGL2.0】如何新增一種語言和詞條 1、概述2、以外置資源的方式增加詞條3、以內置資源的方式增加詞條4、使用方法1、概述 本文件旨在介紹新增一種語言詞條的方法 2、以外置資源的方式增加詞條 假設項目需要增加一種英文的詞條。一般地,我們采用國際…

Git-將指定文件回退到指定版本

場景1&#xff1a;修改了文件/path/to/file&#xff0c;沒有提交&#xff0c;但是覺得改的不好&#xff0c;想還原。 解決&#xff1a; git checkout -- /path/to/file 場景2&#xff1a;修改了文件/path/to/file&#xff0c;已經提交&#xff0c;但是覺得改的不好&#xff0c…

老牌開源 SVG 編輯器 SVGEdit 是如何架構的?

大家好&#xff0c;我是前端西瓜哥。這次簡單看看 SVGEdit 的架構。 SVGEdit 的版本為 7.2.0。 SVGEdit 一款非常老牌的 SVG 圖形編輯器&#xff0c;用于編輯處理 SVG&#xff0c;start 數目前是 5.8k。 它的優點在于經過多年的開發&#xff0c;完成度高&#xff0c;較為成熟&a…

大眾博客系統測試報告【改】

一、項目背景 大眾博客系統采用前后端分離的方法來實現&#xff0c;同時使用了數據庫來存儲相關的數據&#xff0c;同時將其部署到云服務器上。前端主要有四個頁面構成&#xff1a;登錄頁、列表頁、詳情頁以及編輯頁&#xff0c;以上模擬實現了最簡單的大眾博客系統。其結合后端…

Tars-GO 開發

默認環境是安裝好的 創建服務: tarsgo make App Server Servant GoModuleName Tars 實例的名稱&#xff0c;有三個層級&#xff0c;分別是 App&#xff08;應用&#xff09;、Server&#xff08;服務&#xff09;、Servant&#xff08;服務者&#xff0c;有時也稱 Object&am…

LeetCode Hot100 74.搜索二維矩陣

題目&#xff1a; 給你一個滿足下述兩條屬性的 m x n 整數矩陣&#xff1a; 每行中的整數從左到右按非嚴格遞增順序排列。每行的第一個整數大于前一行的最后一個整數。 給你一個整數 target &#xff0c;如果 target 在矩陣中&#xff0c;返回 true &#xff1b;否則&#x…

數據結構——堆的實現

堆的實現-----C語言版 目錄&#xff1a;一、堆的實現1.1堆的定義1.2堆的實現1.2.1堆的各個接口1.2.2堆的向上調整1.2.3堆的向下調整1.2.4堆的定義聲明和初始化1.2.5堆的數據處理1.2.6堆的判空和堆的數據個數以及堆銷毀1.2.7堆的代碼實現 二、TOP—K問題 目錄&#xff1a; 一、…

C++ 文件和流、異常處理、動態內存、預處理器

一、C文件和流&#xff1a; 在C中進行文件處理&#xff0c;需要包含頭文件<iostream>和<fstream>。fstream標準庫定義的三個新的數據類型&#xff1a; 數據類型 描述 ofstream 該數據類型表示輸出文件流&#xff0c;用于創建文件并向文件寫入信息。 ifstream …

vscode項目推送到git

1、打開項目文件 打開文件后點擊vs code左側工具欄中第三個源代碼管理圖標&#xff0c;點擊初始化倉庫&#xff0c;此時會創建一個本地倉庫會檢查該項目中的文件變更 2、創建遠程倉庫 點擊克隆/下載&#xff0c;復制HTTPS地址 3、添加遠程地址 1&#xff09;圖形化操作 2…

Leetcode刷題之用隊列實現棧(C語言版)

Leetcode刷題之用隊列實現棧&#xff08;C語言版&#xff09; 一、題目描述二、題目要求三、題目示例四、題目解析Ⅰ、MyStack* myStackCreateⅡ、void myStackPush(MyStack* obj, int x)Ⅲ、int myStackPop(MyStack* obj)Ⅳ、int myStackTop(MyStack* obj)Ⅴ、bool myStackEmp…

文件夾重命名:徹底擺脫數字困擾,批量修改文件夾名去除數字

在日常生活和工作中&#xff0c;經常會遇到需要修改文件夾名稱的情況。有時候是因為文件夾名稱中包含了數字&#xff0c;有時候是因為文件夾名稱不符合規范。無論出于什么原因&#xff0c;修改文件夾名稱都是一件非常繁瑣的事情。尤其是需要修改大量文件夾名稱時&#xff0c;手…

Jenkins 整合 Docker 自動化部署

Docker 安裝 Jenkins 配置自動化部署 1. Docker 安裝 Jenkins 1.1 拉取鏡像文件 docker pull jenkins/jenkins1.2 創建掛載文件目錄 mkdir -p $HOME/jenkins_home1.3 啟動容器 docker run -d -p 8080:8080 -v $HOME/jenkins_home:/var/jenkins_home --name jenkins jenkin…

CentOS rpm安裝Nginx和配置

CentOS rpm安裝Nginx和配置 官方下載地址: http://nginx.org/en/download.html 介紹 Nginx(“engine x”)是一款由俄羅斯的程序設計師Igor Sysoev所開發高性能的 Web和 反向代理 服務器&#xff0c;也是一個 IMAP/POP3/SMTP 代理服務器。 rpm包安裝 #安裝nginx&#xff0c…

k8s部署的java服務查看連接nacos緩存的配置文件

一、問題描述 k8s部署的java服務&#xff0c;使用nacos中的配置文件&#xff0c;需要在緩存中查看該服務具體是使用到了哪些配置文件 二、解決 參考文檔: https://nacos.io/zh-cn/docs/system-configurations.html 文檔描述如下: 進入java服務容器進入用戶目錄下的nacos&a…

4-Docker命令之docker version

1.docker version介紹 docker version命令是用于查看docker容器的版本信息 2.docker version用法 docker version [參數] [root@centos79 ~]# docker version --helpUsage: docker version [OPTIONS]Show the Docker version informationOptions:-f, --format string Fo…

Android 12.0 mt6771新增分區功能實現四

1.前言 在12.0的系統rom開發中,在對某些特殊模塊中關于數據的存儲方面等需要新增分區來保存, 所以就需要在系統分區新增分區,接下來就來實現這個功能,看第四部分的新增分區的實現過程 2.mt6771新增分區功能實現四的核心類 device/mediatek/mt6771/ueventd.mt6771.rcdevice…

Java枚舉詳解

一、什么是枚舉類型 枚舉類型是一種特殊的數據類型&#xff0c;用于定義一組固定的命名常量。枚舉類型提供了一種更強大、更安全和更易讀的方式來表示一組相關的常量。 在Java中&#xff0c;枚舉類型是通過使用enum關鍵字來定義的。枚舉類型可以包含一個或多個枚舉常量&#xf…