栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

base标签的作用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

base标签的作用

这里我们在webapp下创建一个a文件夹,在a文件夹里创建一个b文件夹,然后在b文件夹里创建一个c.html

 




    
    Title


    这是a下的b下的c.html页面
    跳回首页

这时候在webapp下创建一个index.html首页




    
    首页


    这是Web下的index.html 
a/b/c.html
请求转发:a/b/c.html

这时候写一个Servlet

package com.servlet.one;

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 request, HttpServletResponse response) throws ServletException, IOException {
	  System.out.println("经过了ForwardC程序");
	  request.getRequestDispatcher("/a/b/c.html").forward(request,response);
	  
   }
}

我们进入首页进行正常的a标签跳转,是可以从首页跳转到c.html,还可以从c.html跳转回来。

接下来,在index.html点击转发到c.html下,这时候经过了ForwardC程序跳到c.html,但是我们跳不回去index.html了。


当我们点击a标签进行正常的跳转的时候,浏览器中的地址是这个:http://localhost:8080/servlet-01/a/b/c.html 跳转回去的a标签路径是:../../index.html,这是相对路径。 所有相对路径在工作的时候都会参照当前浏览器地址栏中的地址来进行跳转。 也就是说../../index.html是参照http://localhost:8080/servlet-01/a/b/c.html这个地址来跳转的。 我们把他们放在一起http://localhost:8080/servlet-01/a/b/c.html../../index.html 这个..就是去掉一层目录,c.html不是目录,直接去掉,b是目录,那么去掉一层目录,去掉一层点点,然后后面还有一层点点,再跳到上一层目录,那么就会把a也去掉。 那么参照后得到的地址是:http://localhost:8080/servlet-01/index.html。这个是正确的跳转路径。 以上是a标签跳转是正常的。

那么为什么请求转发会出现问题? 当我们使用请求转发来进行跳转的时候,浏览器地址栏中的地址是:http://localhost:8080/servlet-01/forwardC 这时候就开始不同了 所有相对路径在工作的时候都会参照当前浏览器地址栏中的地址来进行跳转。 我们把他们放在一起:http://localhost:8080/servlet-01/forwardC../../index.html 那么点点,去掉一层目录,forwardC不是目录,直接pass掉,servlet-01是目录,去掉,那么去掉后,还有一个点点,可是localhost:8080是端口,不是目录,去无可取,最终得到的路径是:http://localhost:8080/index.html。 这是错误的路径,找不到了,这就是请求转发之后,回不去了,我们的参照地址发生了变化。

解决办法: 如果我们可以让它参照的地址永远不变,而不关心浏览器地址栏的地址,那就可以跳过去,这时候base标签就可以,base标签可以设置当前页面中所有相对路径工作时,参照哪个路径来进行跳转。

base标签放在head里,,加了这个就类似于在里放入base标签里href的地址值 就变成了这样 那么这时候第一个点点就去掉了b,第二个点点就去掉了a,这时候就变成了





    
    Title
    
    


    这是a下的b下的c.html页面
    跳回首页

这时候就可以进行正常的跳转了!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号