自己写Java Web遇到的坑(1)——JSP中的外部引用相对地址出错

在写JSP之前,一个网页需要表现成什么样,一般来说是要先写成html看一下的,我也是这么做的。然而,这个时候,第一个坑可能出现了。

问题:

在html中,外部引用的CSS和JS文件的地址全都是基于html文件的位置而写的相对地址(像这样:../css/style.css)。当我们把html原封不动搬到JSP上时,常会出现外部的各种引用地址不对的问题。

原理

其中很可能的一个原因,就是这个相对地址,相对的对象不再是前身是html的JSP文件了,而是根据JSP文件中basePath变量而定的。

basePath变量是新建一个JSP时,模板中预先设置的一个String的变量。

    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

我们可以看到,basePath是通过request设置的一个变量,代表了当前网站的根目录的地址(像这样的:http://localhost:8080/test/)。

解决

所以我们需要重新设置相对地址,改为basePath为相对地址的参考位置(原点),按此路径引用外部文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值