1.war和exploed
1.1 区别
war模式:将web工程以包的形式上传到服务器
war exploded:将web工程以当前文件夹的位置关系上传到服务器
1.war模式这种可以称之为是发布模式,先打成war包,再发布
2.war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
3.在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。
1.2 注意
这两种方式得部署方式是不一样的,因此在获取项目的相对路径的时候得到的结果是不一样的。
2.tomcat的设置
2.1 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
2.2 on frame deactivation
意思是 IDE 失活时做什么,就是说 IDE 失去焦点时做什么。
Do nothing --------- 什么都不做
update resources ---- 更新静态的资源,比如 html,js,css 等 运行模式和调试模式都是立即生效。
update classes and resources ---- 更新 java,jsp 和静态资源 同上。
2.3 最佳设置
因为 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 都立即生效)
3.jrebel 插件使用的注意事项
启动时选择jrebel运行
ctrl+shift+f9
1.更改sql语句不能更新
2.更改service不能更新