0、前端頁面的請求路徑
阿新 • • 發佈:2020-09-06
學習資源:動力節點的2020最新SpringMVC教程【IDEA版】-springmvc從入門到精通
目錄
1、相對地址
1.1、不使用 /
頁面的請求地址中不加 / ,相對地址的參考地址是:當前頁面的地址
<a href="user/register">發起註冊請求</a>
點選上面的超連結後,新的頁面的地址會變為:http://ip:埠號:工程名/user(register 被作為資源名)。這時如果在這個頁面發起不帶 / 的請求:
<a href="user/second">發起第二個請求</a>
會出現 http://ip:埠號/工程名/user/user/second The requested resource is not available 的問題。
解決方式:
- 使用以 "/" 開頭的地址
- 使用html 的 base 標籤,它表示當前頁面的基地址,頁面中所有沒有以 "/" 開頭的地址,都是以 base 標籤中的地址為參考地址,使用 base 地址 + user/second 組成完整的訪問地址
<head> <base href="http://ip:埠號/工程名/" /> </head> <body> <a href="user/second">發起第二個請求</a> </body>
專案中的使用方式:
<% String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/"; %> <html> <head> <base href="<%=basePath%>"> </head> </html>
1.2、使用 /
頁面的請求地址中加 / ,參考地址是:http:ip:埠號/。直接訪問是會略過工程地址的,會造成 HTTP ERROR 404
<a href="/user/register">發起註冊請求</a>
為了解決這個問題,可以在頁面的請求地址中,附上 "/工程名" 的字首
<a href="/工程名/user/register">發起註冊請求</a>
但是這樣的話,又會導致兩個問題:
- 請求地址顯得冗餘不夠清晰
- 工程名一旦修改的話,勢必要修改每一個頁面的請求字首
解決方式:使用 ${pageContext.request.contextPath} 作為工程名:
<a href="${pageContext.request.contextPath}/user/register">發起註冊請求</a>
2、絕對地址
<a href="http://ip:埠號/工程名/自定義請求地址">發起註冊請求</a>