1. 程式人生 > >tomcat是什麼?Tomcat 下載、安裝、配置圖文教程

tomcat是什麼?Tomcat 下載、安裝、配置圖文教程

你用瀏覽器上網的所有操作,所有請求傳送給伺服器(tomcat),伺服器通過請求,找相應的邏輯處理程式(jsp或servelet或java類,就是有關java語言的所有可以處理邏輯的程式碼,其中包括訪問後臺資料)然後通過你的需求,伺服器把你需要的文字,圖片,顯示給你的頁面

Tomcat是web容器。它的作用稍後給你解釋。
你在做web專案時,多數需要http協議,也就是基於請求和響應,比如你在百度輸入一行內容搜尋,
那麼百度伺服器如何處理這個請求呢,他需要建立servlet來處理,servlet其實就是java程式,只是在伺服器端的java程式,
servlet通過配置檔案攔截你的請求,並進行相應處理,然後展示給你相應介面,那麼servlet如何建立? 這時候tomcat用到了,
它就是幫助你建立servlet的東西,所以也稱web容器,沒有它,沒法執行web專案。相對應的web容器有很多,
比如JBOSS,WEBLOGIC等。
Tomcat是一個應用伺服器。他可以執行你按照J2EE中的Servlet規範編寫好的Java程式。
簡單的說它是一個Web網站的執行容器,把你寫好的網站放進去就可以執行。
 
Tomcat是應用(java)伺服器,它只是一個servlet容器,是Apache的擴充套件,處理動態網頁部分。
Eclipse+tomcat=網路應用,如JSP類應用






為了不讓網路程式設計在自己看來是一個黑盒子
在學習tomcat和servlet,jsp之前,需要了解這些

一、tomcat是一個封裝和實現了http傳輸協議的容器,那麼http是什麼?
http全稱是超文字傳輸協議
即是指從全球資訊網伺服器端(http server端)傳送超文字到本地瀏覽器的協議
它是基於安全連線tcp/ip協議產生的
所謂超文字傳輸,傳輸的即是html/css/js視覺化前端程式碼

http的特點



1、socket是在底層封裝了tcp/ip協議的java類
2、http也是基於tcp/ip協議的傳輸協議
3、如果嘗試在socket中開啟一個埠並等待,獲取socket後輸出這個socket物件通過字元流獲取的請求,然後再在瀏覽器中輸入127.0.0.1:portNum 會發現在控制檯中輸出了當前瀏覽器的配置資訊,客戶端ip地址等
4、簡單的說,socket和http都是封裝了ip/tcp協議,在使用時不需要去在意那些從物理層到網路層等的實現(TTL包頭等),只需要進行業務資料的處理即可
5、那麼http協議的三個特點,可以結合socket類的執行機制進行理解

A.無連線
結合socket進行理解,socket分為serversocket和socket,前者是伺服器端的tcp介面,socket進行資料收發是監聽機制,即伺服器端的serversocket建立好了以後,會開放一個埠進行監聽
它的傳輸是通過流進行傳輸的,客戶端socket封裝了一個輸入流一個輸出流,伺服器端serversocket封裝了一個輸入流和一個輸出流,兩個流建立連線後,AtoB,BtoA進行訊息傳送,但是如果!如果在一次請求和迴應之後關閉當前的流,會導致獲取了一個socket請求就將當前監聽埠關閉了
可以理解為http沒有對資料進行迴圈監聽和定時重新整理驗證的機制

http大概是同理的,它每一次在載入頁面,或者說獲取超文字資料時,沒有一個登陸狀態或者說沒有一個定時重新整理的機制向服務端請求重新整理當前的資料,超文字資料獲取了就獲取,如果需要對頁面的內容進行變更,需要再次根據url/ajax等再次進行請求

 


B.http是媒體獨立的
只要客戶端知道如何進行資料處理,理論上可以接受任何形式的資料,這個很好理解,在socket中,傳輸的媒介 是通過流實現的,流分很多種,但究其本質都是位元組流的包裝,傳輸資料時本身肯定還是以位元組為單位的

C.http是無狀態的
這一點其實有一點重複,是根據第一點引申出來的,你每一次通訊都要重新建立連線,傳輸過來的超文字對於客戶來說是可修改的透明的,每一次獲取資料都要重新發送請求,那自然是無狀態,

