-
優(yōu)化配置
緩存優(yōu)化(nginx、gzip)
運動模式
BIO:效率低下,一個線程只能處理一個請求,請求過多的時候,線程會相應(yīng)的增加,很浪費資源,tomcat7以下版本是BIO
NIO:基于緩存區(qū)、非阻塞的I/O。相對于BIO效率更高(利用java異步I/O,少量線程處理大量請求)
APR:tomcat7及以上默認(rèn)模式。需要操作系統(tǒng)的支持(tomcat7以及以上版本在操作系統(tǒng)安裝了APR時候,tomcat默認(rèn)是APR模式)
查看全部 -
配置大小查看全部
-
監(jiān)聽8005發(fā)過來的關(guān)閉服務(wù)命令
查看全部 -
jdk1.8的垃圾回收機制比1.7強
查看全部 -
修改Cookies安全性
查看全部 -
server處理http請求
自上而下
責(zé)任鏈模式
查看全部 -
多域名配置
在server.xml中配置host節(jié)點
在host中配置 127.0.0.1 other
在瀏覽器中訪問other:8081?
多端口配置
查看全部 -
注意配置的端口號相同
查看全部 -
使用tomcat數(shù)據(jù)庫連接池
引入jar包
測試demo代碼:
DataSource讀取配置對象,獲取到數(shù)據(jù)庫連接
使用連接進(jìn)行數(shù)據(jù)庫查詢
配置各個參數(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ù),就表示沒有限制。
在tomcat中配置
需要在context.xml中配置
? ?
并在web.xml中配置
注意:re-name與context.xml中的name屬性相同
將mysql連接jar包放入lib文件夾,啟動tomcat
查看全部 -
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.什么是熱部署?
就是在不重新啟動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.修改Tomcat端口號
在server.xml文件里面修改
2.配置端口號:
? ? ? ? 端口范圍:1~65535,一般在1024~65535之間取值。因為前1~1024大部分都被固定分配了。
3.server.xml中的三個端口:
??????(1)shutdown端口:端口為8005,負(fù)責(zé)監(jiān)聽關(guān)閉tomcat的請求;
??????(2)http端口:負(fù)責(zé)建立http請求;默認(rèn)端口為8080
? ? ? (3)AJP協(xié)議端口:端口為8009,負(fù)責(zé)與其他的http服務(wù)器建立連接,把tomcat與其他的http服務(wù)器集成。
查看全部 -
Tomcat目錄結(jié)構(gòu):
(1)bin目錄:存放tomcat運行命令;主要有.sh和.bat兩類,.sh是linux命令,.bat是windows命令。
(2)conf目錄:主要存放一些配置文件。
(3)lib目錄:包含了所有tomcat啟動jar包,也包含了用戶存放的web程序共享的jar包。
(4)logs目錄:用來存放tomcat在運行時產(chǎn)生的日志信息。
(5)temp目錄:主要存放tomcat在運行過程中產(chǎn)生的一些臨時文件,即使清空,對tomcat也沒什么影響。
(6)webapps目錄:主要存放應(yīng)用程序。
webapps目錄中的Root目錄是Tomcat的根目錄,可以直接訪問。
(7)work目錄:存放tomcat運行時編譯后的文件,清除work目錄并重啟tomcat可以達(dá)到清除緩存的作用。
查看全部 -
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再返回給客戶端。
查看全部
舉報