<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<H1>Hello World</H1>
<a href="https://www.linuxidc.com/world.html">测试相对地址</a>
<a href="https://www.linuxidc.com/world.html">测试绝对地址</a>
</body>
</html>
注:world.html和hello.html在相同目录下。
地址栏输入::8080/OutSourcingManage/hello.html,其中,"http://localhost:8080/OutSourcingManage/"为web应用根地址。
点击"测试相对地址"时,地址栏显示的是::8080/OutSourcingManage/world.html(请求成功)
点击"测试绝对地址"时,地址栏显示的是::8080/world.html(请求失败,此时要想成功需要手工补充web应用地址)
如果地址栏输入::8080/OutSourcingManage/springmvc/hello.html,其中,"http://localhost:8080/OutSourcingManage/"为web应用根地址。
点击"测试相对地址"时,地址栏显示的是::8080/OutSourcingManage/springmvc/world.html(请求成功)
点击"测试绝对地址"时,地址栏显示的是::8080/world.html(请求失败,此时要想成功需要手工补充web应用地址)
注意:①页面跳转(forward)是以web应用根地址为基准的,可以跳转到同应用下任意有效资源页面。
②WEB-INF只能被服务器端访问,不能被客户端访问。
③重定向(sendRedirect)是服务器向客户端响应的资源名称,由客户端重新向服务器端请求。
④重定向可以跨web应用。
⑤基准路径或者叫相对路径的基准:生手开车时,经常出现会问一个问题:"我的方向盘向左方(或向右方)打了半圈,还是一圈,还是打死了?",教练常常会告诉我,如果记不清了就把方向盘打死,然后回一圈半,方向盘就正了。同样,在操作系统中,可以使用命令"pwd"查看当前所处的目录。这些告诉我们基准路径很重要。
(3)一点建议
由于在日常开发过程中,相对地址维护起来非常复杂,容易混乱,建议统一采用绝对地址。在html/jsp中有<base>标签。利用该标签可以实现绝对地址访问。以JSP文件为例:(注意红色字体部分)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="https://www.linuxidc.com/<%=basePath%>">