首先,看一下tomcat的目錄結構: bin 存放啟動和關閉tomcat指令碼
conf 包含不同的設定檔,server.xml(Tomcat的主要設定檔)和web.xml
work 存放jsp編譯後產生的class檔案
webapp 存放應用程式樣本,以後你要部署的應用程式也要放到此目錄
logs 存放記錄檔
lib/japser/common 這三個目錄主要存放tomcat所需的jar檔案
----------------------------
tomcat下網域名稱的設定,ROOT.XML的作用
以下小結使用tomcat5.0.28測試通過,tomcat安裝路徑為C:\Tomcat
在預設安裝後,tomcat的主目錄是webapps/root目錄,如果我們想改變tomcat的主目錄的話可以這樣做:
1.開啟C:\Tomcat\conf\server.xml,在<host></host>之間加入代碼:
<Context path="" docBase="E:\tomcatApp\JeasyCMS" debug="0" reloadable="true" crossContext="true"/>
這樣重新啟動tomcat,我們的主目錄就被設定為jeasyCMS這個項目了。 2.另外tomcat會產生一個C:\Tomcat\conf\Catalina\localhost目錄,裡面自動產生了一個ROOT.xml(root大寫)檔案,我們開啟檔案可以看到這些代碼:
<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="" reloadable="true">
</Context> 3.注意:我們建立虛擬目錄的時候也是這樣來進行設定的,只是context這個標籤的path屬性不為空白。 4.我們設定虛擬目錄和主目錄,都會在C:\Tomcat\conf\Catalina\localhost目錄下產生相應的xml檔案,因此,當我們在server.xml裡面刪除了主目錄和虛擬目錄的設定後,如果系統還沒有生效,這時候我們就要察看一下這個目錄下的xml檔案是不是已經被刪除了,如果沒有被刪除,他還是對tomcat起作用的,我們必須手動刪除。 5.基於第4點,通過測試我發現,每當我們訪問一個地址的時候,tomcat首先是到C:\Tomcat\conf\Catalina\localhost目錄下去察看有沒有存在主目錄或虛擬目錄的xml檔案,如果有xml檔案,就按xml裡的路徑進行訪問,如果沒有xml檔案,就到server.xml檔案裡去察看是否配置context標籤,如果配置了context標籤,則在C:\Tomcat\conf\Catalina\localhost目錄下產生一個對應的xml檔案,以便於下次直接驗證而不再訪問server.xml,與此同時開啟context裡指定的路徑,如果server.xml裡沒有配置context標籤,則返回訪問錯誤頁面。 6.基於第5點,我們其實可以直接在C:\Tomcat\conf\Catalina\localhost下建立一個xml檔案,用於主目錄或者虛擬目錄,而不需要去修改server.xml就可以達到配置主目錄和虛擬目錄的目的,具體xml的格式可以如下:
<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="" reloadable="true">
</Context>
具體是主目錄的配置還是虛擬目錄的配置取決於path的值。另外主目錄檔案名稱必須是ROOT.XML(root大寫),而虛擬目錄的檔案名稱和虛擬目錄的名稱一致並且為小寫,譬如: <?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="\cms" reloadable="true">
</Context>
以上則定義了一個名為:cms的虛擬目錄,同時要將以上文本儲存為cms.xml檔案。
7.以上住目錄配置好後就可以按以下地址訪問了:
http://localhost:8080/(訪問主目錄)
http://localhost:8080/cms (訪問名為cms的虛擬目錄) ------------------------------------------------------------------------
tomcat server.xml配置詳解
| 元素名 |
屬性 |
解釋 |
| server |
port |
指定一個連接埠,這個連接埠負責監聽關閉tomcat的請求 |
| shutdown |
指定向連接埠發送的命令字串 |
| service |
name |
指定service的名字 |
| Connector ( 表示用戶端和service之間的串連) |
port |
指定伺服器端要建立的連接埠號碼,並在這個斷口監聽來自用戶端的請求 |
| minProcessors |
伺服器啟動時建立的處理請求的線程數 |
| maxProcessors |
最大可以建立的處理請求的線程數 |
| enableLookups |
如果為true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠程用戶端的實際主機名稱,若為false則不進行DNS查詢,而是返回其ip地址 |
| redirectPort |
指定伺服器正在處理http請求時收到了一個SSL傳輸請求後重新導向的連接埠號碼 |
| acceptCount |
指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理 |
| connectionTimeout |
指定逾時的時間數(以毫秒為單位) |
| Engine ( 表示指定service中的請求處理機,接收和處理來自Connector的請求) |
defaultHost |
指定預設的處理請求的主機名稱,它至少與其中的一個host元素的name屬性值是一樣的 |
| Context ( 表示一個web應用程式,通常為WAR檔案,關於WAR的具體資訊見servlet規範) |
docBase |
應用程式的路徑或者是WAR檔案存放的路徑 |
| path |
表示此web應用程式的url的首碼,這樣請求的url為http://localhost:8080/path/**** |
| reloadable |
這個屬性非常重要,如果為true,則tomcat會自動檢測應用程式的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動裝載新的應用程式,我們可以在不重起tomcat的情況下改變應用程式 |
| host ( 表示一個虛擬機器主機) |
name |
指定主機名稱 |
| appBase |
應用程式基底本目錄,即存放應用程式的目錄 |
| unpackWARs |
如果為true,則tomcat會自動將WAR檔案解壓,否則不解壓,直接從WAR檔案中運行應用程式 |
| Logger ( 表示日誌,調試和錯誤資訊) |
className |
指定logger使用的類名,此類必須實現org.apache.catalina.Logger 介面 |
| prefix |
指定log檔案的首碼 |
| suffix |
指定log檔案的尾碼 |
| timestamp |
如果為true,則log檔案名稱中要加入時間,如下例:localhost_log.2001-10-04.txt |
| Realm ( 表示存放使用者名稱,密碼及role的資料庫) |
className |