1. 程式人生 > >jsp報錯io.FileNotFoundException: work/Catalina/localhost/jsp/app/order_jsp.class(Permission denied)

jsp報錯io.FileNotFoundException: work/Catalina/localhost/jsp/app/order_jsp.class(Permission denied)

今天在系統維護時,發現jsp無法開啟,顯示_jsp.class異常FileNotFoundException  後面還有個許可權不夠! 1.重啟tomcat 2.注意linux許可權,再重啟tomcat

認真看了一下這個錯誤!發現是在tomcat/work目錄找不到jsp。開始普及!

當瀏覽器訪問某個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生效

也就是說,tomcat會將jsp進行編譯後,按目錄儲存於work目錄!

所以就對於JSP和freemarker的效率問題!JSP首次載入會比較慢,當裝載到記憶體後,JSP效率將大大提升!