Tomcat布署及優化

1.Tomcat簡介

  • Tomcat 是 Java 語言開發的,Tomcat 服務器是一個免費的開放源代碼的 Web 應用服務器,
  • Tomcat 屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試 JSP 程序的首選。
  • 一般來說,Tomcat 雖然和 Apache 或者 Nginx 這些 Web 服務器一樣,具有處理 HTML 頁面的功能,然而由于其處理靜態 HTML 的能力遠不及 Apache 或者 Nginx,所以 Tomcat 通常是作為一個 Servlet 和 JSP 容器,單獨運行在后端。

https://tomcat.apache.org/官網:https://tomcat.apache.org/

2.動態網頁功能

  • Web 容器:完成 Web 服務器的功能。
  • Servlet 容器:名字為 catalina,用于處理 Servlet 代碼。
  • JSP 容器:用于將 JSP 動態網頁翻譯成 Servlet 代碼。

因此 Tomcat 是 Web 應用服務器,也是一個 Servlet/JSP 容器。Tomcat 作為 Servlet 容器,負責處理客戶請求,把請求傳送給 Servlet,并將 Servlet 的響應傳送回給客戶。

2.1Servlet簡介

Servlet 是Java Servlet 的簡稱,可以理解為是一個服務連接器,是用 Java 編寫的服務器端程序,具有獨立于平臺和協議的特性, 簡單的理解:servlet 就是一個中間件,包含了接口和方法,將客戶端和數據庫連接,從而實現動態網頁的創建。

2.2JSP簡介

  • JSP 全稱 Java Server Pages,是一種動態網頁開發技術。它使用 JSP 標簽在HTML網頁中插入 Java 代碼。標簽通常以 <% 開頭,以 %> 結束。
  • JSP 是一種 Java servlet,主要用于實現 Java web 應用程序的用戶界面部分。
  • JSP 通過網頁表單獲取用戶輸入數據、訪問數據庫及其他數據源,然后動態地創建網頁。

JSP 全稱 Java Server Pages,是一種動態網頁開發技術。它使用 JSP 標簽在HTML網頁中插入 Java 代碼。標簽通常以 <% 開頭,以 %> 結束。
JSP 是一種 Java servlet,主要用于實現 Java web 應用程序的用戶界面部分。
JSP 通過網頁表單獲取用戶輸入數據、訪問數據庫及其他數據源,然后動態地創建網頁。

3.JDK

3.1jdk和jre關系

  • Java SE APl: Java 基礎類庫開發接口

  • JRE: Java Runtime Environment縮寫,指Java運行時環境,包含JVM +Java核心類庫

  • JDK: Java Development Kit,即Java語言的軟件開發工具包JDK協議基于JRL(JavaResearch License)協議

4.JVM簡介

主流jdk版本:Oracke JDK和Open JDK

參考鏈接:

https://en.wikipedia.org/wiki/List_of_Java_virtual_machines

https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines

各個公司和組織基于標準規范,開發了不同的JVM版本

  • SUN HotSpot

  • IBM J9VM

  • BEA JRockit

5.目錄

5.1安裝目錄

目錄名字功能
bin存放啟動和關閉 Tomcat 的腳本文件,比較常用的是 catalina.sh、startup.sh、shutdown.sh 三個文件
conf存放 Tomcat 服務器的各種配置文件,比較常用的是 server.xml、context.xml、tomcat-users.xml、web.xml 四個文件。
lib存放 Tomcat 服務器的 jar 包,一般不作任何改動,除非連接第三方服務,比如 redis,那就需要添加相對應的 jar 包
logs存放 Tomcat 日志
temp存放 Tomcat 運行時產生的文件
webapps存放項目資源的目錄
workTomcat 工作目錄,一般清除 Tomcat 緩存的時候會使用到(升級版本時注意要刪除里面的緩存)

5.2conf子目錄

