tomcat中Context的path和docBase屬性
首先,我來做一有趣的實驗:
第一步:我在E盤建立了一個picture檔案包,裡面放一張圖片(cat.png)
第二步:我修改tomcat的service.xml配置,新增如下程式碼:
第三步:啟動tomcat,用瀏覽器訪問:http://127.0.0.1:8080/mytest/cat.png
(啟動成功)
怎麼可能呢?我訪問http://127.0.0.1:8080/mytest/cat.png,竟然成功顯示出了存放在我E盤裡面的圖面!
理由是:
<Context path="/mytest"
docBase:設定訪問web的應用或設定本地路徑。
Path:設定tomcat訪問應用的URL路徑。(URL路徑就是例如http://127.0.0.1:80……)
通俗說就是:配置了上面內容後,以後你訪問http://127.0.0.1:8080/mytest (Path內容)時,預設就是訪問的就是E:\picture (docBase內容)裡面的內容。
所以,我們可以通過修改Context的path屬性來指定url最終訪問的是哪個應用,而docBase指明該應用的具體
【拓展】
①至於reloadable:
如果這個屬性設為true,tomcat伺服器在執行狀態下會監視在WEB-INF/classes和WEB-INF/lib目錄下class檔案的改動,如果監測到有class檔案被更新的,伺服器會自動重新載入Web應用。
在開發階段將reloadable屬性設為true,有助於除錯servlet和其它的class檔案,但這樣用加重伺服器執行負荷,建議在Web應用的發存階段將reloadable設為false。
②關於以下tomcat自動生成的程式碼的說明:
<Context path="/Day1113web"
意思就是:當你訪問http://127.0.0.1:8080/Day1113web/...時,它預設訪問Day1113web/... ,為什麼 docBase不寫明什麼盤呢?只寫Day1113web系統哪裡知道他什麼盤?
因為:除非自己更改了,否則預設位置就是在tomcat的webapps下!你的tomcat的webapps下當然有Day1113web這一個專案在!
所以你可以發現,你在tomcat下建立了一個新專案時,它自動會在service.xml中生成:
<Context path="/你建的專案名" docBase="你建的專案名" reloadable="true"/>