javaweb中相對路徑的使用


javaweb中無論是在JSP頁面中 java類中配置文件中都有對資源的引用。
都涉及到相對路徑,相對路徑的概念這里不在贅述。

我們說其實在一個web項目里用到相對路徑的地方無非就是上面幾種情況。
所以下面我們就說說,怎么在JAVAWEB中正確的使用相對路徑
一、jsp或者html頁面中的相對路徑
在jsp或者html頁面中有很對標簽涉及到標簽的引用
比如img,a,form,script,link等
這些標簽的資源我們一般都會使用相對路徑,而且這些資源都是在客戶端進行解析的。下面我們就用實際的例子去探究下怎么在jsp或者html中正確使用相對路徑

 

這是文件的目錄結構,我們在path.jsp寫上<a href="pathHtml.html">jsp點我</a>這個標簽

我們在pathHtml.html中寫上<a href="path.jsp">html點我</a>這個標簽。運行WEB項目。

首先來到pathHtml.html頁面,點擊鏈接,結果如下: 

 正確的跳到了指定的頁面,接着點擊途中的鏈接,結果如下:

跳到了項目目錄下的pathHtml.html,當然這個頁面是不存在的。為什么同樣的相對路徑指定格式,在JSP和HTML中的結果

相差這么大,我們知道相對路徑最終還是要轉換為絕對路徑使用的,轉換成絕對路徑就必須知道相對路徑的基准。所以我們看

到上面的結果首先想到的是在默認的HTML頁面和JSP頁面中相對路徑的基准是不一樣的。 在HTML中base標簽用來知道

相對路徑的基准,在jsp中自動給我們加了一個base標簽並且指定基准是項目路徑,所以我們無論在哪級目錄中寫的相對路徑

都是基於項目路徑的。而默認的HTML頁面沒有base標簽,此時相對路徑就是相對當前頁面的路徑。故得到上面的測試結果。

所以我們為了防止出錯一般在JSP頁面中使用相對路徑前都加上request.getContextPath(),讓基准始終是項目路徑,當然jsp

頁面中默認的base標簽已經能達到上述的目的了。

其他標簽相對路徑使用和上述一致,希望讀者自己動手驗證下。

二.在java類中使用相對路徑

在java類中包括各種servlet中使用相對路徑一般有兩種情況.

1.servlet中的頁面跳轉指定頁面的相對路徑

2.類中對資源的引用,即文件的讀寫

 

我們分別對這兩種情況探討一下怎么能正確的在JAVA類中使用相對路徑

我們知道在servlet中頁面跳轉有兩種方式,頁間跳轉和重定向。

重定向的相對路徑一定是相對於當前servlet的虛擬路徑的,這點的使用上可以把servelt看着一個html頁面在其中使用

相對路徑的規則和在上述的HTML頁面規則一致。

頁面跳轉相對路徑也是相對當前sevlet.

兩者的區別:

(1)原理上:重定向是客戶端請求,服務器返回重定向操作,客戶端執行,

頁面跳轉是服務器內部頁面或者servlet之間的跳轉。

(2)使用上:兩者的根目錄不同,重定向的根目錄是服務器地址這點和html文件一致,一般只要是

客戶端解析的地址根目錄都是相對服務器;而頁面跳轉根目錄是項目路徑,這個區別很重要。

 

 

在java類中對資源的引用

//這個以后補充

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM