Apache Tomcat簡介

安全劍客發表於2020-08-02
Apache Tomcat是一個長期存在的開源Java Servlet容器,它實現了幾個核心Java企業規範,即Java Servlet,JavaServer Pages(JSP)和WebSockets API。

Tomcat是一個Apache Software Foundation專案,它於1998年首次釋出,距Java本身僅四年。Tomcat開始作為第一個Java Servlet API和JSP規範的參考實現。儘管Tomcat不再是這兩種技術的參考實現,但Tomcat仍然是使用最廣泛的Java伺服器,它擁有經過良好測試和驗證的核心引擎,並具有良好的可擴充套件性。
Apache Tomcat簡介Apache Tomcat簡介

在這個簡短的介紹中,您將瞭解為什麼許多軟體商店選擇Tomcat來執行Java Web應用程式。您將獲得Tomcat及其用法的概述,以及撰寫本文時最新版本的安裝說明。

Tomcat是哪種伺服器?

Java生態系統支援多種型別的應用程式伺服器,因此讓我們消除它們的歧義,看看Tomcat適用於哪些位置:
甲servlet容器是Java Servlet規範的一個實現,主要用於託管的Java小服務程式。
一個Web伺服器是一種旨在從本地系統提供檔案服務,如Apache伺服器。
一個Java企業應用伺服器是一個完全成熟的實現的Java EE(今雅加達EE)規範。

從本質上講,Tomcat是Servlet和JSP容器。一的Java servlet封裝程式碼和業務邏輯,並定義瞭如何請求和響應應該在Java伺服器處理。JSP是一種伺服器端檢視渲染技術。作為開發人員,您編寫servlet或JSP頁面,然後讓Tomcat處理路由。

Tomcat還包含Coyote引擎,它是一個Web伺服器。感謝Coyote,可以將Tomcat擴充套件為包括各種Java企業規範和功能,包括Java Persistence API(JPA)。
Tomcat還具有稱為TomEE的擴充套件版本,其中包含更多企業功能。我將在本文稍後簡要介紹TomEE。

讓我們從使用Tomcat託管servlet和JSP開始。

下載並安裝Tomcat

作為軟體世界的古老者,有許多Tomcat版本可用。有關版本差異的資訊可在Tomcat主頁上找到。通常,您可以選擇最新的穩定版本。

為了我們的目的,下載最新版本的Tomcat,當前版本為Tomcat 9。您可以選擇將Tomcat作為歸檔檔案(.zip或tar.gz)或作為已安裝的服務下載。最好的選擇取決於您-除非您當然不在Windows上執行,否則將使用存檔。我們將在本文中使用存檔。

Tomcat的Windows安裝

如果您正在執行Windows並想使用安裝程式,只需下載.exe檔案並執行它。Tomcat會將其自身安裝為具有合理預設值的服務。然後它將通知您安裝位置,並且您可以像在其中解壓縮存檔一樣繼續進行。

步驟1. 行安裝

去 行和型別gunzip apache-tomcat-9.0.19.tar.gz接著tar -xf apache-tomcat-9.0.19.tar。這將建立以下目錄:
/ bin包含用於執行Tomcat的 。
/ webapps是您將部署應用程式的位置。
/ logs是Tomcat輸出日誌的位置。請注意,/logs/catalina.out預設情況下會進入Tomcat的日誌。您可以使用此檔案和特定於應用程式的日誌檔案一起除錯問題。
/ lib是Tomcat查詢JAR的地方。在這裡,您將儲存Tomcat不附帶的其他軟體包,例如JPA。
/ conf是Tomcat的配置XML,您可以在其中執行諸如為Tomcat新增使用者類的操作。

步驟2.啟動Tomcat

如果將Tomcat作為服務安裝,則它已經在執行。否則,請繼續並透過./catalina.sh start在命令列中輸入啟動它。(鍵入./catalina.sh不帶引數的內容以檢視所有可用命令)。現在,您應該能夠在瀏覽器中瀏覽到Tomcat的歡迎螢幕。

