1. 程式人生 > >jsp 頁面 tomcat部署不生效

jsp 頁面 tomcat部署不生效

今天遇到一問題,更新後的jsp頁面部署到伺服器的tomcat下,頁面不生效。最後知道是tomcat的work目錄下沒有清除的原因,現在來了解一下tomcat的相關原理

tomcat的原理是當瀏覽器訪問某個頁面時,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)的編譯只有64kb,所以在其他容器的jsp移植到tomcat容器中會遇到jsp檔案會發生無法編譯的情況,所以建議把jsp中的業務邏輯寫入單獨的類,在jsp頁面中通過呼叫這個類中的靜態方法來執行,並將jsp中js提取出來放到單獨的js中執行。