base标记是一个基链接标记,是一个单标记。用以改变文件中所有连结标记的参数内定值。它只能应用于标记<head>与</head>之间。
你网页上的所有相对路径在链接时都将在前面加上基链接指向的地址。
base 元素可规定页面中所有链接的基准 URL
我们可以使用 <base>标签中的href属性来设置,所有的“相对基准 URL”。
这是JSP端的代码
采用了html文件中的 <base>标签:
代码如下:
<%
String path = request.getContextPath();
// 获得项目完全路径(假设你的项目叫myWork,那么获得到的地址就是 http://localhost:8080/myWork/):
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
// 将 "项目路径basePath" 放入pageContext中
%>
<html>
<head>
<base href=" <%=basePath%>">
//base只能应用于标记<head>与</head>之间
</head>
// 这里我们就可以直接使用相对路径(即: 相对于base标签)
<a href="jsp/login.jsp">Login </a>
</html>
当我们去执行上面的那段JSP代码后,我们可以在浏览器中可以查看,他所返回给客户端的html代码:
执行完上述JSP后,所返回的html代码如下:
<html>
<head>
<base href="http://localhost:8080/myWork/">
</head>
// 设置了 <base>后,相对路径,相对于的就是base中的路径,而不再是浏览器地址的请求路径啦~~~
<a href="jsp/login.jsp">Login </a>
</html>
我们可以看到JSP返回的html代码中,包含了 <base href="http://localhost:8080/myWork/">内容。
也就是说,在本html文件中,遇到的所有 “相对链接(例如: <a href="jsp/login.jsp">)”,都是相对于base
的路径(即:http://localhost:8080/myWork/)