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


轉載自:
https://blog.csdn.net/xlgen157387/article/details/56498938

war和war exploded的區別
在使用idea開發項目的時候,部署Tomcat的時候通常會出現下邊的情況:
這里寫圖片描述
是選擇war還是war exploded這里首先看一下他們兩個的區別:

war模式:將web工程以war包的形式上傳到服務器
war exploed模式:將web工程以當前文件夾的位置關系上傳到服務器

war模式這種可以稱之為是發布模式,看名字也知道,這是先打包war包,再發布;
war exploded模式是直接把文件夾,jsp頁面,classes等等移到Tomcat部署文件夾里面,進行加載部署。因此這種方式支持熱部署,一般在開發的時候也是用這種方式。
在平時開發的時候,使用熱部署的話,應該對Tomcat進行相應的設置,這樣的話修改的jsp界面什么的東西才可以及時的顯示出來
這里寫圖片描述
修改箭頭指向的位置,這樣的話就可以實現熱部署。
使用war模式開發的時候遇到的坑
項目代碼的位置如下:
這里寫圖片描述
上述項目為SSM項目

部署使用的Tomcat位置:
這里寫圖片描述

用於獲取上下文環境絕對路徑的代碼:
String contextPath = request.getSession().getServletContext().getRealPath("/");
1
兩種方式的實驗過程和結果:
在使用war模式開發的時候,通過下邊這段代碼獲取項目的相對路徑:

String contextPath = request.getSession().getServletContext().getRealPath("/");
1
war模式始終是獲取到的路徑如下:
這里寫圖片描述
其中c:\Software\apache-tomcat-8.0.32是我Tomcat的所在位置。
可以看出通過war模式是最終打包部署到Tomcat的位置。

然后再看看war exploaded模式,同樣進行設置,運行同一段代碼,運行結果如下:
這里寫圖片描述
可以看出最終得到的是我這個項目的位置,其實就是這個項目target的位置。

總結
根據上述的實驗結果可以看到這兩種方式的部署方式是不一樣的,因些在獲取項目的相對路徑的時候得到的結果是不一樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM