javascript
JSP tomcat 更新不生效
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
今天遇到一問題,更改好的jsp部署到tomcat后,無論如何頁面也不生效,最后才知道是tomcat的work目錄沒有清的原因,借此機會也特地看了下work目錄的作用以及原理,做個記錄學(xué)習(xí)下:
jsp,tomcat的工作原理是當(dāng)瀏覽器訪問某個jsp頁面時,tomcat會在work目錄里把這個jsp頁面轉(zhuǎn)換成.java文件,比如將index.jsp轉(zhuǎn)換為index_jsp.java文件,而后編譯為index_jsp.class文件,最后tomcat容器通過ClassLoader類把這個index_jsp.class類裝載入內(nèi)存,進(jìn)行響應(yīng)客戶端的工作。
tomcat會定時稍描容器內(nèi)的jsp文件,讀取每個文件的屬性,當(dāng)發(fā)現(xiàn)某個jsp文件發(fā)生改變時(文件的最后修改時間與上次稍描時不相同時),tomcat會重新轉(zhuǎn)換、編譯這個jsp文件。但是tomcat的稍描是定時的不是實時的,這也正是為什么jsp文件修改后需要幾分鐘的時間來等修改過的jsp生效。當(dāng)然為了即刻生效,很多老前輩都會建議在修改jsp頁面后立即清除work目錄里的文件。
另外,tomcat容器中,對轉(zhuǎn)換后的java文件(比如:index_jsp.java)的編譯最大只支持64k,所以在其他容器中的jsp移植到tomcat容器中時會遇到大jsp文件會發(fā)生無法編譯的情況,所以建議把jsp中的業(yè)務(wù)邏輯寫入單獨的類,在jsp中通過調(diào)用這個類的靜態(tài)方法來執(zhí)行,并將jsp頁面中的js提取出來放到單獨的js文件內(nèi)。
轉(zhuǎn)載于:https://my.oschina.net/u/1051372/blog/277732
總結(jié)
以上是生活随笔為你收集整理的JSP tomcat 更新不生效的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MRC和ARC混编
- 下一篇: PHP 判断是否包含某字符串