IDEA Tomcat 部署 war和war exploded的区别
war模式:将WEB工程以包的形式上传到服务器 ;
war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;
两者的区别
区别1
(1)war模式是打包发布模式,先打成war包,再发布;
(2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。
因此这种方式支持热部署,一般在开发的时候也是用这种方式。
在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,
这样的话修改的jsp界面什么的东西才可以及时的显示出来。
区别2
两种不同的部署方式部署的路径不一样,同样造成了代码中获取项目根路径也不一样。
通过war模式,最终打包部署到所使用的Tomcat的webapps目录下(通常如果选择的tomcat是local,那么就是tomcat安装路径下的webapps目录)。
通过war exploded模式,最终打包部署到项目target的位置。
热部署步骤
使用热部署的话,除了上述的deployment方式的选择外,
还需要对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。
update resources:只热部署resource目录的文件(jsp、HTML、css等);
update classes and resources:java类和资源文件都会热部署。
设置方法
其它说明:
on update action
这个是手动触发,就是有一个刷新图标刷新
一般设置为update classes and resources
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
这个是idea自动触发,一般设置为 Do nothing
自动刷新会浪费很多内存,CPU等等
update classes and resources ----- 运行模式下(jsp 立即生效,java 需要redeploy才可生效)
update classes and resources ----- 调试模式下(java、jsp 都立即生效)