請問如何設置Tomcat默認的路徑?
比如說我的項目目錄是
C:\tomcat\webapps\design
在項目中的WebRoot目錄下,有個文件是index.jsp
我想在IE里輸入http://localhost:8000/index.jsp
或者http://localhost:8000/design/index.jsp
就可以訪問的話,應該如何設置?
現在我必須要輸入http://localhost:8000/design/WebRoot/index.jsp才可以訪問……
我是Tomcat 6
請問5.5和6的設置是一樣的嗎?
《解決方案》
TOMCAT目錄結構
一、TOMCAT的目錄結構
/bin:存放windows或Linux平台上啟動和關閉Tomcat的腳本文件
/conf:存放Tomcat伺服器的各種全局配置文件,其中最重要的是server.xml和web.xml
/doc:存放Tomcat文檔
/server:包含三個子目錄:classes、lib和webapps
/server/lib:存放Tomcat伺服器所需的各種JAR文件
/server/webapps:存放Tomcat自帶的兩個WEB應用admin應用和 manager應用
/common/lib:存放Tomcat伺服器以及所有web應用都可以訪問的jar文件
/shared/lib:存放所有web應用都可以訪問的jar文件(但是不能被Tomcat伺服器訪問)
/logs:存放Tomcat執行時的日誌文件
/src:存放Tomcat的源代碼
/webapps:Tomcat的主要Web發布目錄,默認情況下把Web應用文件放於此目錄
/work:存放JSP編譯后產生的class文件
二、WEB應用的目錄結構:假設在$CATALINA_HOME/webapps下有helloapp的web應用
/helloapp:Web應用的根目錄,所有的jsp文件和html文件都在此目錄下
/helloapp/WEB_INF:存放該web應用發布時的描述文件web.xml
/helloapp/WEB_INF/class:存放各種class文件,Servlet文件也存放於此目錄下
/helloapp/WEB_INF/lib:存放各鍾Web應用所需要的jar文件。比如可以存放JDBC驅動程序的JAR文件
三、Tomcat載入類和資源的順序為(以helloapp應用為例):
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應用可以載入)
四、$CATALINA_HOME/conf/server.xml配置簡介
1、<Server>元素屬性
port:指定一個埠,這個埠負責監聽關閉tomcat的請求
shutdown:指定向埠發送的命令字元串,通常是「SHUTDOWN」
2、<Service>元素屬性
name:指定service的名字,通常是」Catalina」
3、<Connector/>元素屬性(表示客戶端和service之間的連接):
port:指定伺服器端要創建的埠號,並使用這個斷口監聽來自客戶端的請求
minProcessors(考察是否有此屬性):伺服器端啟動時創建的處理請求的線程數
maxProcessors(考察是否有此屬性):最大可以創建的處理請求的線程數
maxThreads:伺服器創建的最大線程數
minSpareThreads:最小剩餘線程數
maxSpareThreads:最大剩餘線程數
enableLookups:如果為true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠程客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其IP地址
redirectPort:指定當伺服器正在處理HTTP請求時收到了一個SSL傳輸請求后重定向的埠號
acceptCount:指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過的請求將不予處理
connectionTimeout:指定超時的時間數(以毫秒為單位)
disableUploadTimeout:不明
debug:不明
protocol:不明
4、<Engine>元素屬性(指定service中的請求處理主機,接收和處理來自Connector的請求)
name:指定Engine的名字,通常是」Catalina」
defaultHost:指定默認的處理請求的主機名,至少與某個host元素的name屬性值是相同的
5、<Context/>元素屬性(表示一個web應用程序)
docBase:指定此Web應用的絕對或相對路徑,也可以為WAR文件的路徑
path:表示此Web應用程序的url的入口,如為「/hello「,則請求的URL為http://localhost:8080/hello/
reloadable:如果為true,則Tomcat在運行時會自動監視Web應用的/WEB-INF/lib和/WEB-INF/classes下文件的改動,自動裝載新應用,使我們可以在不重啟Tomcat的情況下更新Web應用
6、<Host>元素屬性(表示一個虛擬主機)
name:指定虛擬主機名字
debug:指定日誌級別
appBase:存放Web應用程序的基本目錄,可以是絕對路徑或相對於$CATALINA_HOME的目錄,默認是$CATALINA_HOME/webapps
unpackWARs:如果為true,則tomcat會自動將WAR文件解壓后運行,否則不解壓而直接從WAR文件中運行應用程序
autoDeploy:如果為true,表示Tomcat啟動時會自動發布appBase目錄下所有的Web應用(包括新加入的Web應用)
deployOnStarup:如果此項為true,表示Tomcat伺服器啟動時會自動發布appBase目錄下所有Web應用。如果Web應用在server.xml中沒有相應的<Context>元素,則將採用默認的Context配置。deployOnStarup的默認設置是true
alias:指定虛擬主機的別名,可以指定多個別名
xmlValidation:不明
xmlNamespaceAware:不明
7、<Logger/>元素屬性(表示日誌,調試和錯誤信息)
className:指定logger使用的類名,此類必須實現org.apache.catalina.Logger 介面
prefix:指定log文件名的前綴(文件名)
suffix:指定log文件名的後綴(擴展名)
timestamp:如果為true,則log文件名中會加入日期時間,如下例:localhost_log.2006-10-04.txt
directory:指定log文件存放的目錄
8、<Realm/>元素屬性(表示存放用戶名,密碼及role的資料庫)
className:指定Realm使用的類名,此類必須實現org.apache.catalina.Realm介面
resourceName:不明
9、<Valve/>元素屬性(功能與Logger相似,其prefix和suffix屬性解釋和Logger 中的一樣)
className:指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve類可以記錄應用程序的訪問信息
directory:指定log文件存放的位置
pattern:有兩個值,common方式記錄遠程主機名或ip地址、用戶名、日期、第一行請求的字元串、HTTP響應代碼、發送的位元組數。combined方式比common方式記錄的值還多
《解決方案》
設置appbase