關於Tomcat編譯JSP

最近在項目中,需要修改一個jsp的的內容,主要是設計裏面的java代碼,在對代碼就行修改之後(爲了防止出錯,特意把原來的jsp文件備份了一個,另外copy了一份jsp),由於新的jsp執行出錯,所在就直接把原來的jsp文件放回去

再次訪問jsp的時候,發現報錯是原來的jsp上面的錯誤,但是明明那個jsp文件已經刪除了。

於是上網查資料,發現Tomcat在編譯jsp文件的設計:在對jsp進行訪問的時候,Tomcat會把jsp文件的修改時間與最近一次編譯這個jsp文件的時間戳進行對比,若jsp文件的修改時間小於或者等於最近一次編譯的時間,tomcat就不會再進行一次編譯,而是直接把Tomcat的class文件供外部訪問(JSP文件最終會被編譯成class文件),所以也就出現了我上述說的問題,因爲我是複製了jsp文件,所以老的jsp文件的修改時間是不是最新的,所以Tomcat不會再次進行編譯,而是使用原來的class文件

解決辦法:1  對要訪問的jsp文件的就行任意不影響代碼的操作比如換行、加空格

2 刪除Tomcat的work目錄,這時Tomcat就會重新編譯jsp文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章