-
Tomcat原理
查看全部 -
tomcat配置熱部署:
熱部署:就是在不重啟tomcat的前提下,將自己的項(xiàng)目部署到tomcat中。
熱部署的三種方式:
(1)直接把web文件(war包)放在webapps里。
(2)在conf目錄下的server.xml文件里添加context標(biāo)簽
(3)在conf目錄下的Catalina下的localhost目錄下添加.xml文件
查看全部 -
tomcat修改內(nèi)存:
(1)內(nèi)存分為:堆內(nèi)存、棧內(nèi)存、靜態(tài)內(nèi)存區(qū)
? ? ? 1>堆內(nèi)存:主要用于存取類的實(shí)例、數(shù)組等引用數(shù)據(jù)類型(用new生成的對(duì)象)。
? ? ? 2>棧內(nèi)存:存取一些局部變量。比如方法參數(shù)。
? ? ? 3>靜態(tài)內(nèi)存區(qū):即持久區(qū),該區(qū)內(nèi)存不會(huì)被gc回收。 存取一些常量,靜態(tài)變量,類的源數(shù)據(jù);比如方法啊,屬性啊。
(2)內(nèi)存溢出異常:
? ? 1>java heap space異常:表示堆內(nèi)存滿了。原因:程序bug或引用的jar比較多。jvm默認(rèn)的堆內(nèi)存最小是物理內(nèi)存的六十四分之一,最大是物理內(nèi)存的四分之一。解決方法:通過調(diào)整虛擬機(jī)的初始內(nèi)存和最大內(nèi)存來加大內(nèi)存使用限制。
? ? 2>PermGen space:靜態(tài)內(nèi)存區(qū)滿了,原因:加載的類太多,jdk8以下版本需要設(shè)置靜態(tài)內(nèi)存區(qū)最大和最小值,jdk8以后版本就不存在該異常。
? ?3>StackOverflowError異常:棧內(nèi)存溢出,原因:死循環(huán)或無限遞歸導(dǎo)致。
查看全部 -
tomcat配置:
(1)配置端口號(hào):
? ? ? ? 端口范圍:1~65535,一般在1024~65535之間取值。
? ? ? ?server.xml中的三個(gè)端口:
? ? ? ?1>shutdown端口:負(fù)責(zé)監(jiān)聽關(guān)閉tomcat的請(qǐng)求;
? ? ? ?2>http端口:負(fù)責(zé)建立http請(qǐng)求;默認(rèn)端口為8080
? ? ? 3>ajb端口:負(fù)責(zé)與其他的http服務(wù)器建立連接,把tomcat與其他的http服務(wù)器集成。
1
查看全部 -
Tomcat目錄結(jié)構(gòu):
(1)bin目錄:存放tomcat運(yùn)行命令;主要有.sh和.bat兩類,.sh是linux命令,.bat是windows命令。
(2)conf目錄:主要存放一些配置文件。
(3)lib目錄:包含了所有tomcat啟動(dòng)jar包,也包含了用戶存放的web程序共享的jar包。
(4)logs目錄:用來存放tomcat在運(yùn)行時(shí)產(chǎn)生的日志信息。
(5)temp目錄:主要存放tomcat在運(yùn)行過程中產(chǎn)生的一些臨時(shí)文件,即使清空,對(duì)tomcat也沒什么影響。
(6)webapps目錄:主要存放應(yīng)用程序。
webapps目錄中的Root目錄是Tomcat的根目錄,可以直接訪問。
(7)work目錄:存放tomcat運(yùn)行時(shí)編譯后的文件,清除work目錄并重啟tomcat可以達(dá)到清除緩存的作用。
查看全部 -
tomcat日志輸出編碼設(shè)置:conf-logging.properties文件中設(shè)置。
查看全部 -
server處理HTTP請(qǐng)求:
查看全部 -
Connecter組件:
(1)接收客戶端連接
(2)加工處理客戶端請(qǐng)求
解析過程生成request對(duì)象,組裝過程生成respose對(duì)象
Container組件:
(1)所有的子容器的父接口
(2)使用責(zé)任鏈設(shè)計(jì)模式
(3)包含四個(gè)子容器:Engine、Host、Context、Wrapper
責(zé)任鏈模式:使多個(gè)對(duì)象都有機(jī)會(huì)去處理同一個(gè)請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系,將這些對(duì)象連成一條鏈,并沿著這條鏈傳遞請(qǐng)求,直到有一個(gè)對(duì)象處理它為止。
Engine:用來管理多個(gè)站點(diǎn),一個(gè)service最多只能由一個(gè)engine;
Host:代表一個(gè)站點(diǎn),也可以叫虛擬主機(jī),通過配置Host就可以添加站點(diǎn)。
Context:代表一個(gè)應(yīng)用程序,相當(dāng)于一個(gè)war包。
Wrapper:一個(gè)封裝了的servlet.
查看全部 -
JVM 堆內(nèi)存默認(rèn)最小內(nèi)存為物理內(nèi)存的1/64 ,最大為物理內(nèi)存的1/4.
即如8G內(nèi)存,則最小內(nèi)存為 128M,最大2048M
查看全部 -
bin 應(yīng)用程序:.sh——linux程序
conf 配置文件
lib jar包
log 日志信息
tmp 臨時(shí)文件
webapp 外部程序
work 編譯后文件
查看全部 -
Server處理http請(qǐng)求流程。
查看全部 -
Connector(連接器)組件是Tomcat最核心的兩個(gè)組件之一,主要的職責(zé)就是負(fù)責(zé)接收客戶端連接和客戶端請(qǐng)求的處理加工。每個(gè)Connector都將指定一個(gè)端口進(jìn)行監(jiān)聽,分別負(fù)責(zé)對(duì)請(qǐng)求報(bào)文的解析和響應(yīng)報(bào)文組裝,解析過程生成Request對(duì)象,而組裝過程涉及Response對(duì)象; 如果將Tomcat整體比作一個(gè)巨大的城堡,那么Connector組件就是城堡的城門,每個(gè)人要進(jìn)入城門就必須通過城門,它為人們進(jìn)出城堡提供了通道。同時(shí),一個(gè)城堡還可能有兩個(gè)或者多個(gè)城門,每個(gè)城門代表了不同的通道; HTTP Connector所支持的協(xié)議版本為HTTP/1.1和HTTP/1.0,無須顯式適配HTTP的版本,Connector會(huì)自動(dòng)適配版本。每個(gè)Connector實(shí)例對(duì)應(yīng)一個(gè)端口,在同個(gè)service實(shí)例內(nèi)可以配置若干個(gè)Connector實(shí)例; AJP Connector組件用于支持AJP協(xié)議通信,當(dāng)我們想將Web應(yīng)用中包含的靜態(tài)內(nèi)容交給Apache處理的時(shí)候,Apache與Tomcat之間的通信協(xié)議則使用AJP協(xié)議; Connector也在服務(wù)器端提供了SSL安全通道的支持,用于客戶端以HTTPS方式訪問,可以通過配置server.xml的<Connector>節(jié)點(diǎn)SSLEnabled屬性開啟;查看全部
-
Tomcat 的流處理的運(yùn)動(dòng)模式查看全部
-
Tomcat 的優(yōu)化配置
查看全部 -
tomcat的安全規(guī)范
查看全部
舉報(bào)