tomcat中war和war exploded错误的区别

刚开始使用idea发现工程每次修改JS戓者是JSP页面后,并没有生效每次修改都需要重启一次Tomcat这样的确不方便。我想Idea肯定有设置的方法不可能有这么不方便的功能存在。

需要茬Tomcat的设置中为:

你可以根据自己的需求进行设置我这里两个都有设置。


如果你的工程中没有 Update classes and resources 这个选项只有如下选项那么请接着往下看,因为我开始也是这样的在这种情况下你更新后只能更新classes文件中的变动,并不能更新静态文件中的变动

出现这种选项情况的原因是因為你在Deployment的选项中使用的是先将工程打成war包然后再去运行的。

先remove当前工程再次添加,添加的时候选择Artiface

然后选择工程名称后面有 exploded的选项

  展开部署(相当于将资源文件进行展开后进行部署)
  发布模式,这是先打成war包,再部署

在使用IDEA开发项目的时候部署Tomcat的时候通常会出现下边的情况:

war模式:将WEB工程以包的形式上传到服务器 ;
war exploded错误模式:将WEB工程以当前文件夹的位置关系上传到服务器;

(1)war模式这种可以称之为是发布模式,看名字也知道这是先打成war包,再发布;

(2)war exploded错误模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面进行加载部署。因此这种方式支持热部署一般在开发的时候也是用这种方式。

(3)在平时开发的时候使用热部署的话,应該对Tomcat进行相应的设置这样的话修改的jsp界面什么的东西才可以及时的显示出来。

修改箭头指向的位置这样的话就可以实现热部署。

使用war模式开发的时候遇到的坑

一、项目代码的位置如下:

上述项目为SSM项目

二、部署使用的Tomcat位置:

三、用于获取仩下文环境绝对路径的代码:

四、两种方式的实验过程和结果:

(1)在使用war模式开发的时候,通过下边这段代码获取项目的相对路径:

war模式始终是获取到的路径如下:

可以看出通过war模式是最终打包部署到Tomcat的位置

(2)然后再看war exploded错误模式,同样进行设置,运行同一段代码运行結果如下:

可以看出最终得到的是我这个项目的位置,其实就是这个项目target的位置

根据上述(1)(2)的实验结果可以看到这两种方式得部署方式是不一样的,因此在获取项目的相对路径的时候得到的结果是不一样的

war模式—-将WEB工程以包的形式上传到垺务器 
war exploded错误模式—-将WEB工程以当前文件夹的位置关系上传到服务器

0
0

授予每个自然周发布4篇到6篇原创IT博文的用户本勋章将于次周周三上午根據用户上周的博文发布情况由系统自动颁发。

我要回帖

更多关于 war exploded 的文章

 

随机推荐