定义和用法
<base> 标签为页面上的所有链接规定默认地址或默认目标。
通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。
使用 <base> 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>、<img>、<link>、<form> 标签中的 URL。
也就是说base标签可以规定页面所有链接的基准URL。所谓的基准URL,就是说页面其他的链接都是继续拼接在这个URL后面的相对地址。
看个实例:
*****************Jsp页面代码*********************
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
//假如你的项目名称是ssp,那么basePath最后获得的值就是 --> http://localhost:8080/ssp/
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<head>
<base href="<%=basePath%>">
</head>
其中:
request.getSchema()可以返回当前页面使用的协议,http 或是 https;
request.getServerName()可以返回当前页面所在的服务器的名字;
request.getServerPort()可以返回当前页面所在的服务器使用的端口,就是80或者8080;
request.getContextPath()可以返回当前页面所在的应用的名字;
现在基准的URL已经确定了,就是 http://localhost:8080/ssp/
接下来,就是相对于这个路径,写访问其他资源的路径。
比如:超链接
<a href="user/userList.jsp">用户列表</a>
当点击用户列表的超链接的时候相当于访问的服务器资源地址为:http://localhost:8080/ssp/user/userList.jsp
Form表单:
<form name="form" action="/withdraw/withdrawSave.do" method="post" enctype="multipart/form-data"></form>
提交Form表单的时候,访问的后台的方法就是 http://localhost:8080/ssp//withdraw/withdrawSave.do