Web應用中路徑問題
阿新 • • 發佈:2018-12-06
絕對路徑:指無法改變的路徑,根據給出的路徑可以準確定位的路徑。(帶訪問協議的路徑)
本地據對路徑:帶有碟符的路徑。如: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%>">