-
8005 : "shutdown"線程端口,用于監(jiān)聽接受關(guān)閉tomcat的請求,并發(fā)送命令關(guān)閉指定的tomcat服務(wù);
8080: http訪問端口,負(fù)責(zé)建立瀏覽器對http的請求
8009: AJP協(xié)議端口,主要負(fù)責(zé)與其他的http服務(wù)集成。
查看全部 -
server 處理?http? 請求 流程圖
查看全部 -
set JAVA_OPTS="-server -Xms256m -Xmx512m
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=256m查看全部 -
概述與運行原理
查看全部 -
默認(rèn)的賬號和密碼
? 地址:webapps/cas/WEB-INF/deployerConligContect,xml????
? 105行? 有key和value。
查看全部 -
1.單點登錄的概念
??單點登錄(Single Sign On),簡稱為SSO,是目前比較流行的企業(yè)服務(wù)整合的解決方案之一
? SSO的定義是在多個應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)
2.CAS
? 開源的企業(yè)級單點登錄解決方案
? 從結(jié)構(gòu)上:CAS Server和CAS Client
? CAS Server:需要獨立部署,負(fù)責(zé)對用戶的認(rèn)證工作。
??CAS Client:負(fù)責(zé)對客戶端的受保護(hù)的資源的訪問請求
?
查看全部 -
1.修改默認(rèn)發(fā)布的最大值配置項
? 地址:webapps/manager/WEB-INF/web.xml???? 50行左右
? max-file-size??????
? max-request-size
查看全部 -
?
測試參數(shù)的含義
1.JmxEnabled:是否將連接注冊到JMX中
? JMX 就是一個框架,通過將監(jiān)控和管理涉及到各個方面的問題和解決辦法放到一起統(tǒng)一的去設(shè)計,以便向外部提供服務(wù),供使用者去調(diào)用。
? 監(jiān)控系統(tǒng)的狀態(tài),管理系統(tǒng)的緩存。
? 默認(rèn)值是true。
2.setValidationQuery: sql查詢
? 用來驗證從連接池中取出的連接,在返回給調(diào)用者之前,指定的參數(shù)的查詢必須使用sql語句,select的語句至少返回一條記錄。
? 一般默認(rèn)值是 SELECT 1 .
3.setTestOnReturn: 是否在歸還前進(jìn)行檢查
? 在歸還到數(shù)據(jù)庫連接池之前,是否進(jìn)行一個校驗。
? 一般設(shè)為false。
4.setValidationInterval: 設(shè)置驗證頻率
? 參數(shù)為上限。避免過度驗證。
? 參數(shù)的單位為毫秒。
5.setTimeBetweenEvivtionRunsMillis: 回收期休眠時間
? 空閑的連接回收期線程,在運行期間的休眠時間值,單位為毫秒。
? 如果設(shè)置為非整數(shù),就不會運行。
? 不應(yīng)該小于1秒。
6.setMaxActive:最大活動連接
? 在連接池中,同一時間能夠分配的最大的活動連接數(shù)量。
? 如果設(shè)置成非整數(shù),就表示沒有限制。
查看全部 -
1.什么是連接池?
準(zhǔn)備一個空間,專門存放數(shù)據(jù)庫連接,用戶使用時直接從空間中取走連接,關(guān)閉時將連接放回空間中。這個空間就被稱為連接池。
在程序初始化的時候,集中創(chuàng)建多個數(shù)據(jù)庫連接,并且集中管理,供程序去使用。
不僅可以保證數(shù)據(jù)庫的讀寫速度,而且更加安全可靠。
連接池提高了性能,也提高了安全性。
2.JDBC操作數(shù)據(jù)庫
加載驅(qū)動>創(chuàng)建鏈接>執(zhí)行SQL>(關(guān)閉數(shù)據(jù)庫)釋放連接
3.JDBC庫的數(shù)據(jù)源有兩種配置方式
異步配置連接
獨立配置連接
4.DBCP
飽受詬病,單線程。
?
查看全部 -
1.什么是熱部署?
就是在不重新啟動Tomcat服務(wù)器的條件下,將自己的項目部署到Tomcat服務(wù)器中。
2.如何配置熱部署?---------三種方式
直接將自己的web文件放入webapps文件夾中。
conf/server.xml <host>標(biāo)簽中中添加context標(biāo)簽:
<Context debug="0" docBase="D:\demo1\web" path="/demo1" reloadable="true" />
-----debug越大,程序發(fā)生異常時,寫入日志文件的詳細(xì)程度越大,默認(rèn)為0
------docBase 項目的絕對路徑或者相對路徑(相對webapps)
------path 項目的訪問方式
-------reloadable 如果為true 自動加載新增或者改變的class文件
在conf/catalina下面的localhost中添加一個xml文件
新建一個demo2.xml文件,粘貼配置信息:
<?xml version="1.0" encoding="UTF-8"?>
<Context debug="0" docBase="D:\demo1\web" path="/demo1" reloadable="true" />
這時候demo2作為訪問項目的名稱,path不起作用。
查看全部 -
1.修改內(nèi)存的目的
日常開發(fā)中,開發(fā)項目比較大的時候依賴的jar包比較多,并且在應(yīng)用服務(wù)器啟動的時候,會將項目引用的所有的類依次全部加載到內(nèi)存當(dāng)中,java的邏輯內(nèi)存模式分為
堆內(nèi)存(存儲類的實例,數(shù)組、引用數(shù)據(jù)類型也就是用new生成的對象)、
棧內(nèi)存(存儲局部變量比如方法參數(shù))、
靜態(tài)內(nèi)存區(qū)(持久區(qū),該區(qū)內(nèi)存不會被gc回收,存常量、靜態(tài)變量、類的源數(shù)據(jù):方法、屬性什么的)
2.在開發(fā)當(dāng)中經(jīng)常遇到的內(nèi)存溢出的異常
OutOfMemoryErroe:Java heap space異常------>堆內(nèi)存滿了
JVM中堆內(nèi)存的大小默認(rèn)使用的最小內(nèi)存是我們物理內(nèi)存的1/64,最大的使用我們物理內(nèi)存的1/4,我們通過調(diào)整JVM中的初始內(nèi)存和最大內(nèi)存來改變我們使用內(nèi)存的限制
OutOfMemoryError:PermGen space異常-------->靜態(tài)內(nèi)存區(qū)滿了
通常是因為加載的類太多導(dǎo)致的,jdk8以下的需要修改兩個參數(shù)限制靜態(tài)區(qū)最小和最大內(nèi)存范圍,,jdk8改變了內(nèi)存模型,將類定義存放到了源數(shù)據(jù)空間,而源數(shù)據(jù)空間與堆內(nèi)存共享的是同一塊內(nèi)存區(qū)域,所以在jdk8版本以后就不會再出現(xiàn)PermGen space異常了。
StackOverflowError異常---------->棧內(nèi)存溢出
通常是由于死循環(huán)或無線遞歸導(dǎo)致的
3.配置內(nèi)存參數(shù)
網(wǎng)上有兩種方式,一種是在start.bat,一種是在catalina.bat中
bin/catalina編輯:配到第2行/192行都行
?JAVA_OPTS=“-server -Xms512m -Xmx1024m
?-XX:MetaspaceSize=128m? -XX:MaxMetaspaceSize=256m?”
-Xms:java heap初始大小 ,默認(rèn)為物理內(nèi)存的1/64,最大不要超過物理內(nèi)存的80%
-Xmx:java heap的最大值,建議設(shè)置為物理內(nèi)存的一半,不要超過實際的物理內(nèi)存
MetaspaceSize:初始源空間的值,默認(rèn)21m,
MetaspaceSize:最大源空間的值,默認(rèn)無上限
虛擬機的堆大小決定了虛擬機花費在數(shù)據(jù)垃圾上的時間和頻率,調(diào)整虛擬機的堆大小目的是最小化垃圾回收的時間,一般用物理內(nèi)存的80%作為堆內(nèi)存的大小
查看全部 -
1.用戶點擊網(wǎng)頁的內(nèi)容,請求被發(fā)送到主機的8080端口,會在那里監(jiān)聽8080端口的connector獲得。
2.接下來connector會請求它所在的server的Engine來處理,并且等待Engine的回應(yīng)。
3.Engine獲得的請求是localhost-teckst-index.jsp,它就去匹配所有的虛擬主機,也就是Host。Engine去匹配名稱為localhost的host,也就是站點,名稱為localhost的站點獲得請求teckst-index.jsp。
4.然后再去匹配所有的context,而host匹配的路徑為teckst-Context,也就是項目。
5.然后第五步,匹配到-Context的context,它去獲得的請求是Index.jsp,它就會在它的Mackie table里面去尋找對應(yīng)的servlet。
6.對應(yīng)的servlet就會構(gòu)建兩個對象,一個是appservletrequest和reponse兩個對象,并且作為參數(shù)去調(diào)用jspservlet的doget或者dopost方法, 然后去執(zhí)行業(yè)務(wù)邏輯,比如說數(shù)據(jù)存儲。
7.然后context就會把執(zhí)行完的httpservletresponse對象返回給Host。
8.Host把response對象返回給Engine。
9.Engine再返回給Connector。
10.Connector再返回給客戶端。
查看全部 -
connector
1.接收客戶端連接???
2.加工處理客戶端請求
每個Connector都將指定一個端口進(jìn)行監(jiān)聽,分別負(fù)責(zé)對請求報文的解析和響應(yīng)報文組裝,解析過程生成Request對象,而組裝過程涉及Response對象。
如果將Tomcat整體比作一個巨大的城堡,那么Connector組件就是城堡的城門,每個人要進(jìn)入城門就必須通過城門,它為人們進(jìn)出城堡提供了通道。同時,一個城堡還可能有兩個或者多個城門,每個城門代表了不同的通道。
container
1.所有的子容器的父接口 ??
2.使用責(zé)任鏈設(shè)計模式?
3.包含四個子容器:Engine、Host、Context、Wrapper
責(zé)任鏈模式:使多個對象都有機會去處理同一個請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系,將這些對象連成一條鏈,并沿著這條鏈傳遞請求,直到有一個對象處理它為止。
Engine:用來管理多個站點,一個service最多只能由一個engine;
Host:代表一個站點,也可以叫虛擬主機,通過配置Host就可以添加站點。
Context:代表一個應(yīng)用程序,相當(dāng)于一個war包。
Wrapper:一個封裝了的servlet.
?
查看全部 -
1.Server 指整個Tomcat服務(wù)器,其中包含多個組件,主要負(fù)責(zé)管理和啟動各個service,同時監(jiān)聽8005端口發(fā)過來的shut down命令,用于關(guān)閉整個服務(wù)器。
?2.Service 是Tomcat封裝的用于對外提供完整的基于組件的web服務(wù),主要包括connector和container兩個核心組件和多個功能組件。各個service之間的獨立的,但是他們會共享同一個虛擬機資源。
?3.Connector 是Tomcat與外部世界的一個連接器,監(jiān)聽固定的端口,接收外部請求,然后將請求傳遞給container,并且將container的處理結(jié)果再返回給外部。?
4.Container 是一個servlet容器,內(nèi)部由多層容器組成,主要用于管理servlet 的生命周期,然后調(diào)用servlet 的相關(guān)方法去處理業(yè)務(wù)邏輯。
5.Jasper 是Tomcat的JSP的解析引擎,用于將JSP文件轉(zhuǎn)化成Java文件,并且編譯成.class文件。
6.Naming 其實是一個命名服務(wù),將名稱和對象聯(lián)系起來,使得可以用名稱去訪問對象。
7.Session 負(fù)責(zé)管理和創(chuàng)建session,session的持久化??梢宰远x,并且支持session的集群。對于Tomcat而言,session是在服務(wù)器開辟的內(nèi)存空間。在開發(fā)中,經(jīng)常用session來存儲一些臨時的信息。
8.Loging 負(fù)責(zé)記錄相關(guān)的日志,包含訪問錯誤信息和一下運行信息。
9.JMX ?javase中的定義的一個技術(shù)規(guī)范,主要是為應(yīng)用程序,設(shè)備,系統(tǒng)等植入管理功能的框架。通過jmx可以遠(yuǎn)程監(jiān)控Tomcat的運行狀況。
?
查看全部 -
1.修改Tomcat端口號
在server.xml文件里面修改
2.配置端口號:
? ? ? ? 端口范圍:1~65535,一般在1024~65535之間取值。因為前1~1024大部分都被固定分配了。
3.server.xml中的三個端口:
??????(1)shutdown端口:負(fù)責(zé)監(jiān)聽關(guān)閉tomcat的請求;
??????(2)http端口:負(fù)責(zé)建立http請求;默認(rèn)端口為8080
? ? ? (3)3>ajb端口:負(fù)責(zé)與其他的http服務(wù)器建立連接,把tomcat與其他的http服務(wù)器集成。
?
查看全部
舉報