日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

簡介

      Tomcat是由Apache軟件基金會維護的jdk+servlet(嚴格地說是+jsp)實現的精簡版的JAVA ee,由于它只在jdk的基礎上附加了jsp和servlet類庫,所以它的應用范圍主要是web應用

它是一種應用程序服務器,只提供servlet容器,同時還提供apache解析靜態html,只不過之它的處理能力不如獨立的apache服務器。類似的應用程序服務還有websphere/weblogic/jetty/resin/jboss等,它們都是在jdk基礎上附加各種類庫實現不同程度的java ee(tomcat=jdk+servlet)。對于tomcat來說,它高度模塊化,通過各個組件實現各種功能。它的體系結構如下圖所示:  

tomcat保姆級別教程

  • server是頂級類,一個server算是一個tomcat實例,在此層次中可定義tomcat服務的監聽端口。

  • service是server下的子組件,用于封裝綁定connector和contAInor,并為它們提供一個名稱屬性。有了service就可以提供相關的服務,如監聽TCP連接請求、處理http請求。server是管理整個tomcat實例的層次,它和提供服務沒有關系。

  • connector是連接器,定義http協議(默認)以及該協議的監聽端口。用于接收客戶端請求并將containor處理的數據返回給客戶端。

  • containor稱為容器,和connector連接器進行綁定。該容器內有4個子容器,包括:engine容器、host容器、context容器、WrApper容器。容器用于分析、處理請求,并構建響應給connector以發送給客戶端。它和connector是tomcat的心臟組件。

  • engine容器定義servlet引擎,用于定義引擎的名稱、默認的虛擬主機。引擎用于分析http請求并將請求轉發給對應的虛擬主機。host容器用于定義虛擬主機。

  • context容器用于定義webapp,一個context定義一個webapp。它是真正管理servlet容器的層次。

  • wrapper容器對應的是真正的servlet容器,一個wrapper代表一個servlet,它負責管理一個Servlet,包括的Servlet的裝載、初始化、執行以及資源回收。Wrapper是最底層的容器,一個context只能包含一個wrapper。在配置文件中,無法配置該容器的屬性。

    核心組件

    • web容器: 完成Web服務器的功能。

    • Servlet 容器: 名字為catalina,用于處理Servlet 代碼。

    • JSP容器: 用于將JSP動態網頁翻譯成Servlet 代碼。

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

tomcat保姆級別教程

servlet

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

JSP

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

功能組件結構

  • 負責接收和反饋外部請求的連接器Connector

  • 負責處理請求的容器Container。

連接器和容器相輔相成,一起構成了基本的web服務Service。每個Tomcat服務器可以管理多個Service。

 

Connector

負責對外接收和響應請求。它是Tomcat與外界的交通樞細,監聽端口接收外界請求,并將請求處理后傳遞給容器做業務處理,最后將容器處理后的結果響應給外界。

Container

負責對內處理業務邏輯。其內部由Engine、 Host、Context和wrapper 四個容器組成,用于管理和調用Servlet 相關邏輯。

Service

對外提供的Web服務。主要包含Connector 和Container 兩個核心組件,以及其他功能組件。

Tomcat 可以管理多個Service, 且各Service之間相互獨立。

(一個service就是一個外部應用,各個service之間是相互獨立的,每個service可以監聽不同的端口號)

Container結構分析:

每個Service 會包含一一個Container 容器。在Container 內部包含了4個子容器: 4個子容器的作用分別是:

(1) Engine: 引擎,用來管理多個虛擬主機,一個Service最多只能有一一個Engine;

(2) Host: 代表一個虛擬主機,也可以叫站點,通過配置Host就可以添加站點;

(3) Context: 代表一個Web應用,包含多個Servlet 封裝器;

(4) wrapper: 封裝器,容器的最底層。每一Wrapper 封裝著一個servlet, 負責對象實例的創建、執行和銷毀功能。

Engine、Host、Context 和Wrapper,這四個容器之間屬于父子關系。

容器由一個引擎可以管理多個虛擬主機。每個虛擬主機可以管理多個web應用。每個Web應用會有多個Servlet封裝器。

tomcat保姆級別教程

請求過程

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

tomcat保姆級別教程

端口和主要目錄說明

tomcat端口

