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 | 存放項目資源的目錄 |
work | Tomcat 工作目錄,一般清除 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.properties | Tomcat環境變量的配置,用于設定類加載器路徑,以及一些與JVM調優相關參數 |
logging.properties | Tomcat日志系統相關的配置,可以修改日志級別和日志路徑等 |
注意配置文件對于大小寫敏感 |
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