1. 程式人生 > >springMVC中請求路徑問題總結

springMVC中請求路徑問題總結

在學習SpringMVC路徑問題搞得很頭疼。

路徑的構成:資源路徑與資源路徑名稱

        請求路徑=資源路徑+資源名稱

        資源路徑與資源名稱的分水嶺為,請求路徑的最後一個斜槓。斜槓之前稱為資源路徑,斜槓之後為資源名稱。

        資源名稱: index.jsp

        資源路徑: http://localhost:8080/aaa

        資源名稱: 系統指定的歡迎頁面

路徑的分類:絕對路徑和相對路徑

        絕對路徑:可以唯一的定位一個資源的路徑。在Web應用中,一般情況下,以請求協議開頭的路徑為絕對路徑。絕對路徑使用URL(統一資源定位符)形式表示。

       相對路徑:僅僅依靠此路徑無法唯一的定位一個資源,若再為其新增一個參照路徑,就可以將其轉換為一個可以定位資源的絕對路徑,這樣的路徑稱為相對路徑。在Web應用中,一般情況下,不以協議開頭的路徑為相對路徑。

       轉換關係:絕對路徑=參照路徑+相對路徑

絕對路徑的分類:資源定義路徑和資源請求路徑

       資源定義路徑:用於表示資源的位置

       資源請求路徑:客戶端發出的對指定資源的請求路徑

相對路徑的分類:斜槓路徑和非斜槓路徑

斜槓路徑:以斜槓開頭的的路徑

      非斜槓路徑:不以斜槓開頭對的路徑

斜槓路徑的分類:前臺路徑和後臺路徑

 前臺路徑:出現在html檔案,及jsp檔案的靜態部分、css、js檔案中的斜槓路徑,稱為前臺路徑。例如,html及jsp檔案中的<img src=””/>、<a href=””>、<form action=””>,css中的background:img(“”),js中的window.location.href=””等中的以斜槓開頭的相對路徑,稱為前臺路徑。

       後臺路徑:出現在Java程式碼、jsp檔案動態部分(Java程式碼塊、JSP動作等),及xml、properties等配置檔案中的斜槓路徑,稱為後臺路徑。

路徑解析器

         相對路徑最終都會經過路徑解析器,將其解析為絕對路徑,用於定義或請求一個資源。不同的相對路徑,具有不同路徑解析器。

         前臺路徑解析器:瀏覽器

        後臺路徑解析器:伺服器

       非槓路徑解析器:若非槓路徑出現在前臺路徑出現的位置,則其解析器為瀏覽器;若非槓路徑出現在後臺路徑出現的位置,則其解析器為伺服器。

解析規則

         不同路徑解析器,對同一個相對路徑的解析結果是不同的,即轉換為的絕對路徑是不同的。由於絕對路徑 = 參照路徑 + 相對路徑,所以解析結果的不同,主要是不同的解析器為相同的相對路徑配置上了不同的參照路徑。所以,我們要學習的解析規則,就是不同的解析器為不同的相對路徑所配置的不同的參照路徑。

一般規則

        前臺路徑的參照路徑為:當前web伺服器的根

       後臺路徑的參照路徑為:當前web應用的根

       非槓路徑的參照路徑為:當前請求路徑的資源路徑

      舉例:

     資源名稱:hello.jsp