关于jsp中超链接的相对路径

前提:新建了一个名为MyProject的web工程。在WebContent目录下新建一个jsp目录,在jsp目录中新建一个index.jsp文件。

实验:在index.jsp里写了4个链接,如下:

<a href="<c:url value="/person/personDisplay.htm"/>">Person List1</a> 
<a href="<c:url value="person/personDisplay.htm"/>">Person List2</a> 
<a href="/person/personDisplay.htm">Person List3</a> 
<a href="person/personDisplay.htm">Person List4</a> 

结果:在浏览器中查看网页源代码,结果如下:

<a href="/MyProject/person/personDisplay.htm">Person List1</a> 
<a href="person/personDisplay.htm">Person List2</a> 
<a href="/person/personDisplay.htm">Person List3</a> 
<a href="person/personDisplay.htm">Person List4</a> 

结果分析:

1. Person List2和Person List4的效果是一样的,都是相对于index.jsp所在目录的相对路径。点击Person List2或是Person List4将会跳转到的地址是http://localhost:8080/MyProject/jsp/person/personDisplay.htm ,是相对jsp目录缀上了person/personDisplay.htm 。

2. Person List1,在jsp中的最左端的反斜杠“/”会被<c:url/>标签转换为当前项目的根目录,即http://localhost:8080/MyProject。所以当点击Person List1时,会跳转到http://localhost:8080/MyProject/person/personDisplay.htm

3. Person List3,纯html超链接的最左端的反斜杠“/”代表服务器的根目录(一个服务器可以有多个web工程),即http://localhost:8080 。因此点击Person List3时,会跳转到http://localhost:8080/person/personDisplay.htm 。

原文地址:https://www.cnblogs.com/james6176/p/3383358.html