文件名說明
server.xml主配置文件 全局生效
web.xml每個webapp只有“部署"后才能被訪問,它的部署方式通常由web.xml進行定義,其存放位置為WEB-INF/目錄中;此文件為所有的webapps提供默認部署相關的配置,每個web應用也可以使用專用配置文件,來覆蓋全局文件
context.xml用于定義所有web應用均需加載的Context配置,此文件為所有的webapps提供默認配置,每個web應用也可以使用自已專用的配置,它通常由專用的配置文件context.xml來定義,其存放位置為WEB-INF/目錄中,覆蓋全局的文件
tomcat-users.xml用戶認證的賬號和密碼文件
catalina.policy當使用security選項啟動omcat時,用于為tomcat設置安全策略
catalina.propertiesTomcat環境變量的配置,用于設定類加載器路徑,以及一些與JVM調優相關參數
logging.propertiesTomcat日志系統相關的配置,可以修改日志級別和日志路徑等
注意配置文件對于大小寫敏感

6.核心組件

Tomcat 由一系列的組件構成,其中核心的組件有三個:
1)Web 容器:完成 Web 服務器的功能。(https請求)
2)Servlet 容器:名字為 catalina,用于處理 Servlet 代碼。(具體的任務)
3)JSP 容器:用于將 JSP 動態網頁翻譯成 Servlet 代碼。

① Web容器 ? 負責底層的HTTP協議 ? ?

② Servlet容器 ? 由catalina腳本幫忙處理的servlet代碼,主要處理后端邏輯業務 ? catalina實際處理的是Servlet代碼,而Servlet代碼是由Java編寫的 ?

? ③ JSP容器(JAVA Scripts page) ? JSP:在正常的html標簽中嵌入一些java代碼 ? 這些JSP最終會被翻譯成Servlet代碼被執行 ? 主要提供提供前端頁面展示<% %>

? 小結:tomcat就是一個容器,在這個容器中有三大核心組件: ? WEB、Servlet 和JSP,所以Tomcat是極其輕量級別的,核心組件都是支持基本運行的組件

7.Tomcat處理請求過程

1、用戶在瀏覽器中輸入網址,請求被發送到本機端口 8080,被在那里監聽的 Connector 獲得;
2、Connector 把該請求交給它所在的 Service 的 Engine(Container)來處理,并等待 Engine 的回應;
3、請求在 Engine、Host、Context 和 Wrapper 這四個容器之間層層調用,最后在 Servlet 中執行對應的業務邏輯、數據存儲等。
4、執行完之后的請求響應在 Context、Host、Engine 容器之間層層返回,最后返回給 Connector,并通過 Connector 返回給客戶端。

8.JDK安裝

8.1Oracle JDK 的 rpm安裝

1.關防護

systemctl stop firewalld
setenforce 0

2.下載安裝包

mkdir /data
cd /data

3.yum安裝

yum install jdk-8u291-linux-x64.rpm -y

4.調整環境變量

默認中有java,所以我們要去調整環境變量

find  /  -name  javac
cd /usr/java/vim /etc/profile.d/jdk.sh
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH 

?

5.運行看結果

.  /etc/profile.d/jdk.sh
java  -version

8.2Oracle JDK的二進制文件安裝

1.關防護

systemctl stop firewalld
setenforce 0

2.下載安裝包

3.解壓并進入指定目錄

tar xf jdk-8u291-linux-x64.tar.gz  -C  /usr/local/
cd /usr/local/

4.優化路徑

ln -s jdk1.8.0_291/  jdk

5.調整環境變量

vim /etc/profile.d/jdk.shexport JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/

6.執行看結果

. /etc/profile.d/jdk.sh
java -version

9.安裝Tomcat

1.下載安裝包和解壓

cd /data
tar xf apache-tomcat-9.0.16.tar.gz

2.優化路徑

cp -r apache-tomcat-9.0.16 /usr/local
cd /usr/local/
ln -s apache-tomcat-9.0.16/  tomcat

3.啟動tomcat

cd /usr/local/tomcat/
/usr/local/tomcat/bin/startup.sh

看一下網頁

4.關閉Tomcat

/usr/local/tomcat/bin/shutdown.sh

5.新建用戶

useradd -s /sbin/nologin tomcat

6.修改屬主屬組?

