Tomcat部署时war和war exploded的区别
(摘自https://blog.****.net/xlgen157387/article/details/56498938)
war模式:将WEB工程以包的形式上传到服务器。
war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器。
1.1 war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;
工程target目录下会生成war包, 并且解压后的war包会被部署到tomcat的webapp 目录下
注意:如果application-context 设置为 /, tomcat目录下不会有解压后的war文件,只有指定文件目录,才会生成文件夹,这个文
件夹作为项目的根目录
1.2 war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持
热部署,一般在开发的时候也是用这种方式。
在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的东西才可以及时的显示出来。
此时在tomcat的文件目录中不会有解压的war文件夹。如果用idea, 它会在${user.home}/.IntelliJIdea/system/tomcat 目录下生成项
目的文件夹,里面包含了tomcat的配置,日志等信息。/conf/Catalina/localhost 目录下有 *.xml 配置文件,指定了项目的路径
区别类似于eclipse中的两种方式,一种是直接将项目部署在webapps目录下(相当于war exploded模式,热部署),还是将项目
打包后的war包放到磁盘中webapps目录下的区别(相当于war模式)
1.3 这两种方式得部署方式是不一样的,因此在获取项目的相对路径的时候得到的结果是不一样的
String contextPath = request.getSession().getServletContext().getRealPath("/");
通过上面代码获取项目的相对路径时,
war 模式获得的是Tomcat所在目录下该子项目的位置
war exploded 模式获得的是该项目在工作区下的目标路径