jsp路徑問題

2021-07-04 07:16:19 字數 1814 閱讀 5211

相對路徑-以引用檔案之網頁所在位置為參考基礎,而建立出的目錄路徑。因此,當儲存於不同目錄的網頁引用同乙個檔案時,所使用的路徑將不相同,故稱之為相對。

絕對路徑-以web站點根目錄為參考基礎的目錄路徑。之所以稱為絕對,意指當所有網頁引用同乙個檔案時,所使用的路徑都是一樣的。

其實絕對路徑與相對路徑的不同處,只在於描述目錄路徑時,所採用的參考點不同。由於對**上所有檔案而言,根目錄這個參考點對所有檔案都是一樣的,因此,運用以根目錄為參考點的路徑描述方式才會被稱之為絕對路徑。

以下為建立路徑所使用的幾個特殊符號,及其所代表的意義。

./開始是相對於當前路徑

/是相對於根目錄的絕對路徑

../是退到它的上一級目錄

解決jsp中的路徑問題來自:

在jsp中的如果使用 "相對路徑" 則有可能會出現問題.

因為網頁中的 "相對路徑" , 他是相對於 "url請求的位址" 去尋找資源.

上面這句話是什麼意思呢 ?

這時候, 瀏覽器會鏈結到 "登陸頁面" (login.jsp)

在login.jsp檔案內包含了如下 "部分**":

註冊使用者

看~~為什麼會出現"/jsp/jsp/register.jsp"呢?

因為, 網頁中的"相對鏈結", 是相對於你所 "請求的url路徑" 所決定的. 即:

上面的問題,就是呼叫頁面和被呼叫頁面的url不同所造成的,

此類錯誤也常常會出現在2個頁面之間進行 "**"(forward) 操作的時候。

因為forward是在後台進行的,對客戶端來說是透明的。(即: url不改變,而資料內容卻是另乙個頁面返回來的。。。)

那麼如何解決這問題呢?()

賦值給basepath變數

string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";

// 將 "專案路徑basepath" 放入pagecontext中,待以後用el表示式讀出。

pagecontext.setattribute("basepath",basepath);

%> )

但是這樣做有乙個很不好的地方,那就是我們必須要在每個鏈結的前面都要加上「$」

如果這樣做的話,將是一件很可怕的事情。 (

二)方法二: 利用html中的標籤(推薦)

下面是對html中的的介紹:

base 元素可規定頁面中所有鏈結的基準 url

預設情況下,頁面中的鏈結(包括樣式表、指令碼和影象的位址)都是相對於當前頁面的位址(即:瀏覽器位址列裡的請求url)。

我們可以使用標籤中的href屬性來設定,所有的「相對基準url」。

上面說的是什麼意思呢?我們來看看**就知道咯~~

):string basepath = request.getscheme()+"://"+request.getservername()+":"+request.getserverport()+path+"/";

%>

// 這裡我們就可以直接使用相對路徑(即: 相對於base標籤)

login

大概看完了上面的**,或許您還是有些疑惑 *_*~~

不過當您看到了,下面的**,可能就豁然開朗了 (*^__^*) 嘻嘻……。

">

// 設定了後,相對路徑,相對於的就是base中的路徑,而不再是瀏覽器位址的請求路徑啦~~~

login

">

jsp路徑問題

今天在intellij idea 中做的專案 提交到svn 同事檢出後 發現各種資源找不到 或者請求的路徑不正確 這是由於在idea中部署的專案是根路徑 而同事部署不是的 搞得有點鬱悶 最後發現乙個號辦法 在jsp中新增標籤專案中所有的路徑都是相對base路徑的就好了 如下 string path ...

JSP路徑問題

求大神指導.關於 的作用是取出部署的應用程式名 可以使用 也同時可以使用 request.getcontextpath 達到同樣的效果 例如 在jsp頁面 返回首頁 在servlet裡面 重定向時加上 request.getcontextpath response.sendredirect requ...

jsp 路徑問題

路徑問題學習 問題 在頁面中,乙個頁面跳轉另乙個頁面,需要寫相對路徑。但是如果 兩個頁面在不同的資料夾內,就需要先跳出然後再進入的動作。這樣 就會造成一旦,需要跳出的檔案所在的路徑修改了,原有相對路徑也作廢了。這樣 維護起來太麻煩 解決 乙個檔案跳轉另一檔案的時候,跳轉的起始點都定位在專案根目錄下也...