Java 中访问路径的问题
在Java中路徑分為絕對路徑和相對路徑
訪問路徑
通常訪問路徑也就是URL,統一資源定位符,URL由兩部分組成資源路徑和資源名稱
資源名稱也就是你要訪問的路徑,就比如我的image,我的image是訪問的控制器的一個方法再由控制器方法轉跳到頁面
資源路徑就是出去你的資源名稱之后剩下的路徑
由此類推URI
不管URL還是URl,資源名稱都是以最后一個斜杠為分界線,前面的是資源路徑,后面的是資源名稱
絕對路徑
絕對路徑,是指根據給出的訪問路徑可以準確定位到資源的路徑
而對于計算機中 Web 應用的絕對路徑,則是指帶訪問協議的路徑,即 URL。例如下面的路徑就是一個帶有 http 訪問協議的絕對路徑。
如下
http://localhost:8086/springstudy/image
相對路徑
對于相對路徑來說分為以/開頭的相對路徑和不以/開頭的相對路徑,方式不同所用到的參照物也不相同
以斜杠開頭的相對路徑
以斜杠開頭的相對路徑,根據路徑所在文件所處位置的不同,分為兩種:前臺路徑與后臺路徑。
A前臺路徑
所謂的前臺路徑指的是由瀏覽器解析的代碼中包含的路徑,例如,html、css、js中的路徑,及 jsp 文件中靜態部分的路徑(HTML 標簽中的路徑)。例如,html 及 jsp 文件中的<img src="",<a href="",<form action=""等標簽中的路徑;再如,css 文件中的 background:img(“”)等屬性中的路徑,js 文件中的 window.location.href=”” 等屬性中的路徑,都屬于前臺路徑。
將前臺路徑轉換為絕對路徑的工作,是由瀏覽器自動完成的。該路徑的作用是要為用戶提交對某種資源的請求,是要查找并定位服務器中的某資源。簡單來說,前臺路徑的作用是“查找”。
前臺路徑的參照路徑是當前web服務器的根路徑,也就是http://localhost:8086
B后臺路徑
所謂后臺路徑是指,由服務器解析執行的代碼及文件中所包含的路徑。例如,java 代碼中的路徑、jsp 文件動態部分(java 代碼塊)中的路徑、xml 等配置文件中的路徑(配置文件是要被 java 代碼解析后加載到內存的,其中的路徑會出現在 Java 代碼中)等。后臺路徑的參照路徑是 Web 應用的根路徑。
如 http://localhost:8086/springstudy。
將后臺路徑轉換為絕對路徑的工作,是由服務器自動完成的。該路徑的作用是標識出該資源在服務器中的路徑,以便客戶端能夠按照這個設定路徑來查找相應資源。簡單來說,后臺路徑的作用是“標識”。
C 后臺路徑特例
對于后臺路徑的參照路徑有一個特例:當代碼中使用 response 的 sendRedirect()方法進行重定向時,若其參照路徑是以斜杠開頭,則其參照路徑不是 web 應用的根路徑,而是 web服務器的根路徑。
例如,執行 response.sendRedirect(“/show.jsp”);將會報 404 錯誤。因為其參照路徑是Tomcat 的根,而非當前項目的根。所以若要使用重定向,就需要在路徑上添加上項目名稱:response.sendRedirect(request.getContextPath + “/show.jsp”);為什么這里是特例?因為 sendRedirect()方法可以重定向到其它應用,若不指定要跳轉的應用,其將無法確定跳轉方向。
不以斜杠開頭的相對路徑
不以斜杠開頭的相對路徑,無論是出現在前臺頁面,還是出現在后臺 Java 代碼或配置文件中,其參照路徑都是當前訪問路徑的資源路徑。即使是 response 的 sendRedirect()方法的參數路徑,若不以斜杠開頭,其也屬于“以路徑名稱開頭的相對路徑”類,參照路徑為當前訪問路徑的資源路徑。
總結
以上是生活随笔為你收集整理的Java 中访问路径的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: can总线资源总结
- 下一篇: Java数据库篇9——备份与还原、忘记密