天天看點

斜杠 / 和 反斜杠 \ 的差別

不同作業系統的分别

Unix / Linux:使用斜杠 / 作為路徑分隔符,而 Web 應用最新使用在 Unix 系統上面,是以目前所有的網絡位址都采用斜杠 / 作為分隔符。 

Windows:由于已經使用斜杠 / 作為 DOS 指令提示符的參數标志了,為了不混淆是以采用反斜杠 \ 作為路徑分隔符。是以目前Windows系統上的檔案浏覽器都是用反斜杠 \ 作為路徑分隔符。

  • 浏覽器位址欄中的網址使用 斜杠 / 作為路徑分隔符
  • Windows檔案浏覽器使用 反斜杠 \ 作為路徑分隔符
  • 出現在html url() 屬性中的路徑,指定的是網絡路徑,是以必須用斜杠 /

斜杠 /

 1.(無)開頭表示目前目錄下的  2.(/)開頭的目錄表示該目錄為根目錄的一個子目錄  3.(./)開頭的目錄表示該目錄為目前目錄(目前目錄所在的目錄)的一個子目錄

 4.(../)開頭的目錄表示該目錄為目前目錄的父目錄

    但是實際使用過程中我們發現了很多問題,首先關于無斜杠開頭的路徑描述基本準确,是表示目前目錄下和(./)相似。

    1. 對于HTML 頁面 , 如果直接對該頁面打開通路:則這裡相對的是我們的盤符,如( /res/index.html),實際路徑為( C://res/index.html );

    2. 如果我們在Tomcat中建構打開:則這裡相對的是我們的站點,如 ( /webTest/html/index.html ),實際路徑為( http://localhost:8080/webTest/html/index.html ) ;

    3.對于我們在請求轉發中調用的 getRequestDispatcher() 方法,則這裡相對的是我們的項目根目錄。

如 request.getRequestDispatcher(" /ts.do "),我們項目名稱為 webTest , 而“/ts.do”是我們在 web.xml 中配置的servlet-mapping 的 url-pattern。

則我們這裡找的 ( /ts.do )其實是  ( http://localhost:8080/webTest/ts.do )。

    4. 如果我們要找的是一個具體資源如 html 頁面:目錄結構如下:(webTest/WebContent/html/index.html)而我們知道WebContent這個目錄是編譯器臨時目錄在實際生成時是沒有的,是以目錄修改如下(webTest/html/index.html);

這時我們要用 getRequestDispatcher()得到這個html頁面則應是(html/index.html)