1. 程式人生 > >JavaWeb中jsp路徑斜桿(/)跟沒斜桿的路徑映射問題

JavaWeb中jsp路徑斜桿(/)跟沒斜桿的路徑映射問題

str ext contex jsp 絕對路徑 當前 建議 .get ava

在JavaWeb開發中,只要是寫URL地址,那麽建議最好以"/"開頭,也就是使用絕對路徑的方式,那麽這個"/"到底代表什麽呢?可以用如下的方式來記憶"/":

如果"/"是給服務器用的,則代表當前的web工程

如果"/"是給瀏覽器用的,則代表webapps目錄。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

如果跳轉的路徑以斜杠(/)開頭,即以絕對路徑的形式,則

  ①<a href="/項目名字/loginAddr">login</a>

  ②<a href="${pageContext.request.contextPath}/loginAddr">login</a>

  通過以上兩者選擇任意一種,點擊後就可以跳轉到 http://localhost:8080/項目名稱/loginAddr,這樣是理想的結果,不過第一種是把路徑寫死的,推薦第二種寫法,動態獲取。

如果不以斜杠開頭,在<head>標簽設置<base>標簽,即都以相對路徑的形式,則指定基準url

  ①el表達式形式:

    <base href="${pageContext.request.contextPath}">,href的值為:/項目名字

  ②java程序嵌入:

    <%String path = request.getContextPath();

      String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";

    %>

     <base href="<%=basePath%>">,href的值為:http://localhost:8080/項目名字/

  通過以上兩者選擇任意一種,<a href="loginAddr">login</a>點擊後,就可以跳轉到 http://localhost:8080/項目名稱/loginAddr,這樣是理想的結果

  

JavaWeb中jsp路徑斜桿(/)跟沒斜桿的路徑映射問題