<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";<html>
<head>
%>
<html>
<head>
<base href="<%=basePath%>">
......
base标记是一个基链接标记,是一个单标记。用以改变文件中所有连结标记的参数内定值。它只能应用于标记<head>与</head>之间。
你网页上的所有相对路径在链接时都将在前面加上基链接指向的地址。
</html>
这个语句是用来拼装当前网页的相对路径的。
是用来表明当前页面的相对路径所使用的根路径的。
比如,页面内部有一个连接,完整的路径应该是 http://localhost:80/MyProject/control/login.jsp
其中http://server/是服务器的基本路径,MyProject是当前应用程序的名字,那么,我的根路径应该是那么http://localhost:8080/MyProject/
有了这个以后,我的页面内容的连接,我不想写全路径,我只要写 control/login.jsp 就可以了。服务器会自动把指定的路径和页面内的相对路径拼装起来,组成完整路径。
如果没有这个,那么我页面的连链接就必须写全路径,否则服务器会找不到。
自己可以试着输出看看就明白了:
<body>
<%=basePath%>
</body>
request.getSchema()可以返回当前页面使用的协议,就是上面例子中的“http”
request.getServerName()可以返回当前页面所在的服务器的名字,就是上面例子中的“localhost"
request.getServerPort()可以返回当前页面所在的服务器使用的端口,就是80,
request.getContextPath()可以返回当前页面所在的应用的名字,就是上面例子中的MyProject
这四个拼装起来,就是当前应用的跟路径了!