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