Tomcat布署及優化-----JDK和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/719666.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719666.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719666.shtml

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

相關文章

C++ //練習 10.2 重做上一題,但讀取string序列存入list中。

C Primer&#xff08;第5版&#xff09; 練習 10.2 練習 10.2 重做上一題&#xff0c;但讀取string序列存入list中。 環境&#xff1a;Linux Ubuntu&#xff08;云服務器&#xff09; 工具&#xff1a;vim 代碼塊 /******************************************************…

Vue前端加密后的數據發送到服務器端

首先&#xff0c;定義了一個名為 PUBLIC_KEY 的公鑰和一個名為 PRIVATE_KEY 的私鑰。然后&#xff0c;通過 JSEncrypt 創建了兩個實例 encrypt 和 decrypt&#xff0c;分別用于加密和解密操作。 對于加密操作&#xff0c;調用了 encrypt.setPublicKey() 方法設置公鑰&#xff…

升級Centos7的openssh到openssh-9.6p1版本 shell腳本 漏掃整改

升級Centos7的openssh到openssh-9.6p1版本 shell腳本 漏掃整改 #!/bin/bash# 聲明: 該腳本適用于升級Centos7的openssh到openssh-9.6p1版本# 定義源碼包版本號 OPENSSH_VERSIONopenssh-9.6p1 OPENSSL_VERSIONopenssl-3.2.1 ZILB_VERSIONzlib-1.3.1# 安裝編譯環境 yum -y insta…

【前端面試題5】利用 border 屬性畫一個三角形

舉例1&#xff1a;利用 border 屬性畫一個三角形&#xff08;小技巧&#xff09; 完整代碼如下&#xff1a; div{width: 0;height: 0;border: 50px solid transparent;border-top-color: red;border-bottom: none; }步驟如下&#xff1a; &#xff08;1&#xff09;當我們設…

【QT+QGIS跨平臺編譯】之五十六:【QGIS_CORE跨平臺編譯】—【qgsmeshcalclexer.cpp生成】

文章目錄 一、Flex二、生成來源三、構建過程一、Flex Flex (fast lexical analyser generator) 是 Lex 的另一個替代品。它經常和自由軟件 Bison 語法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用 C 語言寫成。 “flex 是一個生成掃描器的工具,能夠識別文本中…

Android 拍照本地圖片選擇框架適配

前言 通常技術方案的選擇、會帶來后續一些不可控的東西&#xff0c;這也是沒法避免的&#xff0c;程序開發者中同時面對、測試、領導、產品各種要求。同時在網絡上查找的資料也只是很舊的&#xff0c;不一定適合新設備&#xff0c;需要推倒重新弄 1、解決方案通過意圖選擇器做…

day6 數組 嵌套循環

1&#xff1a;打印楊輝三角 91 int arr[6][6];92 int i,j0;93 for(i0;i<6;i)94 {95 for(j0;j<i;j) 96 {97 if(j0||ij)98 {99 arr[i][j]1; …

2024-3-4 如何寫出具有python風格的代碼

寫出具有python風格的代碼 什么是python風格如何寫出具有python風格的自定義數據類型 什么是python風格 python風格是指自定義的數據類型表現得得與內置類型一樣。比如&#xff0c;我創建了一個類&#xff0c;它的實例不用調用類的方法就可以實現迭代、切片&#xff0c;可以直…

推特API(Twitter API)對接說明,用戶code To Token換取

前期準備 提前準備、說明&#xff1a;目前對接推特api開發門戶分為3個版本&#xff0c;分別是免費的&#xff0c;100美金一個月的基礎版以及5000美金一個月的企業版&#xff0c;免費的目前就兩個接口可以調用&#xff0c;所以想要對接和使用推特最基本的也需要付100美元一個月…

百度百科人物創建要求是什么?

