程序中我們經常要寫路徑,但是隻有我們明白其中的原理,才能正確地寫出路徑。那麼我們在哪些地方寫過路徑?通常按照不同的劃分方法,分爲真實路徑和虛擬路徑,也可以分爲絕對路徑、相對路徑和硬盤路徑。
絕對路徑:以/開頭的路徑就叫做絕對路徑,絕對路徑在相對於的路徑上直接拼接得到最終的路徑。
相對路徑:不以/開頭的路徑就叫做相對路徑,相對路徑基於當前所在的路徑計算的到最終的路徑。
硬盤路徑:以盤符開頭的路徑就叫做硬盤路徑.是哪個路徑就是哪個路徑.沒有相對於誰的問題。
虛擬路徑: –寫虛擬路徑時都使用絕對路徑。
- 如果路徑是給瀏覽器用的,這個路徑相對於虛擬主機,所以需要寫上web應用的名稱
如果路徑是個服務器用的,這個路徑相對於web應用,所以可以省寫web應用的名稱。
<a href="/Day04/....."> <form action="/Day04/..."> <img src="/Day04/...."> response.setHeader("Location","/Day04/...."); response.setHeader("refresh","3;url=/Day04/..."); response.sendRedirect("/Day04/..."); request.getRequestDispathce("/index.jsp").forward(); request.getRequestDispathce("/index.jsp").include();
真實路徑:寫真實路徑時都使用相對路徑。根據原理,具體問題具體分析
servletContext.getRealPath("config.properties");//--給一個相對於web應用目錄的路徑
classLoader.getResource("../../config.properties");//--給一個相對於類加載目錄的路徑
File file = new File("config.properties");//--相對於程序的啓動目錄
new InputStream("config.properties");//--相對於程序的啓動目錄