idea war模式与war exploded模式区别

本文深入探讨了在IntelliJ IDEA中使用War和Warexploded模式部署项目至Tomcat的过程。详细解释了两种模式下项目的构建、部署及热部署原理,以及它们在获取上下文路径上的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

war模式:将WEB工程以包的形式上传到服务器 war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器 war exploed部署时,不会将war包部署到tomcat中,也就是说tomcat的webapps目录下不会出现当前项目的文件,如果将项目改为war部署的方式,application context设置为/,tomcat也不会将项目部署到webapps中,因为application context就是项目再webapps路径下项目的根目录名。 好奇war exploded时是如何进行热部署,也没有将包存放到tomcat中,如何运行。 Tomcat 配置成War exploded,在运行时idea不会把项目放到tomcat webapps的路径下,而是复制一份足够的配置文件,到${user.home}/.IntelliJIdea/System/tomcat目录下:

也就是说每个项目都有属于自己的一份tomcat配置,互不干扰。 每个项目的配置文件夹中有一个/conf/Catalina/localhost/Root.xml

path是指在访问此项目时,是否需要添加额外的路径,如果为空,则直接使用域名或者ip就可以访问到该项目:127.0.0.1,这个值在idea中的Run/Debug Configurations中可以配置:

docBase是指要运行的项目的部署位置,F:\project\WiseEnergy\WiseEM-D\就是源代码的位置,target是由maven构建后生成的,\target\webapps\WiseEM-D目录就是maven build完成之后生成的项目。 也就是说,整个项目运行过程为:首先maven build项目,将构建结果写到项目的target目录下,然后idea复制一份tomcat的配置文件到${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("/"); war模式是获取tomcat的位置 war exploded

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值