從這裡大概可以猜測到比如網路遊戲這一類需要保持連線的架構了,tcp/ip可以做成長連線,也可以做成短連線,但是長連線應該也是重複重新整理的短連線吧,只要遵循tcp的長連線協議就可以保持登入狀態,比如諸如java等語言對於長連線就封裝了一個類來簡單實現

還有一個有趣的事是作為客戶端向伺服器端傳送時,每次傳送的埠都不同,並且都是50000+

http報文格式

這是http請求報文格式

 



這是伺服器響應訊息格式

 


下面是我通過瀏覽器向socket傳送url連結請求獲取的Http請求頭

 


二. 什麼是tomcat
一般的B/S架構web工程結構為下圖:

 


CGI(Common Gateway Interface) 是WWW技術中最重要的技術之一,有著不可替代的重要地位。CGI是外部應用程式(CGI程式)與WEB伺服器之間的介面標準,是在CGI程式和Web伺服器之間傳遞資訊的過程。(摘自百度百科)

可不可以說Tomcat就是實現了CGI介面的web應用開發的容器?

再直白一點,既然socket可以返回響應,那就也可以向客戶端返回一個伺服器相應的資料包,並且將業務需要的超文字內容放到其中,然後傳輸完成一次關一次流實現無連線雙工通訊。那麼我也能做到B/S互動(事實上已經試驗成功了)

但是這樣做很麻煩,更何況在http1.1協議下,還需要考慮到安全問題對不同的請求進行不同的回覆和內容細分,比如Get請求傳送過來,總不可能瞎回一個POST請求的資料包吧,還有一個web專案的基礎邏輯也需要遵守
等等

這些內容就放到tomcat裡面自行給我們封裝好了,並且還將請求和迴應按照業務劃分成了GET/POST等方法,但是其本質(無連線的雙工TCP/IP通訊)是不變的!

這是tomcat的檔案結構


tomcat除了實現了http協議以外,
還針對javaweb專案做了很多業務優化,簡單的說就是可以更好的管理java專案
比如
通過war包對工程jar包進行二次封裝,區分公用lib檔案和私有lib檔案,多專案開發管理,JAVAWEB日誌處理
等等

三、什麼是Servlet
Servlet是一個獨立的開發標準,不是強耦合在Tomcat中的jar包

JAVAEE是一個針對JAVA開發的B/S架構專案的框架,簡單的說是一個jar包
servlet是其中的一個介面,業務定義為用來處理一部分頁面業務同時也是作為service層和前端html頁面互動的橋樑

其中包含的方法包括servlet生命週期,service服務,獲取servlet配置資訊
繼承關係

GenericServlet抽象類繼承了Servlet介面
實現了除Service()以外的方法
HTTPServlet繼承了GenericServlet抽象類
將Service()方法細分為了doGet(),doPost(),doHead(),doPull()方法
不過除了doGet()和doPost(),其它幾個和實現B/S互動業務不太相關
---------------------

Tomcat 下載、安裝、配置圖文教程

1.下載
官網:https://tomcat.apache.org/

在瀏覽器位址列輸入地址,進入下圖頁面。

 


點選下圖紅色標記處(筆者選擇的Tomcat 9下載,讀者可根據需要自行選擇)

 

 

下圖藍色標記為綠色版(需要配置環境變數),紅色標記為安裝版。筆者選擇綠色版下載(讀者可根據需要自行選擇)。

 

 

下載後,解壓到C盤(可任意選擇)。

 

 

 

 

2.配置環境變數
右鍵我的電腦,點選屬性,然後按下圖示記1,2,3依次進行。

 

 

接著按下圖示記處順序1,2,3執行。
2:變數名(CATALINA_HOME)
3:解壓路徑名(C:\apache-tomcat-9.0.0.M22)

 

 

啟動Tomcat:
進入Tomcat目錄,雙擊startup.bat。

 

 

 


上圖介面代表啟動成功,成功後不要關閉,否則就關掉了Tomcat。

測試Tomcat是否啟動成功:
在位址列輸入http://locathost:8080/
若出現下圖介面,則啟動成功。

 

 

Tomcat9.0 安裝與配置講解完成……謝謝觀看。
---------------------