1. 程式人生 > 實用技巧 >0、前端頁面的請求路徑

0、前端頁面的請求路徑

學習資源:動力節點的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>

但是這樣的話,又會導致兩個問題:

  1. 請求地址顯得冗餘不夠清晰
  2. 工程名一旦修改的話,勢必要修改每一個頁面的請求字首

解決方式:使用 ${pageContext.request.contextPath} 作為工程名:

<a href="${pageContext.request.contextPath}/user/register">發起註冊請求</a>

2、絕對地址

<a href="http://ip:埠號/工程名/自定義請求地址">發起註冊請求</a>