亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

簡(jiǎn)介

      Tomcat是由Apache軟件基金會(huì)維護(hù)的jdk+servlet(嚴(yán)格地說(shuō)是+jsp)實(shí)現(xiàn)的精簡(jiǎn)版的JAVA ee,由于它只在jdk的基礎(chǔ)上附加了jsp和servlet類庫(kù),所以它的應(yīng)用范圍主要是web應(yīng)用

它是一種應(yīng)用程序服務(wù)器,只提供servlet容器,同時(shí)還提供apache解析靜態(tài)html,只不過(guò)之它的處理能力不如獨(dú)立的apache服務(wù)器。類似的應(yīng)用程序服務(wù)還有websphere/weblogic/jetty/resin/jboss等,它們都是在jdk基礎(chǔ)上附加各種類庫(kù)實(shí)現(xiàn)不同程度的java ee(tomcat=jdk+servlet)。對(duì)于tomcat來(lái)說(shuō),它高度模塊化,通過(guò)各個(gè)組件實(shí)現(xiàn)各種功能。它的體系結(jié)構(gòu)如下圖所示:  

tomcat保姆級(jí)別教程

  • server是頂級(jí)類,一個(gè)server算是一個(gè)tomcat實(shí)例,在此層次中可定義tomcat服務(wù)的監(jiān)聽(tīng)端口。

  • service是server下的子組件,用于封裝綁定connector和contAInor,并為它們提供一個(gè)名稱屬性。有了service就可以提供相關(guān)的服務(wù),如監(jiān)聽(tīng)TCP連接請(qǐng)求、處理http請(qǐng)求。server是管理整個(gè)tomcat實(shí)例的層次,它和提供服務(wù)沒(méi)有關(guān)系。

  • connector是連接器,定義http協(xié)議(默認(rèn))以及該協(xié)議的監(jiān)聽(tīng)端口。用于接收客戶端請(qǐng)求并將containor處理的數(shù)據(jù)返回給客戶端。

  • containor稱為容器,和connector連接器進(jìn)行綁定。該容器內(nèi)有4個(gè)子容器,包括:engine容器、host容器、context容器、WrApper容器。容器用于分析、處理請(qǐng)求,并構(gòu)建響應(yīng)給connector以發(fā)送給客戶端。它和connector是tomcat的心臟組件。

  • engine容器定義servlet引擎,用于定義引擎的名稱、默認(rèn)的虛擬主機(jī)。引擎用于分析http請(qǐng)求并將請(qǐng)求轉(zhuǎn)發(fā)給對(duì)應(yīng)的虛擬主機(jī)。host容器用于定義虛擬主機(jī)。

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

  • wrapper容器對(duì)應(yīng)的是真正的servlet容器,一個(gè)wrapper代表一個(gè)servlet,它負(fù)責(zé)管理一個(gè)Servlet,包括的Servlet的裝載、初始化、執(zhí)行以及資源回收。Wrapper是最底層的容器,一個(gè)context只能包含一個(gè)wrapper。在配置文件中,無(wú)法配置該容器的屬性。

    核心組件

    • web容器: 完成Web服務(wù)器的功能。

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

    • JSP容器: 用于將JSP動(dòng)態(tài)網(wǎng)頁(yè)翻譯成Servlet 代碼。

因此Tomcat 是Web 應(yīng)用服務(wù)器,也是一個(gè)Servlet/JSP 容器。Tomcat 作為Servlet容器,負(fù)責(zé)處理客戶請(qǐng)求,把請(qǐng)求傳送給Servlet,并將Servlet的響應(yīng)傳送回給客戶。

tomcat保姆級(jí)別教程

servlet

Servlet是 Java Servlet的簡(jiǎn)稱,可以理解為是,是用Java編寫的服務(wù)器端程序,一個(gè)服務(wù)連接器,具有獨(dú)立于平臺(tái)和協(xié)議的特性。簡(jiǎn)單的理解:servlet 就是一 個(gè)中間件,包含了接口和方法,將客戶端和數(shù)據(jù)庫(kù)連接,從而實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的創(chuàng)建。

JSP

