一,、TOMCAT的目錄結(jié)構(gòu) /bin:存放windows或Linux平臺(tái)上啟動(dòng)和關(guān)閉Tomcat的腳本文件 /conf:存放Tomcat服務(wù)器的各種全局配置文件,,其中最重要的是server.xml和web.xml /doc:存放Tomcat文檔 /server:包含三個(gè)子目錄:classes、lib和webapps /server/lib:存放Tomcat服務(wù)器所需的各種JAR文件 /server/webapps:存放Tomcat自帶的兩個(gè)WEB應(yīng)用admin應(yīng)用和 manager應(yīng)用 /common/lib:存放Tomcat服務(wù)器以及所有web應(yīng)用都可以訪問(wèn)的jar文件 /shared/lib:存放所有web應(yīng)用都可以訪問(wèn)的jar文件(但是不能被Tomcat服務(wù)器訪問(wèn)) /logs:存放Tomcat執(zhí)行時(shí)的日志文件 /src:存放Tomcat的源代碼 /webapps:Tomcat的主要Web發(fā)布目錄,,默認(rèn)情況下把Web應(yīng)用文件放于此目錄 /work:存放JSP編譯后產(chǎn)生的class文件 二,、WEB應(yīng)用的目錄結(jié)構(gòu):假設(shè)在$CATALINA_HOME/webapps下有helloapp的web應(yīng)用 /helloapp:Web應(yīng)用的根目錄,所有的jsp文件和html文件都在此目錄下 /helloapp/WEB_INF:存放該web應(yīng)用發(fā)布時(shí)的描述文件web.xml /helloapp/WEB_INF/class:存放各種class文件,,Servlet文件也存放于此目錄下 /helloapp/WEB_INF/lib:存放各鐘Web應(yīng)用所需要的jar文件,。比如可以存放JDBC驅(qū)動(dòng)程序的JAR文件 三、Tomcat加載類(lèi)和資源的順序?yàn)椋ㄒ詇elloapp應(yīng)用為例): 1,、helloapp (/webapps/helloapp/Web-INF/下的classes,,lib子目錄中*.calss及*.jar,僅helloapp可以加載) 2,、Bootstrap ($JAVA_HOME/jre/lib/ext/*.jar) 3,、System ($CLASSPATH/*.class和CLASSPATH中指定的jar) 4、Common ($CATALINA_HOME/common/下的classes,,lib,,endores子目錄中*.class及*.jar) 5、Catalina ($CATALINA_HOME/server/下的classes,,lib子目錄中*.calss及*.jar,,僅Tomcat可以加載) 6、Shared ($CATALINA_HOME/shared/下的classes,,lib子目錄中*.calss及*.jar,,僅所有Web應(yīng)用可以加載) 四、$CATALINA_HOME/conf/server.xml配置簡(jiǎn)介 1,、元素屬性 port:指定一個(gè)端口,,這個(gè)端口負(fù)責(zé)監(jiān)聽(tīng)關(guān)閉tomcat的請(qǐng)求 shutdown:指定向端口發(fā)送的命令字符串,通常是“SHUTDOWN” 2,、元素屬性 name:指定service的名字,,通常是”Catalina” 3,、元素屬性(表示客戶(hù)端和service之間的連接): port:指定服務(wù)器端要?jiǎng)?chuàng)建的端口號(hào),,并使用這個(gè)斷口監(jiān)聽(tīng)來(lái)自客戶(hù)端的請(qǐng)求 minProcessors(考察是否有此屬性):服務(wù)器端啟動(dòng)時(shí)創(chuàng)建的處理請(qǐng)求的線(xiàn)程數(shù) maxProcessors(考察是否有此屬性):最大可以創(chuàng)建的處理請(qǐng)求的線(xiàn)程數(shù) maxThreads:服務(wù)器創(chuàng)建的最大線(xiàn)程數(shù) minSpareThreads:最小剩余線(xiàn)程數(shù) maxSpareThreads:最大剩余線(xiàn)程數(shù) enableLookups:如果為true,,則可以通過(guò)調(diào)用request.getRemoteHost()進(jìn)行DNS查詢(xún)來(lái)得到遠(yuǎn)程客戶(hù)端的實(shí)際主機(jī)名,若為false則不進(jìn)行DNS查詢(xún),,而是返回其IP地址 redirectPort:指定當(dāng)服務(wù)器正在處理HTTP請(qǐng)求時(shí)收到了一個(gè)SSL傳輸請(qǐng)求后重定向的端口號(hào) acceptCount:指定當(dāng)所有可以使用的處理請(qǐng)求的線(xiàn)程數(shù)都被使用時(shí),,可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過(guò)的請(qǐng)求將不予處理 connectionTimeout:指定超時(shí)的時(shí)間數(shù)(以毫秒為單位) disableUploadTimeout:不明 debug:不明 protocol:不明 4,、元素屬性(指定service中的請(qǐng)求處理主機(jī),,接收和處理來(lái)自Connector的請(qǐng)求) name:指定Engine的名字,通常是”Catalina” defaultHost:指定默認(rèn)的處理請(qǐng)求的主機(jī)名,,至少與某個(gè)host元素的name屬性值是相同的 5,、元素屬性(表示一個(gè)web應(yīng)用程序) docBase:指定此Web應(yīng)用的絕對(duì)或相對(duì)路徑,也可以為WAR文件的路徑 path:表示此Web應(yīng)用程序的url的入口,,如為“/hello“,,則請(qǐng)求的URL為http://localhost:8080/hello/ reloadable:如果為true,則Tomcat在運(yùn)行時(shí)會(huì)自動(dòng)監(jiān)視Web應(yīng)用的/WEB-INF/lib和/WEB-INF/classes下文件的改動(dòng),,自動(dòng)裝載新應(yīng)用,,使我們可以在不重啟Tomcat的情況下更新Web應(yīng)用 6、元素屬性(表示一個(gè)虛擬主機(jī)) name:指定虛擬主機(jī)名字 debug:指定日志級(jí)別 appBase:存放Web應(yīng)用程序的基本目錄,,可以是絕對(duì)路徑或相對(duì)于$CATALINA_HOME的目錄,,默認(rèn)是$CATALINA_HOME/webapps unpackWARs:如果為true,則tomcat會(huì)自動(dòng)將WAR文件解壓后運(yùn)行,,否則不解壓而直接從WAR文件中運(yùn)行應(yīng)用程序 autoDeploy:如果為true,,表示Tomcat啟動(dòng)時(shí)會(huì)自動(dòng)發(fā)布appBase目錄下所有的Web應(yīng)用(包括新加入的Web應(yīng)用) deployOnStarup:如果此項(xiàng)為true,表示Tomcat服務(wù)器啟動(dòng)時(shí)會(huì)自動(dòng)發(fā)布appBase目錄下所有Web應(yīng)用,。如果Web應(yīng)用在 server.xml中沒(méi)有相應(yīng)的元素,則將采用默認(rèn)的Context配置,。deployOnStarup的默認(rèn)設(shè)置是 true alias:指定虛擬主機(jī)的別名,可以指定多個(gè)別名 xmlValidation:不明 xmlNamespaceAware:不明 7,、元素屬性(表示日志,,調(diào)試和錯(cuò)誤信息) className:指定logger使用的類(lèi)名,此類(lèi)必須實(shí)現(xiàn)org.apache.catalina.Logger 接口 prefix:指定log文件名的前綴(文件名) suffix:指定log文件名的后綴(擴(kuò)展名) timestamp:如果為true,,則log文件名中會(huì)加入日期時(shí)間,,如下例:localhost_log.2006-10-04.txt directory:指定log文件存放的目錄 8、元素屬性(表示存放用戶(hù)名,,密碼及role的數(shù)據(jù)庫(kù)) className:指定Realm使用的類(lèi)名,,此類(lèi)必須實(shí)現(xiàn)org.apache.catalina.Realm接口 resourceName:不明 9、元素屬性(功能與Logger相似,,其prefix和suffix屬性解釋和Logger 中的一樣) className:指定Valve使用的類(lèi)名,,如用org.apache.catalina.valves.AccessLogValve類(lèi)可以記錄應(yīng)用程序的訪問(wèn)信息 directory:指定log文件存放的位置 pattern:有兩個(gè)值,common方式記錄遠(yuǎn)程主機(jī)名或ip地址,、用戶(hù)名,、日期,、第一行請(qǐng)求的字符串、HTTP響應(yīng)代碼,、發(fā)送的字節(jié)數(shù),。combined方式比common方式記錄的值還多 |
|