JSP中的路徑

2022-03-07 21:10:46 字數 1625 閱讀 5640

所有路徑一律使用絕對路徑,就是以"/"開頭的或者帶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 注意著後面是有乙個反斜槓的 讓後我們談下 相...