您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Tomcat中如何清理緩存,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一、關于Tomcat“緩存”的介紹
很多時候大家喜歡把tomcat的work目錄里的東西叫做緩存,其實那不是很恰當,work目錄只是tomcat的工作目錄,也就是tomcat把jsp轉換為class文件的工作目錄,這也正是為什么它叫work目錄而不是cache目錄的原因。 jsp,tomcat的工作原理是當瀏覽器訪問某個jsp頁面時,tomcat會在work目錄里把這個jsp頁面轉換成.java文件,比如將index.jsp轉換為index_jsp.java文件,而后編譯為index_jsp.class文件,最后tomcat容器通過ClassLoader類把這個index_jsp.class類裝載入內存,進行響應客戶端的工作。
tomcat會定時稍描容器內的jsp文件,讀取每個文件的屬性,當發現某個jsp文件發生改變時(文件的最后修改時間與上次稍描時不相同時),tomcat會重新轉換、編譯這個jsp文件。但是tomcat的稍描是定時的不是實時的,這也正是為什么jsp文件修改后需要幾分鐘的時間來等修改過的jsp生效。當然為了即刻生效,很多老前輩都會建議在修改jsp頁面后立即清除work目錄里的文件。
另外,tomcat容器中,對轉換后的java文件(比如:index_jsp.java)的編譯最大只支持64k,所以在其他容器中的jsp移植到tomcat容器中時會遇到大jsp文件會發生無法編譯的情況,所以建議把jsp中的業務邏輯寫入單獨的類,在jsp中通過調用這個類的靜態方法來執行,并將jsp頁面中的js提取出來放到單獨的js文件內。
二、Tomcat“緩存”的清理
由于很多時候我們在修改jsp的內容后,希望能立即生效,自然就不愿意等幾分鐘讓tomcat自動刷新了(根據本人以往的經驗,大部分情況下還是能馬上生效的)。那么下面還是來介紹三種清理的方法:
方法1:
conf/server.xml文件
Context path中間加上reloadable="true"
例如:<Context path="" docBase="" reloadable="true">
方法2:
刪除work目錄下的緩存文件
可以把Catalina目錄刪除;
注意:不能把work整個目錄刪除,不然重啟tomcat 時,會把conf/web.xml刪除掉,這樣在啟動時,日志 會提示:No Default web .xml,且訪問頁面會顯示404錯誤;
方法3:
在jsp頁面上方加上如下代碼,這樣的也可以使該jsp能實時加載,每次訪問都會重新把這個jsp頁面轉換成.java文件
<meta http-equiv="Expires" content="0">
<meta http-equiv="kiben" content="no-cache">
關于“Tomcat中如何清理緩存”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。