war 和war explore的区别
节省时间的话直接看最下面详细解释
我们发布项目时选择war还是war explore?
简单了解
- war模式:将web工程以war包的形式上传到服务器
- war exploed模式:将web工程以当前文件夹的位置关系上传到服务器
进一步解释:
**war模式:**先打成war包,然后再发布到Tomcat的ROOT下,所以选择这个后,你再看下你的tomcat的root文件夹下,是刚打成的项目
**war exploded模式:**只编译,生成target;然后把当前的target文件夹的位置关系上传到服务器;没有打包到tomcat的ROOT下,这时是访问target下;所以你直接改target下的index.jsp文件,对应http://localhost:8080/下的页面也会修改的;war exploed模式比war模式快
详细解释:
- war exploed部署时,不会将war包部署到tomcat中,也就是说tomcat的webapps目录下不会出现当前项目的文件,
如果将项目改为war部署的方式,application context设置为/,tomcat也不会将项目部署到webapps中,因为application context就是项目再webapps路径下项目的根目录名。
好奇war exploded时是如何进行热部署,也没有将包存放到tomcat中,如何运行。 - Tomcat 配置成War exploded,在运行时idea不会把项目放到tomcat webapps的路径下,而是复制一份足够的配置文件,到KaTeX parse error: Undefined control sequence: \project at position 255: …指要运行的项目的部署位置,F:\̲p̲r̲o̲j̲e̲c̲t̲\WiseEnergy\Wis…{user.home}/.IntelliIdea/system/tomcat中,之后启动tomcat安装目录下的catalina.bat文件,tomcat读取配置文件,找到项目位置,然后就运行起来。
- war exploded支持热部署的原因:是由于该模式下是直接把文件夹、jsp页面、classes等等移到F:\project\WiseEnergy\WiseEM-D\target\webapps\下,只要修改其后台和前端代码或者配置文件,F:\project\WiseEnergy\WiseEM-D\target\webapps\对应的目录下的文件也会进行相应的改变,tomcat会运行此目录下的项目,为此可以读取到最新的源文件,因此这种方式支持热部署。
- war 和war exploded的不同模式下获取的上下文路径不同
String contextPath=request.getSession().getServletContext().getRealPth("/");
不同可以看下面链接
添加链接描述