设置ItelliJ IDEA里修改jsp不重启tomcat

On Upate Action 与 On Frame Deactivation 这两个选项的设置,依赖于 项目的部署方式 是war包 还是 exploded ,看下面的gif:

idea 重启 Updating indexes_idea修改tomcat


我们只讲exploded模式下的设置,因为这个我们用的最多,开发模式,开发完成后 直接用maven的 package命令打包就行了,所以用的最多的 也是最灵活的就是exploded 开发模式。exploded模式 实际运行的就是target目录下的kao文件夹。

On Update action:

首先来看 on update action 相关的解释,从字面上理解 就是 手工触发 update 动作的时候 做什么:

idea 重启 Updating indexes_jsp不重启tomcat_02


idea 重启 Updating indexes_idea修改tomcat_03

  • 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调试模式下,都是立即生效。刷新下页面就可);
  • Redeploy ----- 重新部署,发布到tomcat里,不重启tomcat,而是把原来的删掉,然后重新发布。
  • Restart server ----- 重启tomcat。

On frame deactivation:

再来看on frame deactivation ,意思是 IDE 失活时 做什么,就是说 IDE 失去焦点时 做什么。

  • Do nothing --------- 什么都不做
  • update resources ---- 更新静态的资源,比如html,js,css等 运行模式和调试模式都是立即生效。
  • update classes and resources ---- 更新java,jsp和静态资源 同上。

总结,这样设置是最佳的选择:

idea 重启 Updating indexes_java_04


因为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 都立即生效)