chown tomcat:tomcat tomcat/ -R

7.寫文件

vim /usr/lib/systemd/system/tomcat.service[Unit]
Description=Tomcat
After=syslog.target network.target[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RestartSec=3
PrivateTmp=true
User=tomcat
Group=tomcat[Install]
WantedBy=multi-user.target

8.開啟tomcat

systemctl daemon-reload
systemctl start tomcat
systemctl status tomcat

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

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

相關文章

在實訓云平臺上配置云主機

文章目錄 零、學習目標一、實訓云升級二、實訓云登錄&#xff08;一&#xff09;登錄實訓云&#xff08;二&#xff09;切換界面語言&#xff08;三&#xff09;規劃云主機實例 三、創建網絡三、創建路由器2024-2-29更新到此四、添加接口五、創建端口六、添加安全組規則七、創建…

反相輸入放大器與生俱來的坑

我們都知道反相放大器能將輸入的信號反相放大&#xff0c;這是很基本的知識&#xff0c;學過電路的一般都知道。反相放大器的公式為Vout -Vin*Rf/Rin&#xff08;運算放大器應用匯總&#xff09;。根據已知的公式&#xff0c;能很輕松的完成設計&#xff0c;但反相放大器與生俱…

每日一類:QString類深入講解

QString類是Qt框架中的一個核心組件&#xff0c;設計用于方便、高效地處理Unicode字符串。與標準C中的字符串處理方式相比&#xff0c;QString提供了更為豐富的API&#xff0c;支持國際化&#xff0c;并且內部使用UTF-16編碼&#xff0c;能夠處理世界上幾乎所有的語言文字。 設…

【PHP進階】Rabbitmq的實際使用

RabbitMQ是一個流行的消息隊列中間件&#xff0c;它提供了可靠的消息傳遞機制。在使用RabbitMQ時&#xff0c;有幾個重要的概念需要了解&#xff1a; 消息隊列&#xff08;Message Queue&#xff09;&#xff1a;RabbitMQ中的核心概念之一。它是消息的緩沖區&#xff0c;用于存…

容器安全工具使用指南:保障容器環境安全的利器

隨著容器技術的廣泛應用,容器安全成為關注的焦點。本文將深入介紹幾個流行的容器安全工具,我們將深入了解容器安全領域的Top 10工具,包括Trivy、veinmind-tools、Clair、Docker Bench for Security、Sysdig Falco、neuVector等,詳細講解它們的功能、原理、安裝和使用方法,…

【精簡版】Ubuntu/Linux Anaconda 命令行終端安裝

網上重復內容很多&#xff0c;大都啰里啰嗦&#xff0c;特作此筆記。 【精簡版】Ubuntu/Linux Anaconda 命令行安裝 1 下載安裝包1.1 尋找適配版本安裝包1.2 下載 2 運行安裝程序3 設置安裝路徑4 添加環境變量并運行4.1 環境變量4.2 運行 5 驗證安裝成功感謝及參考博文 1 下載…

js ES6判斷字符串是否以某個字符串開頭或者結尾startsWith、endsWith

1.前言 startsWith&#xff1a;startsWith方法用于檢查字符串是否以指定的字符串開頭。 endsWith&#xff1a;endsWith方法用于檢查字符串是否以指定的字符串結尾。 2.用法示例 const str Hello, world!;console.log(str.startsWith(Hello)); // true console.log(str.starts…

音頻提取使用什么方法?視頻提取音頻

在數字技術與多媒體日益普及的今天&#xff0c;音頻提取已成為一個常見且重要的任務。無論是為了制作視頻、編輯音樂&#xff0c;還是進行語音識別和分析&#xff0c;我們都需要從原始材料中提取音頻。那么&#xff0c;音頻提取通常使用什么方法呢&#xff1f; 1. 使用專業的音…

【Git教程】(七)變基與揀取 —— 變基操作的概念、適用場景及其實現方式,揀取操作的實現 ~

Git教程 變基與揀取 1?? 工作原理&#xff1a;復制提交2?? 避免“鉆石鏈”3?? 什么情況下會遇到沖突4?? 移植分支5?? 執行變基后原提交的情況6?? 提交的原件與副本存在于同一版本庫中所帶來的問題7?? 撿取&#x1f33e; 總結 通常&#xff0c; 一段提交歷史中往…

編寫科技項目驗收測試報告需要注意什么?第三方驗收測試多少錢?

科技項目驗收測試是一個非常重要的環節&#xff0c;它對于確保科技項目的質量和可用性起著至關重要的作用。在項目完成后&#xff0c;進行科技項目驗收測試可以評估項目的功能、性能和可靠性等方面&#xff0c;并生成科技項目驗收測試報告&#xff0c;以提供給項目的相關方參考…

第十六屆“中關村青聯杯”全國研究生數學建模競賽-E題:全球變暖氣候預測分析(續)

目錄 五、問題二:模型的建立與求解 5.1 問題分析 5.2 數據獲取及處理 5.2.1 數據獲取

git commit 的規范

今天在一個項目中提交git時報了下面的錯誤&#xff1a;subject may not be empty [subject-empty] type may not be empty [type-empty]&#xff0c;上網查閱了一些資料&#xff0c;發現這種一種規范約束&#xff0c;用下面的命令我又重新提交了一次 git commit -m "feat…

SpringFramework實戰指南(七)

SpringFramework實戰指南(七) 4.5 三種配置方式總結4.5.1 XML方式配置總結4.5.2 XML+注解方式配置總結4.5.3 完全注解方式配置總結4.6 整合Spring5-Test5搭建測試環境4.5 三種配置方式總結 4.5.1 XML方式配置總結 所有內容寫到xml格式配置文件中聲明bean通過<bean標簽<…

Docker技術概論(2):Docker環境的搭建

Docker技術概論&#xff08;2&#xff09; Docker環境的搭建 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blo…

自動采集API壁紙系統源碼自適應手機端

HTML5響應式自動采集API壁紙系統源碼自適應手機端 瀑布流加載 源碼下載&#xff1a;https://www.qqmu.com/2303.html

InnoDB備份與恢復篇(1)-InnoDB的備份與還原策略

InnoDB數據庫的備份與還原策略 MySQL是一種廣泛使用的關系型數據庫管理系統&#xff0c;而InnoDB是MySQL的默認存儲引擎之一。在生產環境中&#xff0c;對于數據庫的備份和還原至關重要&#xff0c;以確保數據的安全性和可靠性。本文將介紹MySQL數據庫InnoDB引擎的備份與還原策…

七、有序的列表

描述 創建一個依次包含字符串P、y、t、h、o和n的列表my_list&#xff0c;先使用sorted函數對列表my_list進行臨時排序&#xff0c;第一行輸出排序后的完整列表&#xff0c;第二行輸出原始的列表。再使用sort函數對列表my_list進行降序排序&#xff0c;第三行輸出排序后完整的列…

yolov8漲點技巧,添加SwinTransformer注意力機制,提升目標檢測效果

目錄 摘要 SwinTransformer原理 代碼實現 YOLOv8詳細添加步驟 ymal文件內容 one_swinTrans three_swinTrans 啟動命令 完整代碼分享 摘要 Swin Transformer通過引入創新的分層注意力機制展現了其架構的獨特性&#xff0c;該機制通過將注意力區域劃分為塊并在這些塊內執…

小白的matlab簡單應用

基本概念 1、數組array 數組是一個更通用的數據結構&#xff0c;可以是一維、二維或多維的。 一維數組通常被稱為向量。 二維數組可以被視為矩陣。 多維數組可以用來表示更高維度的數據&#xff0c;例如三維數組可以表示一系列的矩陣。 用過的函數 20240229 1、讀取excel文件…

python_pyecharts_堆積圖

from pyecharts.charts import Bar from pyecharts import options as opts # 構建數據 x_data ["A", "B", "C", "D", "E"] y_data [10, 20, 30, 40, 50] z_data [5, 15, 25, 35, 45] # 創建堆積柱狀圖Bar實例 bar Bar(…