在Tomcat中部署應用程式

Tomcat的webapps目錄是您部署應用程式的位置。您可以將.war檔案放在那裡,然後Tomcat將執行它。WAR檔案是Web應用程式資源的標準包裝:一個JAR檔案,其中包含一些其他檔案,這些檔案告訴容器(在本例中為Tomcat)如何執行它。

除了標準包裝之外,還有三種其他方法可以在Tomcat中部署內容。

爆炸式部署

“爆炸式” Web應用程式是未壓縮為WAR檔案的應用程式,這意味著它仍包含目錄和檔案中列出的所有元素。您解壓縮的Tomcat歸檔檔案附帶了以這種方式部署的幾個示例,您可以在/webapps/examples目錄中找到這些示例。展開式部署的優點是您可以檢視那裡的檔案而不必擔心壓縮。

如果您導航到,則會找到連結列表。該頁面由Tomcat透過/webapps/examples/index.html檔案呈現。Tomcat正在從檔案系統提供HTML檔案,該檔案系統是充當Web伺服器的Tomcat Coyote引擎的例項。

您可以隨意瀏覽所提供的示例,它們為您提供了有關Tomcat服務servlet,JSP和WebSockets的功能的良好概述。

Tomcat預設情況下還包含一個管理應用程式,該應用程式位於該/manager路徑下。除其他外,此應用程式允許您從Web控制檯啟動,停止和重新部署應用程式。

提供靜態內容

可以從檔案系統提供檔案,也可以從Tomcat轉發到另一個HTTP伺服器(如Apache)。另一個常見的設定是將檔案伺服器(如Apache或Nginx)放在Tomcat的前面,然後將您的API請求轉發到Tomcat。在這些情況下,mod_JK庫用於配置Tomcat和Apache(或什至是另一個Web伺服器,如IIS)進行通訊。

為了提高效能,主要是在交付靜態內容方面,Tomcat還提供了Windows和 的本機包裝。這被稱為Tomcat APR,更多資訊可在此處獲得。這些對於典型的用例而言不是必需的,但很容易瞭解。

嵌入式Tomcat

長期以來,Jetty是唯一能夠作為嵌入式伺服器執行的伺服器。那已經改變了,現在Tomcat也可以執行嵌入式了。使用嵌入式伺服器的想法是,到目前為止,您沒有擁有包含應用程式檔案的伺服器,而是擁有一個具有主類的應用程式(即獨立的Java應用程式),該應用程式從以下位置呼叫伺服器功能:在其程式碼庫中。總體而言,這提供了更簡單和可移植的開發模型,並迅速成為標準。例如,Spring Boot使用以dev模式執行的嵌入式Tomcat例項。

執行嵌入式伺服器可以簡化操作,因為您現在只處理單個元件(應用程式),而不是同時處理應用程式和伺服器部署。另一方面,Tomcat作為獨立主機執行的設定仍然很常見。

TomEE

透過將這些庫新增到Tomcat本身或應用程式依賴項,可以將更多標準Java EE(或Jakarta EE)功能與Tomcat一起使用。另一個選擇是TomEE伺服器。TomEE是具有額外Java企業支援的相同Tomcat引擎,包括流行的JPA和CDI(上下文和依賴注入) API。TomEE的規範基於Java EE Web配置檔案,因此它提供給您的不僅僅是Tomcat,而且不是像WildFly或Glassfish這樣的成熟的Java EE應用伺服器。

高可用性和叢集

Tomcat支援高可用性和叢集。本質上,高可用性是指故障轉移到伺服器的另一個例項並重新建立會話的能力,就好像什麼都沒出錯。群集是建立同一伺服器的多個版本以處理大量流量的能力。

結論

Tomcat保持積極發展,與變化保持同步,併為部署Web應用程式提供了堅實可靠的平臺。它的持續流行以及作為許多PaaS系統的預設Java平臺的選擇都證明了其持續的成功。

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2708656/,如需轉載,請註明出處,否則將追究法律責任。

相關文章