設置ItelliJ IDEA里修改jsp不重啟tomcat


設置ItelliJ IDEA里修改jsp不重啟tomcat

On Upate Action 與 On Frame Deactivation 這兩個選項的設置,依賴於 項目的部署方式 是war包 還是 exploded ,看下面的gif:

技術分享

這里實在是太靈活了,如果要講 太費時間了,我們只講exploded模式下的設置,因為這個我們用的最多,開發模式,開發完成后 直接用maven的 package命令打包就行了,所以用的最多的 也是最靈活的就是exploded 開發模式。exploded模式 實際運行的就是target目錄下的kao文件夾。

首先來看 on update action 相關的解釋,從字面上理解 就是 手工觸發 update 動作的時候 做什么:

技術分享

技術分享

update resources ---- 更新靜態的資源,比如html,js,css等 運行模式和調試模式都是立即生效。

update classes and resources ---- 更新java,jsp和靜態資源(

\1. java 修改后,會被編譯成.class 然后覆蓋到target/kao文件夾下,IDE調試模式的情況下,立即生效。IDE運行模式下,不立即生效,需要redeployed才可生效。

\2. jsp修改后,再次被訪問的時候,會自動更新,重新編譯成.java---->.class 保存在tomcat的work目錄下。由於是訪問時才檢測是否修改,是否需要重新編譯,所以 IDE 運行模式 和 IDE調試模式下,都是立即生效。刷新下頁面就可);

redeployed ----- 重新部署,發布到tomcat里,不重啟tomcat,而是把原來的刪掉,然后重新發布;

restart server ----- 重啟tomcat

------------------------------------------------------------------------------------------------------------------------

再來看on frame deactivation ,意思是 IDE 失活時 做什么,就是說 IDE 失去焦點時 做什么。

技術分享

Do nothing --------- 什么都不做

update resources ---- 更新靜態的資源,比如html,js,css等 運行模式和調試模式都是立即生效。

update classes and resources ---- 更新java,jsp和靜態資源 同上。

驗證上方的結論看如下GIF:

靜態資源不用測試了,測試 On Update Action 的 (update classes and resources)在debug模式 與 運行模式下的差別。

1.運行模式下,jsp是 update classes and resources 是立即生效的,但是.java文件修改后 並不會立即生效。

技術分享

2.debug調試模式下,jsp和java文件修改 都會立即生效:

技術分享

3.測試on frame deactivation 即IDE 失去焦點時自動做一些事, 我們測試 讓其update classes and resources ,以調試模式為例,運行模式除了java 修改不會自動生效,其它一致;

技術分享

總結,這樣設置是最佳的選擇:

技術分享

因為On frame deactivation IDE失去焦點的情況下 自動觸發,而開發過程中 可能需要查詢資料 或 與人聊天 或干其它事,IDE需要不停的失去焦點。每次失去焦點就自動觸發 update ,CPU一下子 費很多,電腦瞬間變慢,所以沒有必要這樣,設置為Do nothing 最好,官方也默認的是 Do nothing。

On Update action ------- update classes and resources ----- 運行模式下(jsp 立即生效,java 需要redeploy才可生效)

On Update action ------- update classes and resources ----- 調試模式下(java、jsp 都立即生效)

=================完結了!!!!!!!!這塊非常靈活,這篇博客研究了一天 才寫出來,很多時候 不知道 如何組織 如何寫,才能更加 簡單明了。

關於一些小知識說明:

C:\Users\del-berlin.IntelliJIdea2017.1\system\tomcat\Unnamed_kao_4\work\Catalina\localhost\kao\org\apache\jsp ,jsp再第一次被訪問時,會被編譯成java 然后再被編譯成class ,然后放到 tomcat的work目錄下,但是IntelliJ 里,由於部署方式的原因 實際上是保存到了 上面的目錄里,而實際的項目運行中是保存到了tomcat的work目錄里:

技術分享

參考:http://www.mamicode.com/info-detail-1699044.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM