JavaEE細節問題01——訪問web資源的相對路徑和絕對路徑

0.幾種常見的路徑:

http://localhost:8080/myProject/servlet/testServlet瀏覽器

servlet/testServlet服務器

/servlet/testServletspa

那麼看到這些應該怎麼判斷呢?資源


1.首先區分路徑的分類

路徑分兩種:相對路徑,絕對路徑。部署

絕對路徑:帶有完整URL地址如:http://localhost:8080/myProject/servlet/testServlet 或者 路徑最前面用/開頭servlet

相對路徑:相似:servlet/testServletit


2.對於絕對路徑:

完整URL地址的不用說,你們都懂,直接訪問。test

對於路徑前面有斜線開頭的:總結

若是是服務器中須要使用這樣的路徑,就是取得服務器當前Web應用爲開始。項目

若是是瀏覽器中使用了這樣的路徑,就是取得服務器的地址爲開始。

例子:

假設有一臺服務器,地址是:192.168.1.33,端口號是8080,裏面部署了3個Web項目,分別是pro1,pro2,pro3。

那麼在pro1中有一個servlet使用了這樣的路徑"/servlet/ser1",那麼服務器實際上要去訪問的是在訪問的路徑

前面拼接上本身的地址,端口號和應用名也就是:http://192.168.1.33:8080/pro1/servlet/ser1 。

若是是瀏覽器使用了這樣的路徑"/servlet/ser1"就只能訪問到:http://192.168.1.33:8080/servlet/ser1 ,

很明顯,會出404。那麼若是瀏覽器想得到本身須要的資源路徑就要加上應用名:"/pro1/servlet/ser1",這樣才能夠。


3.對於相對路徑:

相對路徑就很簡單了,好比有這樣的一個資源結構

http://192.168.1.33:8080/pro1/servlet/----------|

                                            |---login.do     |--ser1

                                                                |--ser2

                                                                |--ser3


若是我是在ser1中經過相對路徑訪問ser2,路徑只須要寫成「ser2」

若是我是在ser1中經過相對路徑訪問ser3,路徑只須要寫成「ser3」

若是我是在login.do中經過相對路徑訪問ser2,路徑只須要寫成「servlet/ser2」


總結一下也就是相對路徑是相對於資源自己位置所在路徑爲開始的相對路徑。

相關文章
相關標籤/搜索