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

  

原文地址:https://www.cnblogs.com/convict/p/9785845.html