Java中的絕對路徑與相對路徑
#Java中的絕對路徑與相對路徑
近些天對Java中的絕對路徑與相對路徑比較模糊,本著一個學到手都是自己的原則,下面我們來好好區分下絕對路徑與相對路徑。
-
1.絕對路徑: 聽著名字就大概可以瞭解到這個東西是絕對的,我們查一下百度百科"絕對":指沒有任何條件限制,不受任何限制而言。這個就比較官方一點了,咱們用咱們計算機的事物去分析,舉個例子: 比如說你要讀取某個檔案,如果說這個檔案在你的硬碟中(D:\Java\天線寶寶傳奇.txt),那麼就可以說他是絕對的,因為他相對於你當前的程式他是絕對的,不管你用Eclipse開啟還是用IDEA開啟,還是說 你把專案從C盤移動到D盤
-
2.相對路徑:從名字上我們就可以知道,絕對與相對是相比較而言的,如果說絕對路徑是相對於磁碟來說(也可以是伺服器)不變的,那麼相對路徑就可以說是相對於專案來說不變的
下面來說說關於訪問時候所出現的問題
在我們訪問的時候不外乎以下幾種情況
- 1./
- 2.不加/
- 3.localhost:8080/(加不加專案名稱這個需要你自己去設定在application.properties裡面Springboot專案),他們之間的關係
- 4.webpp目錄
以上幾點是我們需要重點區分的,下面我們來一一進行區分
先分享以下部落格,WebContent與webapp的區別和聯絡:
一般情況下我們都是將Jsp/Css/Image檔案放置到webapp目錄下面一般情況下我們需要進行如下的配置:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
意味著,我們從後端對映的請求回去webapp下面的/WEB-INF/jsp/去尋找檔案字尾為jsp的檔案
程式碼結構如下
@Controller public class TestPathController { @RequestMapping(value = "/index" ,method = RequestMethod.GET) public ModelAndView init() { ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("index"); return modelAndView; } }
前端的程式碼結構
展示頁面情況
訪問地址http://localhost:8080/aoc/index
那麼下面就到了我們所討論的第一個問題,那麼我們一般情況下所說的相對路徑指的到底是哪裡?
我們先做出一個大膽的推測:
-
1.指的我們所說的src目錄
-
2.指的我們所說的webapp目錄
我個人更加傾向於第一種吧,因為想到了所有的目錄都可能是相對而言的,不單單是前端頁面,後端請求servlet同樣也是這樣子的或者說包括我們的Mybatis裡面的.sql檔案 這些都是需要相對路徑去訪問的,下面再次提出一個問題。
咱們所指的classPath:這個路徑指的是哪裡
- 1.src目錄?
- 2.還是有其他所指?
參考部落格:https://blog.csdn.net/qq_33393542/article/details/80322141 侵刪
那麼下面就回到了我們最初的問題,還是探究相對路徑指的是哪裡?
-
也就是我們平時所說的:http://localhost:8080/
-
2.三.web.xml中的路徑
Servlet 對映 /xx 中的 “/” 代表當 前 web 應用的根路徑。
web應用程式的的根目錄:http://localhost:8080/abosulutelyOrRelatively/
-3 .四.轉發和重定向中的路徑問題1. 如果沒有“/”,如request.getRequestDispatcher("hello.jsp ").forward(request, response) 和response.sendRedirect(" hello.jsp ") 就表示在同級目錄 中尋找login.jsp檔案。
- 如果路徑中包含“/”(注意,這裡的“/”是指路徑中的第一個“/”)
a, 轉發
如request.getRequestDispatcher("/hello.jsp").forward(request, response) :代表到http://localhost:8080/test/ 下目錄尋找hello.jsp檔案。
b,重定向
如response.sendRedirect("/hello.jsp"):代表到http://localhost:8080/ 目錄下尋找hello.jsp檔案
參考部落格:https://blog.csdn.net/u014507083/article/details/53768511
收穫還是蠻大的,知識還是記錄下來的好