war和war exploded區別

war和war exploded區別

在使用IDEA開發項目的時候,部署Tomcat的時候一般會出現下邊的狀況:apache

是選擇war仍是war exploded 這裏首先看一下他們兩個的區別:tomcat

war模式:將WEB工程以包的形式上傳到服務器 ;
war exploded模式:將WEB工程以當前文件夾的位置關係上傳到服務器;
  • 1
  • 2

(1)war模式這種能夠稱之爲是發佈模式,看名字也知道,這是先打成war包,再發布;服務器

(2)war exploded模式是直接把文件夾、jsp頁面 、classes等等移到Tomcat 部署文件夾裏面,進行加載部署。所以這種方式支持熱部署,通常在開發的時候也是用這種方式。jsp

(3)在平時開發的時候,使用熱部署的話,應該對Tomcat進行相應的設置,這樣的話修改的jsp界面什麼的東西才能夠及時的顯示出來。spa

修改箭頭指向的位置,這樣的話就能夠實現熱部署。.net

使用war模式開發的時候遇到的坑

1、項目代碼的位置以下:code

上述項目爲SSM項目。blog

2、部署使用的Tomcat位置:圖片

3、用於獲取上下文環境絕對路徑的代碼:開發

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

4、兩種方式的實驗過程和結果:

(1)在使用war模式開發的時候,經過下邊這段代碼獲取項目的相對路徑:

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

war模式始終是獲取到的路徑以下:

這裏寫圖片描述

其中C:\Software\apache-tomcat-8.0.32 是我Tomcat的所在位置。

能夠看出經過war模式是最終打包部署到Tomcat的位置。

(2)而後再看war exploded模式,一樣進行設置,運行同一段代碼,運行結果以下:

這裏寫圖片描述

能夠看出最終獲得的是我這個項目的位置,其實就是這個項目target的位置。

5、總結

根據上述(1)(2)的實驗結果能夠看到這兩種方式得部署方式是不同的,所以在獲取項目的相對路徑的時候獲得的結果是不同的。

 

轉自:Tomcat部署時war和war exploded區別以及平時踩得坑

相關文章
相關標籤/搜索