base标签的作用
- 就是为了有个参考地址,代码中所有的路径跳转都是参考base标签的地址值
目录结构
代码演示
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
这是web下的index.html页面 <br>
<a href="a/b/c.html">a/b/c.html</a> <br>
<a href="http://localhost:8080/tian/forwardC">请求转发:a/b/c.html</a>
</body>
</html>
forwardC
package com.tian.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class ForwardC extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("经过了forwardC程序");
req.getRequestDispatcher("/a/b/c.html").forward(req,resp);
}
}
c.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<!--base标签 设置页面相对路径工作时参照的地址
没有base标签,请求转发就跳回不了index.html,因为路径有误
-->
<base href="http://localhost:8080/tian/a/b/c.html">
<body>
这是a下的b下的c.html页面 <br>
<a href="../../index.html">返回首页</a>
</body>
</html>
web.xml
<servlet>
<servlet-name>ForwardC</servlet-name>
<servlet-class>com.tian.servlet.ForwardC</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ForwardC</servlet-name>
<url-pattern>/forwardC</url-pattern>
</servlet-mapping>
图解
- …/ 是返回到上一级目录(页面不算)