JavaWeb中jsp路徑斜桿(/)跟沒斜桿的路徑映射問題
在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路徑斜桿(/)跟沒斜桿的路徑映射問題