目錄
一、Tomcat是什么
二、Tomcat安裝
三、Tomcat相關目錄
四、Web項目標準目錄結構規范
五、Tomcat項目部署方式
六、IDEA關聯本地Tomcat
七、HTTP協議
7.1 http的交互方式
7.1.1 http長連接和短連接
7.1.2 http1.1緩存機制
7.2 http數據報文格式
八、常見響應狀態碼
一、Tomcat是什么
Tomcat是由Apache基金會開發的Web服務器軟件,專門用于為Java Web應用程序提供部署和運行的環境。同樣由于Tomcat軟件也是用java編寫的所以Tomcat軟件的運行也需要Jre。因此,如果我們想要在網上部署我們用java開發好的web應用程序,就需要首先在電腦上安裝Jre、然后安裝web服務器軟件如:Tomcat、最后將我們開發好的Java web程序部署到web服務器軟件Tomcat中。常見的JavaWeb服務器軟件有很多,Tomcat只是其中之一。
二、Tomcat安裝
- 從官網Apache Tomcat? - Welcome!下Tomcat服務軟件。
- 將下載好的Tomcat壓縮包解壓到要安裝的路徑下。
- Tomcat軟件的運行需要JDK環境,在Tomcat運行時會通過系統的JAVA_HOME環境變量來找到JRE,因此在運行Tomcat之前需要事先為Tomcat軟件配置好系統的JAVA_HOME環境變量。
注意:Tomcat10.1.x以上需要JDK11以上版本。
4.找到Tomcat解壓后的文件夾,進入bin目錄下,運行和關閉Tomcat服務。
注意:在運行Tomcat時會控制臺會出現亂碼的日志輸出,原因是控制臺使用的GDK編碼,而Tomcat默認設置控制臺輸出的日志是UTF-8編碼。解決辦法是進入conf目錄,打開logging.properties日志配置文件進行相關修改。
三、Tomcat相關目錄
說明:
1、瀏覽器訪問webapps中內置的ROOT項目時,url無需指定項目訪問路徑而直接跟請求的文件。
2、webapps下的host-manager和manager為管理性項目,用戶通過瀏覽器訪問此兩個項目需要輸入Tomcat的用戶名和密碼。可以在conf\tomcat-users.xm配置文件中創建用戶和密碼,只需添加以下標簽元素:
Tomcat相關目錄:
四、Web項目標準目錄結構規范
說明:
1、客戶端瀏覽器在訪問Tomcat中已部署的項目時其URL路徑格式如下圖所示,若不指定訪問的具體網頁文件則默認是index.html。
五、Tomcat項目部署方式
方式一:直接將編譯好的Java web項目放在webapps目錄下。
方式二:將編譯好的java web項目打包壓縮成war包,放在webapps目錄下,Tomcat啟動后會自動解壓war包(本質和方式一相同)。
方式三:可以將項目放在非webapps目錄下,在Tomcat中通過其配置文件來指定項目的實際物理路徑;這樣當Tomcat服務啟動時會自動將其配置文件中指定的項目部署到web服務器上。
- 在*\apache-tomcat-10.1.19\conf\Catalina\localhost目錄下創建和要部署的項目同名的.xml配置文件。在此文件中指定實際項目的所在的物理位置路徑以及用戶通過瀏覽器訪問項目時需要寫的虛擬路徑。
六、IDEA關聯本地Tomcat
1、建立IDEA和Tomcat的關聯。使Java Web工程可以使用Tomcat提供的第三方類庫依賴并將app部署到Tomcat上運行。
2、使用IDEA創建一個JavaWeb工程,在工程中編寫代碼。
①創建一個用于包含其它子模塊項目的父工程項目
②在父項目下創建子項目模塊moudle
③指定子項目使用的TomCat提供的類庫
④為子模塊項目添加web目錄資源組件。使其成為一個JavaWeb工程。
⑤創建工程相關目錄編寫開發代碼
⑥將resources標記為資源根目錄,以便在項目構建時將其與src目錄一起編譯合并為一個classes目錄放在WEB-INF目錄中。
⑦將web目錄WEB-INF子目錄下的lib目錄設置為類庫,供整個子項目模塊使用。
3、使用IDEA將工程構建成一個可發布的app。
4、使用IDEA將構建好的app部署到TomCat中運行。
說明:Tomcat運行時會自動構建項目,然后在將其部署到Tomcat上,只不過在此過程中IDEA并不是直接就將構建好的項目放在Tomcat家目錄webapps文件夾下,而是會自動在系統當前用戶的家目錄路徑下生成一個簡化的Tomcat目錄結構副本,然后將部署的項目以虛擬目錄設置瀏覽器訪問路徑上下文的方式配置在Tomcat副本配置目錄中。然后Tomcat就會讀取用戶家目錄下的副本作為其配置文件來部署構建好的項目。
注意:IDEA控制臺使用的GBK字符編碼,Tomcat配置文件中設置的日志輸出字符編碼為utf-8,因此在Tomcat啟動時控制臺輸出的日志會出現亂碼。需要在Tomcat其日志配置文件中進行設置為GBK編碼。
七、HTTP協議
http協議即超文本傳輸協議,用于互聯網上電腦主機的資源文件共享。
http協議有多個版本,HTTP的第一個標準化版本HTTP/1.1(RFC2068)于1997年初發布,是目前使用最普遍的版本。
支持七種請求方法:OPTIONS,GET,HEAD,POST,PUT,DELETE,和TRACE。
HTTP/1.1 是 HTTP 1.0 的增強:
- 虛擬主機允許從單個IP地址提供多個域。
- 持久連接和流水線連接允許Web瀏覽器通過單個持久連接發送多個請求。
- 緩存支持節省了帶寬并使響應速度更快。HTTP/1.1在接下來的15年左右將非常穩定。
- 在此期間,出現了HTTPS(安全超文本傳輸協議)。它是使用SSL/TLS進行安全加密通信的HTTP的安全版本。
7.1 http的交互方式
http的交互方式分為請求和響應。其中請求是指客戶端瀏覽器向服務端發送的數據,響應是服務端根據客戶端的請求響應的數據。
7.1.1 http長連接和短連接
從上圖可知在http1.0中,客戶端向服務端請求獲取login.html后,解析login.html文件發現其中還有其他資源文件,于是又需要重新與服務端經歷:“三次握手、數據交互、四次揮手”機制來分別獲取.css、.js、.png文件。其在解析login.html文件過程中,分別進行多次tcp三次握手、四次揮手機制來獲取login.html中包含的求它資源文件,那么這種獲取請求文件內的求它資源文件時都要重新與服務端建立tcp連接的機制就被稱為短連接。而客戶端在獲取到向服務端請求的資源后并不會立刻使用四次揮手斷開與服務端的連接,而是先解析獲取到的文件,如果在解析文件中發現還包含其它的文件則就在向服務端請求獲取子文件資源,等客戶端解析完文件后,在最后才釋放與服務器的連接的過程被稱為長連接。顯然http1.1長連接相比http1.0短連接, 客戶端與服務端數據交互的過程中,tcp連接的交互次數減少了許多、之間傳輸的數據報文減少了,提高了訪問效率。
7.1.2 http1.1緩存機制
客戶端在獲取到向服務端請求的資源后,會將請求的資源緩存到本地內存中,當客戶端下次在向服務端訪問同一個網頁時,會先檢查本地緩存中是否存在此資源,如果存在則就不會在向服務端發起請求獲取,而是使用緩存中保存好的資源進行展示,從而減少與服務端資源的請求交互,提高網頁的訪問速度。
7.2 http數據報文格式
請求時發送的數據被稱為請求報文,響應發送的數據被成為響應報文。
其http發送的數據報文格式由:行、頭、體構成。
請求報文格式:
響應報文格式:
八、常見響應狀態碼
響應狀態碼對瀏覽器來說很重要,它會告訴瀏覽器請求獲得的響應結果。
- 200:請求成功。瀏覽器會把響應體中的內容顯示在瀏覽器中。
- 302:重定向。表示服務器要求瀏覽器重新發送一個請求到響應頭Location指定的新URL地址來獲取資源。
- 304:表示瀏覽器請求的此文件使用了本地緩存,從系統本地內存獲取得到的。
- 404:瀏覽器請求的資源在服務端沒有找到,說明客戶端向服務端請求了不存在的資源。
- 405:客戶端請求的方式不允許。如:服務端規定某個資源只能使用get請求來獲取。
- 500:服務器找到了請求的資源,但服務器內部出現了問題。如:java代碼執行出現異常。
@聲明:“山月潤無聲”博主知識水平有限,以上文章如有不妥之處,歡迎廣大IT愛好者指正,小弟定當虛心受教!