JavaScript中獲取當前專案的絕對路徑

jsjliuyun發表於2014-07-20

最近在做JavaWeb專案相關的東西,幾乎每天都遇到很多問題,主要是因為自己對JavaWeb方面的知識不是很清楚,儘量把自己在專案中遇到的問題都記錄下來,方便以後查閱。

在我們的專案中有這樣的需要,當在頁面停留時間過長時,自動調回主頁面first.jsp,所以我就寫了個load.js程式碼檔案,然後在每個jsp頁面上都引用它,這樣就出現了問題,因為每個頁面不都是在WebRoot的根目錄下的,有可能是在其子目錄下,如下圖所示:


所以對於每個jsp頁面所跳轉回主頁面first.jsp的路徑就不相同,所以必須要用絕對路徑。(上篇播客中也說了,在JavaWeb專案中儘量使用絕對路徑,因為絕對路徑是肯定不會出現錯誤,而相對路徑如果引用錯誤就會出現問題)

所以在js程式碼中怎麼獲取當前專案的的絕對路徑這個問題就必須解決。

解決方法:

1.可以在每個jsp頁面是寫個隱藏域物件傳回當前頁面的路徑,而這種方法不可取,要改動的頁面較多,代價較大。

2.在load.js中獲取當前專案的絕對路徑,這樣的方法才是可取的。用字串處理來得到。

		   function getRootPath(){
			   var currentPagepath=location.href;
			   var pathName = window.document.location.pathname;
			   var pos = currentPagepath.indexOf(pathName);
			   var localhostPath = currentPagepath.substring(0,pos);
			   var projectName = pathName.substring(0,pathName.substr(1).indexOf("/")+1);
			   window.location.href=localhostPath+projectName+"/first.jsp";
		   }

每局程式碼的作用基本是命名上就可以看出。希望對大家有用哈!

相關文章