JSP全稱Java Server Pages, 是一種動(dòng)態(tài)網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。使用JSP 標(biāo)簽在HTML網(wǎng)頁(yè)中插入Java 代碼。標(biāo)簽通常以<%開(kāi)頭,以%>結(jié)束。JSP是一種Java servlet,主要用于實(shí)現(xiàn)Java web應(yīng)用程序的用戶界面部分。JSP通過(guò)網(wǎng)頁(yè)表單獲取用戶輸入數(shù)據(jù)、訪問(wèn)數(shù)據(jù)庫(kù)及其他數(shù)據(jù)源,然后動(dòng)態(tài)地創(chuàng)建網(wǎng)頁(yè)。

功能組件結(jié)構(gòu)

  • 負(fù)責(zé)接收和反饋外部請(qǐng)求的連接器Connector

  • 負(fù)責(zé)處理請(qǐng)求的容器Container。

連接器和容器相輔相成,一起構(gòu)成了基本的web服務(wù)Service。每個(gè)Tomcat服務(wù)器可以管理多個(gè)Service。

 

Connector

負(fù)責(zé)對(duì)外接收和響應(yīng)請(qǐng)求。它是Tomcat與外界的交通樞細(xì),監(jiān)聽(tīng)端口接收外界請(qǐng)求,并將請(qǐng)求處理后傳遞給容器做業(yè)務(wù)處理,最后將容器處理后的結(jié)果響應(yīng)給外界。

Container

負(fù)責(zé)對(duì)內(nèi)處理業(yè)務(wù)邏輯。其內(nèi)部由Engine、 Host、Context和wrapper 四個(gè)容器組成,用于管理和調(diào)用Servlet 相關(guān)邏輯。

Service

對(duì)外提供的Web服務(wù)。主要包含Connector 和Container 兩個(gè)核心組件,以及其他功能組件。

Tomcat 可以管理多個(gè)Service, 且各Service之間相互獨(dú)立。

(一個(gè)service就是一個(gè)外部應(yīng)用,各個(gè)service之間是相互獨(dú)立的,每個(gè)service可以監(jiān)聽(tīng)不同的端口號(hào))

Container結(jié)構(gòu)分析:

每個(gè)Service 會(huì)包含一一個(gè)Container 容器。在Container 內(nèi)部包含了4個(gè)子容器: 4個(gè)子容器的作用分別是:

(1) Engine: 引擎,用來(lái)管理多個(gè)虛擬主機(jī),一個(gè)Service最多只能有一一個(gè)Engine;

(2) Host: 代表一個(gè)虛擬主機(jī),也可以叫站點(diǎn),通過(guò)配置Host就可以添加站點(diǎn);

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

(4) wrapper: 封裝器,容器的最底層。每一Wrapper 封裝著一個(gè)servlet, 負(fù)責(zé)對(duì)象實(shí)例的創(chuàng)建、執(zhí)行和銷毀功能。

Engine、Host、Context 和Wrapper,這四個(gè)容器之間屬于父子關(guān)系。

容器由一個(gè)引擎可以管理多個(gè)虛擬主機(jī)。每個(gè)虛擬主機(jī)可以管理多個(gè)web應(yīng)用。每個(gè)Web應(yīng)用會(huì)有多個(gè)Servlet封裝器。

tomcat保姆級(jí)別教程

請(qǐng)求過(guò)程

用戶在瀏覽器中輸入網(wǎng)址,請(qǐng)求被發(fā)送到本機(jī)端口8080, 被在那里監(jiān)聽(tīng)的Connector 獲得。Connector 把該請(qǐng)求交給它所在的Service 的Engine (Container) 來(lái)處理,并等待Engine 的回應(yīng)。請(qǐng)求會(huì)在Engine、 Host、 Context 和wrapper 這四個(gè)容器之間層層調(diào)用,最后在Servlet 中執(zhí)行對(duì)應(yīng)的業(yè)務(wù)邏輯、數(shù)據(jù)存儲(chǔ)等。執(zhí)行完之后的請(qǐng)求響應(yīng)在Context、 Host、 Engine 容器之間層層返回,最后返回給Connector,并通過(guò)Connector 返回給客戶端。

tomcat保姆級(jí)別教程

端口和主要目錄說(shuō)明

tomcat端口