客戶端和tomcat進行連接時使用:

  • 8080端口:http的默認端口

  • 8443端口:https的默認端口

  • 8005端口: shutdown用于關閉tomcat進程。tomcat監聽的關閉端口,就是說這個端口負責監聽關閉tomcat的請求。

  • 8009端口: 用于轉發,負責和其他http服務器建立連接。但一般不用,因為tomcat一般放在后端服務器,其他服務器轉發給tomcat。

tomcat主要目錄

目錄 說明
bin 存放啟動和關閉Tomcat 的腳本文件,如catalina.sh、startup.sh、shutdown.sh
conf 存放Tomcat 服務器的各種配置文件,如主配置文件server.xml 和應用默認的部署描述文件web.xml
lib 存放Tomcat運行需要的庫文件的jar 包,一般不作任何改動
logs 存放Tomcat 執行時的日志
temp 存放Tomcat 運行時產生的文件
webapps 存放Tomcat默認的web應用項目資源的目錄
work Tomcat 的工作目錄,存放web應用代碼生成和編譯文件

目錄 說明

 

 

 

部署步驟

在部署 Tomcat 之前必須安裝好 jdk,因為Tomcat是采用Java語言編寫的,而jdk是java的開發工具,沒有jdk,Tomcat是跑不起來的

下載并安裝 JDK

關閉防火墻

systemctl stop firewalld
setenforce 0

將安裝 Tomcat 所需軟件包傳到/opt目錄下

apache-tomcat-9.0.16.tar.gz
jdk-8u201-linux-x64.rpm

切換至/opt下,安裝JDK

cd /opt
rpm -ivh jdk-8u201-linux-x64.rpm

設置JDK環境變量#/etc/profiled.d目錄下存放著profile文件中調用的變量,所以我們在該目錄下新建一個java的變量腳本,讓profile調用即可。

vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64    #定義環境變量
export JRE_HOME=$JAVA_HOME/jre                   #定義環境變量
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib  #定義環境變量
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH  
source /etc/profile.d/java.sh     #刷新文件,使立即生效
java -version                     #再次查看JDK版本

部署tomcat服務

cd /opt
tar zxf apache-tomcat-9.0.16.tar.gz    #解壓tomcat安裝包
mv apache-tomcat-9.0.16 /usr/local/tomcat #將解壓后的源碼包目錄拷貝至/usr/local/下并重命名為tomcat

啟動tomcat

去bin目錄下

后臺啟動

/usr/local/tomcat/bin/startup.sh
或
/usr/local/tomcat/bin/catalina.sh start

前臺啟動

/usr/local/tomcat/bin/catalina.sh run
netstat -natp | grep 8080

啟動Tomcat的方法

startup.sh          #后臺啟動tomcat
catalina.sh start   #后臺啟動tomcat
catalina.sh run     #前臺啟動 tomcat

#關閉tomcat的方法

shutdown.sh     關閉tomcat

查看tomcat是否啟動

netstat ss ps jps

瀏覽器訪問測試

瀏覽器訪問Tomcat的默認主頁 http://192.168.80.7:8080

tomcat保姆級別教程

 

優化t

第一次啟動tomcat可能會發現Tomcat啟動很慢,如果/dev/random中的隨機數不足,默認情況下可能會需要幾十秒,可以修改jdk參數進行改。

/dev/urandom,它可以作為生成較低強度密碼的偽隨機數生成器,不建議用于生成高強度長期密碼。

vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
--117行--修改這一行
securerandom.source= file:/dev/urandom

 

總結

JDK的安裝,在運行tomcat前必須將JDK安裝好。

/usr/local/tomcat/bin目錄中的 startup.sh 和 shutdown.sh 腳本可以直接運行,但 catalina.sh 文件需要加上命令參數,start為后臺運行,run為前臺運行。

/dev/random: 阻塞型,讀取它就會產生隨機數據,但該數據取決于熵池噪聲,當熵池空了,對/dev/random 的讀操作也將會被阻塞。

/dev/urandom: 非阻塞的隨機數產生器,它會重復使用熵池中的數據以產生偽隨機數據。 這表示對/dev/urandom的讀取操作不會產生阻塞,但其輸出的熵可能小于/dev/random的。 它可以作為生成較低強度密碼的偽隨機數生成器,不建議用于生成高強度長期密碼。

分享到:
標簽:tomcat
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定