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