1. 程式人生 > >訪問伺服器資源的絕對路徑和相對路徑

訪問伺服器資源的絕對路徑和相對路徑

在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/...