1. 程式人生 > >Web應用中路徑問題

Web應用中路徑問題

絕對路徑:指無法改變的路徑,根據給出的路徑可以準確定位的路徑。(帶訪問協議的路徑)
本地據對路徑:帶有碟符的路徑。如:E:\BaiduNetdiskDownload(對於本地路徑,其實質是省略了file協議,帶協議實際路徑為:file:///E:\BaiduNetdiskDownload)
網路絕對路徑:帶網路訪問協議(如http)的路徑。


相對路徑:指參照路徑的不同,給出路徑的實際路徑可以發生改變的路徑。
雙斜槓開頭的相對路徑根據路徑所在檔案的不同,分為兩種:
(1)前臺相對路徑:由瀏覽器解析執行的程式碼中所包含的路徑。前臺相對路徑的參照路徑是web伺服器的根路徑(http://127.0.0.1:8080/


(2)後臺相對路徑:由伺服器解析執行的程式碼及檔案中所包含的路徑。後臺相對路徑的參照路徑是web應用的根路徑(http://127.0.0.1:8080/application/
不以斜槓開頭的相對路徑:無論前後臺路徑,參照路徑都是當前資源的訪問路徑,而不是資源儲存路徑。


web應用中,action=”test/login.acion”這種請求路徑時,如果返回當前頁面會出現瀏覽器路徑顯示重複或無法找到action路徑問題發生(因為參照路徑問題),有如下解決:
1、在test前加 /web應用名/
2、用EL獲取上下文路徑

${pageContext.request.contextPath
}/test/login.acion

3、自定義路徑,使action的路徑訪問參照這個basePath

<%
String path = request.getContextPath();
String basePath  = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

在< head>< /head>標籤里加如下:

<base href="<%=basePath%>">