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,这样是理想的结果