问题描述
我们这里描述一个问题
当我们用相对路径的过程中出现过请求转发,那么可能会导致我们的程序出现问题
当我们在两个html页面中分别写上对方的链接,然后我们的地址是相对地址
c页面:
index页面:
目录结构:
然后我们写一个类,用于请求转发,转发到我们的c.html页面
然后我们运行:
在我们只是c.html页面和index.html页面来回跳的时候,是没有任何问题的,但是如果中间经过了我们这个类
我们先用请求转发来访问c页面
然后我们点击返回首页
可以看到,回去不去了,再看他提示的地址,
http://localhost:8080/index
这就是因为我们设置的href为相对地址的原因,而我们通过请求转发访问其他页面的时候自身的地址是不会变的,原来的地址,但是相对路径是相对于我们当前地址的基础上添加的路径
见分析图:
这时候就可以用到我们今天要学习的新知识base标签
base标签
作用:
base标签可以设置当前页面中所有相对路径工作时,参照哪个路径来进行跳转
这个标签,是写在<head>
里的,然后一般写在<title>
下面
这个写的是我们此页面的相对路径要参照的路径,所以我们这里写的是,我们这个页面在我们的Tomcat服务器上面运行,然后浏览器上面显示的地址其实我们这里
c.html
可以省略,因为咱们需要的路径或者地址或者链接的跳转都是相对于文件夹来说的
所以我们可以省略其中的文件,但是注意,最后面的那个/
斜杠绝对不能省略,一旦省略那么这里的b就会被认为成一个资源文件,就会出错
当然我们也可以把href都设置成绝对路径,比如这里这样虽然也能解决问题,但是在小程序上面没有什么问题,但在大工程上面没有base便于维护