客戶端和tomcat進(jìn)行連接時(shí)使用:

  • 8080端口:http的默認(rèn)端口

  • 8443端口:https的默認(rèn)端口

  • 8005端口: shutdown用于關(guān)閉tomcat進(jìn)程。tomcat監(jiān)聽(tīng)的關(guān)閉端口,就是說(shuō)這個(gè)端口負(fù)責(zé)監(jiān)聽(tīng)關(guān)閉tomcat的請(qǐng)求。

  • 8009端口: 用于轉(zhuǎn)發(fā),負(fù)責(zé)和其他http服務(wù)器建立連接。但一般不用,因?yàn)閠omcat一般放在后端服務(wù)器,其他服務(wù)器轉(zhuǎn)發(fā)給tomcat。

tomcat主要目錄

目錄 說(shuō)明
bin 存放啟動(dòng)和關(guān)閉Tomcat 的腳本文件,如catalina.sh、startup.sh、shutdown.sh
conf 存放Tomcat 服務(wù)器的各種配置文件,如主配置文件server.xml 和應(yīng)用默認(rèn)的部署描述文件web.xml
lib 存放Tomcat運(yùn)行需要的庫(kù)文件的jar 包,一般不作任何改動(dòng)
logs 存放Tomcat 執(zhí)行時(shí)的日志
temp 存放Tomcat 運(yùn)行時(shí)產(chǎn)生的文件
webapps 存放Tomcat默認(rèn)的web應(yīng)用項(xiàng)目資源的目錄
work Tomcat 的工作目錄,存放web應(yīng)用代碼生成和編譯文件

目錄 說(shuō)明

 

 

 

部署步驟

在部署 Tomcat 之前必須安裝好 jdk,因?yàn)門omcat是采用Java語(yǔ)言編寫的,而jdk是java的開(kāi)發(fā)工具,沒(méi)有jdk,Tomcat是跑不起來(lái)的

下載并安裝 JDK

關(guān)閉防火墻

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

設(shè)置JDK環(huán)境變量#/etc/profiled.d目錄下存放著profile文件中調(diào)用的變量,所以我們?cè)谠撃夸浵滦陆ㄒ粋€(gè)java的變量腳本,讓profile調(diào)用即可。

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

部署tomcat服務(wù)

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

啟動(dòng)tomcat

去bin目錄下

后臺(tái)啟動(dòng)

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

前臺(tái)啟動(dòng)

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

啟動(dòng)Tomcat的方法

startup.sh          #后臺(tái)啟動(dòng)tomcat
catalina.sh start   #后臺(tái)啟動(dòng)tomcat
catalina.sh run     #前臺(tái)啟動(dòng) tomcat

#關(guān)閉tomcat的方法

shutdown.sh     關(guān)閉tomcat

查看tomcat是否啟動(dòng)

netstat ss ps jps

瀏覽器訪問(wèn)測(cè)試

瀏覽器訪問(wèn)Tomcat的默認(rèn)主頁(yè) http://192.168.80.7:8080

tomcat保姆級(jí)別教程

 

優(yōu)化t

第一次啟動(dòng)tomcat可能會(huì)發(fā)現(xiàn)Tomcat啟動(dòng)很慢,如果/dev/random中的隨機(jī)數(shù)不足,默認(rèn)情況下可能會(huì)需要幾十秒,可以修改jdk參數(shù)進(jìn)行改。

/dev/urandom,它可以作為生成較低強(qiáng)度密碼的偽隨機(jī)數(shù)生成器,不建議用于生成高強(qiáng)度長(zhǎng)期密碼。

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

 

總結(jié)

JDK的安裝,在運(yùn)行tomcat前必須將JDK安裝好。

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

/dev/random: 阻塞型,讀取它就會(huì)產(chǎn)生隨機(jī)數(shù)據(jù),但該數(shù)據(jù)取決于熵池噪聲,當(dāng)熵池空了,對(duì)/dev/random 的讀操作也將會(huì)被阻塞。

/dev/urandom: 非阻塞的隨機(jī)數(shù)產(chǎn)生器,它會(huì)重復(fù)使用熵池中的數(shù)據(jù)以產(chǎn)生偽隨機(jī)數(shù)據(jù)。 這表示對(duì)/dev/urandom的讀取操作不會(huì)產(chǎn)生阻塞,但其輸出的熵可能小于/dev/random的。 它可以作為生成較低強(qiáng)度密碼的偽隨機(jī)數(shù)生成器,不建議用于生成高強(qiáng)度長(zhǎng)期密碼。

分享到:
標(biāo)簽:tomcat
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定