JSP tomcat 更新不生效

今天遇到一問題,更改好的jsp部署到tomcat後,不管如何頁面也不生效,最後才知道是tomcat的work目錄沒有清的緣由,藉此機會也特意看了下work目錄的做用以及原理,作個記錄學習下:java

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

相關文章
相關標籤/搜索