訪問伺服器資源的絕對路徑和相對路徑
阿新 • • 發佈:2019-01-01
在web專案中 , 很多時候出現404資源未找到的錯誤 , 都是訪問資源的路徑編寫格式錯誤導致的. 通常情況下 , 訪問資源路徑以"/資源路徑"開頭為絕對路徑 , 直接以"資源路徑"開頭為相對當前資源位置的相對路徑 , 而在頁面請求和在伺服器的Servlet中訪問資源兩種情況下 , 絕對路徑和相對路徑的表現形式又有所不同 , 以下為測試和總結:
一. 建立一個SpringMVC專案 , 編寫Controller
@Controller
@RequestMapping("/con")
public class TestController {
@RequestMapping("/test1")
public String test1() {
System.out.println("test1執行了!");
return "success";
}
}
配置tomcat伺服器:
設定專案工程名為 test , 專案根目錄為 localhost:8080/test/
執行專案 , 在瀏覽器的位址列直接輸入 Controller 中 test1方法的訪問路徑:
控制檯列印:
成功訪問了 test1 方法 , 並跳轉到了 success.jsp 頁面
二. 在頁面訪問伺服器資源的路徑
編寫index.jsp
<body>
< a href="/test/con/test1"> 絕對路徑 </a>
<hr>
<a href="con/test1"> 相對路徑 </a>
</body>
執行tomcat伺服器 , 訪問index頁面:
分別點選絕對路徑和相對路徑的超連結 , 通過瀏覽器檢查發現都訪問成功
三. 在伺服器方法中跳轉到其他方法
在 test1 方法中使用相對路徑和絕對路徑跳轉到 test2 方法
@Controller
@RequestMapping("/con")
public class TestController {
@RequestMapping ("/test1")
public String test1() {
System.out.println("test1執行了!");
return "forward:/con/test2";//絕對路徑
// return "forward:test2";//相對路徑
}
@RequestMapping("/test2")
public String test2() {
System.out.println("test2執行了!");
return "success";
}
}
執行tomcat伺服器 , 使用瀏覽器訪問 test1 方法
控制檯列印結果:
成功訪問了 test2 方法並跳轉到success.jsp頁面
總結:
在以上測試中:
頁面訪問的絕對路徑為: /test/con/test1
頁面訪問的相對路徑為: con/test1
伺服器訪問的絕對路徑為: /con/test2
伺服器訪問的相對路徑為: test2
分析訪問路徑的組成部分:
完整URL: http://localhost:8080/test/con/test1
localhost:8080 為伺服器地址加埠號
/test 為專案工程名
/con 為表現層Controller對映路徑
/test1 為 test1 方法的對映路徑
1. 頁面訪問請求中 , 絕對路徑需要自己加上工程名 , 相對路徑相當於在工程根目錄
絕對路徑: /... 相當於 http:\\localhost:8080/...
相對路徑: ... 相當於 http:\\localhost:8080/test/...
2. 伺服器方法中 , 絕對路徑相當於工程根目錄 , 相對路徑相當於當前路徑的同級目錄
絕對路徑: /... 相當於 http:\\localhost:8080/test/...
相對路徑: ... 相當於 http:\\localhost:8080/test/con/...