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和war exploded的区别

此时在tomcat的文件目录中不会有解压的war文件夹。如果用idea, 它会在${user.home}/.IntelliJIdea/system/tomcat 目录下生成项

目的文件夹,里面包含了tomcat的配置,日志等信息。/conf/Catalina/localhost 目录下有 *.xml 配置文件,指定了项目的路径

Tomcat部署时war和war exploded的区别

Tomcat部署时war和war exploded的区别

区别类似于eclipse中的两种方式,一种是直接将项目部署在webapps目录下(相当于war exploded模式,热部署),还是将项目

打包后的war包放到磁盘中webapps目录下的区别(相当于war模式)

1.3 这两种方式得部署方式是不一样的,因此在获取项目的相对路径的时候得到的结果是不一样的

String contextPath = request.getSession().getServletContext().getRealPath("/");

通过上面代码获取项目的相对路径时,

war 模式获得的是Tomcat所在目录下该子项目的位置

war exploded 模式获得的是该项目在工作区下的目标路径