百度百科作為我國最大的中文百科全書&#xff0c;其收錄的人物詞條要求嚴謹、客觀、有權威性。那么&#xff0c;如何撰寫一篇高質量的人物詞條呢&#xff1f;本文伯樂網絡傳媒將從內容要求、注意事項以及創建流程與步驟三個方面進行詳細介紹。 一、內容要求 1. 基本信息&#…

什么是 web 應用的 type-ahead search help

在 Web 前端設計領域&#xff0c;type-ahead search help&#xff08;又稱為自動完成或即時搜索&#xff09;是一種用戶界面功能&#xff0c;它能夠在用戶輸入搜索詞的同時&#xff0c;實時提供搜索建議或結果。這種功能極大地提升了用戶體驗&#xff0c;因為它可以幫助用戶快速…

LeetCode每日一題【c++版】- 用隊列實現棧與用棧實現隊列

用隊列實現棧 題目描述 請你僅使用兩個隊列實現一個后入先出&#xff08;LIFO&#xff09;的棧&#xff0c;并支持普通棧的全部四種操作&#xff08;push、top、pop 和 empty&#xff09;。 實現 MyStack 類&#xff1a; void push(int x) 將元素 x 壓入棧頂。int pop() 移除…

Studio One 6永久激活版 附完整圖文安裝破解教程

Studio One 6是一款功能強大的音樂制作和錄音軟件&#xff0c;專為Mac操作系統設計。它提供了多軌錄音和混音、MIDI音樂制作、實時效果和處理、VST插件支持以及高級編輯和編排等豐富的功能。無論是專業音樂制作人還是音樂愛好者&#xff0c;都可以使用Studio One 6來創建和編輯…

程序員英語詞匯寶典(建議收藏)

很多小伙伴說&#xff0c;英文不好能不能學習編程&#xff0c;我個人的看法是英文不好&#xff0c;并不影響你學習編程&#xff0c;但有可能會影響到你的編程上限&#xff0c;因為一些最新的文檔都是英文的。如果你想成為一個編程大牛&#xff0c;那么英文還是很有必要的。今天…

cocos-lua定時器用法

本文介紹cocos-lua(非Quick-cocos)的定時器用法 定時器按是否會隨節點銷毀&#xff0c;可分為節點調度器和全局調度器 一.節點調度器 frameworks\cocos2d-x\cocos\scripting\lua-bindings\script\cocos2d\deprecated.lua中實現了了schedule和 performWithDelay 1.1.schedul…

基礎真空技術外國文獻Fundamentals of Vacuum Technology

基礎真空技術外國文獻Fundamentals of Vacuum Technology

道路積水監測站——確保道路暢通和行車安全

TH-JS1道路積水監測站是一種專門用于監測城市道路積水情況的設備&#xff0c;旨在保障城市道路安全和防止水患對交通造成的不利影響。這些監測站通過實時檢測和記錄道路積水數據&#xff0c;為城市管理部門提供重要信息&#xff0c;以便及時采取應對措施&#xff0c;確保道路暢…

vue diff算法介紹

Vue.js 的 diff 算法是一種用于虛擬 DOM 比較的高效算法&#xff0c;其核心目的是在數據變更時&#xff0c;能夠最小化 DOM 操作&#xff0c;提高更新性能。以下是關于 Vue diff 算法的介紹&#xff1a; 1. 算法目標&#xff1a; Vue 的 diff 算法旨在比較新舊虛擬節點&#…

990-29產品經理:IT risk management process IT風險管理流程

IT risk management process IT風險管理流程 In business, IT risk management entails a process of identifying, monitoring and managing potential information security or technology risks with the goal of mitigating or minimising their negative impact. Exampl…

MATLAB環境下基于離散小波變換的心電信號偽影去除及PQRST波檢測

可穿戴個人健康監護系統被廣泛認為是下一代健康監護技術的核心解決方案。監護設備不斷地感知、獲取、分析和存儲大量人體在日常活動中的生理數據&#xff0c;為人體的健康狀況提供必要的、準確的、集成的和長期的評估和反饋。在心電監測領域&#xff0c;可穿戴傳感器具有以下應…