所有路徑一律使用絕對路徑,就是以"/"開頭的或者帶host的路徑。形如:
/imgs/1.jpg //推薦使用
應該盡量避免使用類似".","./","../../"等類似的相對該檔案位置的相對路徑。一方面,這樣當檔案移動時,很容易出問題。另一方面,絕對路徑用起來簡單。
imgs/1.jpg; ../imgs/1.jpg; ./imgs/1.jpg絕對路徑(absolute path)以web 站點根目錄(形如:http://localhost:8080/)為參考基礎的目錄路徑。之所以稱為絕對,意指當所有網頁引用同乙個檔案時,所使用的路徑都是一樣的。形如:
"." -- 代表目前所在的目錄,相對路徑。 如:文字 或
"/" -- 代表根目錄,絕對路徑。 如:文字 或
"d:/abc/" -- 代表根目錄,絕對路徑。
前端——伺服器的根目錄"/":所代表的路徑形如:
http://localhost:8080/後台——web應用的根目錄"/":所代表的路徑形如:
所有的html頁面中的絕對位址都是相對於host根目錄(http://localhost:8080/)的,是由瀏覽器解析。路徑前的"/"代表host根目錄。
注:host代表指定請求資源的intenet主機和埠號。
jsp頁面中html標籤如
路徑前面的"/"代表(http://localhost:8080/)。
eg:注意這裡是因為,後面講到的basepath。
//絕對url位址是http://localhost:8080/myaction //路徑錯誤其用到的地方有:forward、url-pattern
servlet中request.getrequestdispatcher(address);假設你要forward到專案根目錄下的user目錄下a.jsp應該這麼寫:
request.getrequestdispatcher("/user/a.jsp").forward(request, response);然而sendredirect中redirect是客戶端的行為,所以應該是以瀏覽器解析的方式來書寫url;
新建乙個jsp頁面自動生成如下**:
string path = request.getcontextpath();說明:string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";
%>
base標籤的href屬性規定頁面中所有相對鏈結的基準url。解決了前面敘述的前後臺路徑不統一的問題。
eg:
/counter/one.jsp">one.jsp//注意path後面沒有"/",得加上。html頁面輸出為:
因為有標籤的存在,相對路徑會失效,
例如:
也就是說:所有前面不帶"/"或者host的路徑a,瀏覽器解析的url為: basepath+a。
從而形成了前後臺路徑使用的統一。
JSP中的路徑
一 客戶端路徑 在瀏覽器解析的路徑 1.絕對路徑 servletdemo css style.css 前頭有斜槓,且必須加上專案名 requset.getcontextpath css style.css 2.相對路徑 css style.css 二 服務端路徑 服務端解析的路徑 1.絕對路徑 cs...
JSP中的路徑問題
在jsp中經常會遇到路徑的問題,出現404的錯誤或者是無法顯示.這個問題可以從以下幾個方面來解決 1 鏈結或表單提交的路徑 2 重定向和 的路徑 3 在myeclipse有jsp的兩種模板advanced 和 base templates的路徑問題 以下為解決之道 1 表單提交和鏈結都是從客戶端請求...
jsp中的路徑問題
在學jsp的時候我每次都遇到路徑的問題,每次都不能夠說100 的把這搞定,這讓我很煩惱,今天下午花了點時間來把路徑問題整理了下。一 首先我們在載入專案 我的專案名稱是finalexam 是的路徑是http localhost 8080 finalexam 注意著後面是有乙個反斜槓的 讓後我們談下 相...