java獲取項目路徑的幾種實現(xiàn)方式
前端獲取當(dāng)前項目路徑
<script type="text/javascript">
//項目上下文
var context="<%=request.getContextPath()%>";
</script>
后臺
1.得到當(dāng)前工程的根路徑,代碼如下
String path = request.getContextPath();
2.得到登錄的計算機域名,如果沒有域名就得到IP
request.getRemoteHost();
3.得到登錄計算機的IP
request.getRemoteAddr();
4.例如:
String path = request.getContextPath(); String basePath = request.getScheme()+"??/"+request.getServerName()+":"+request.getServerPort()+path+"/";
一般我們做項目時候基本都會碰到上傳文件
本人親測,上傳文件后端必須得用絕對路徑,用http://IP:80/項目名 的路徑方法是行不通的。
但是有時候由于服務(wù)器的分布式布局,絕對路徑寫死是很麻煩的時候,所以最后是從代碼中讀取路徑。
1、String path = request.getContextPath();
- 運行在Tomcat得到的路徑 /talentrecommend01
2、String path1 = System.getProperty(“user.dir”);
- 運行在Tomcat上得到的路徑 E:\apache-tomcat-7.0.65\bin
- 未運行Tomcat時得到的路徑 E:\myeclipse\project\talentrecommend01
- System.getProperty(“參數(shù)”),根據(jù)參數(shù)的不同可以得到很多值,具體有哪些參數(shù)可百度。
3、String path2 = request.getServletContext().getRealPath(“/”) ;
- 運行在Tomcat服務(wù)器上得到的路徑 E:\apache-tomcat-7.0.65\webapps\talentrecommend01\
- 這三種最常用的方法是3,最好有個辦法把path2放在一個全局變量中,且在項目運行時候生成一次,項目結(jié)束時候摧毀
知識有限,我只把它單獨放在一個類中
public class SystemUtil {
/**
* @author cy
* @description 得到項目的根目錄的絕對路徑
*/
public static String getPath(HttpServletRequest request){
String path = request.getServletContext().getRealPath("/");
path = path.replaceAll("\\\\", "/");
return path;
}
}
個人檢測:

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis-Plus 分頁插件配置的兩種方式實現(xiàn)
本文主要介紹了MyBatis-Plus 分頁插件配置的兩種方式實現(xiàn),包括使用PaginationInterceptor和MybatisPlusInterceptor兩種方式,具有一定的參考價值,感興趣的可以了解一下2025-03-03
mybatis-plus配置攔截器實現(xiàn)sql完整打印的代碼設(shè)計
在使用mybatis-plus(mybatis)的時候,往往需要打印完整的sql語句,然而輸出的日志不是很理想,因為sql語句中的關(guān)鍵字段信息都是用?來代替的,所以本文分享了一下自己寫了一個攔截器實現(xiàn)了sql完整的打印,需要的朋友可以參考下2024-06-06
Spring Security中successHandler無效問題及解決
這篇文章主要介紹了Spring Security中successHandler無效問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
java中@ConfigurationProperties失效的問題解決
在Java開發(fā)中,使用@ConfigurationProperties注解讀取配置文件時,如果配置類中的屬性設(shè)置為static,將無法正確讀取配置值,本文就來介紹一下具體解決方法,感興趣的可以了解一下2024-09-09
spring event 事件異步處理方式(發(fā)布,監(jiān)聽,異步處理)
這篇文章主要介紹了spring event 事件異步處理方式(發(fā)布,監(jiān)聽,異步處理),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
數(shù)據(jù)定位在java購物車系統(tǒng)中的應(yīng)用
實現(xiàn)"加入購物車"功能,數(shù)據(jù)定位至關(guān)重要,它通過用戶ID和商品ID等標(biāo)識符實現(xiàn)快速查詢和數(shù)據(jù)一致性,主鍵、外鍵和聯(lián)合索引等數(shù)據(jù)庫技術(shù),以及Redis緩存和并發(fā)控制策略如樂觀鎖或分布式鎖,共同保障了購物車系統(tǒng)的查詢效率和數(shù)據(jù)安全,這些機制對高并發(fā)和大數(shù)據(jù)量的場景尤為重要2024-10-10
Java中valueOf和parseInt的區(qū)別詳解
這篇文章主要介紹了Java中valueOf和parseInt的區(qū)別詳解,在編程中,遇到類型轉(zhuǎn)換,好像會經(jīng)常用到 parseInt 和 valueOf,當(dāng)然這里只拿 Integer 類型進行陳述,其他類型也是雷同的,需要的朋友可以參考下2024-01-01

