JavaScript中获取当前项目的绝对路径

最近在做JavaWeb项目相关的东西,几乎每天都遇到很多问题,主要是因为自己对JavaWeb方面的知识不是很清楚,尽量把自己在项目中遇到的问题都记录下来,方便以后查阅。

在我们的项目中有这样的需要,当在页面停留时间过长时,自动调回主页面first.jsp,所以我就写了个load.js代码文件,然后在每个jsp页面上都引用它,这样就出现了问题,因为每个页面不都是在WebRoot的根目录下的,有可能是在其子目录下,如下图所示:


所以对于每个jsp页面所跳转回主页面first.jsp的路径就不相同,所以必须要用绝对路径。(上篇播客中也说了,在JavaWeb项目中尽量使用绝对路径,因为绝对路径是肯定不会出现错误,而相对路径如果引用错误就会出现问题)

所以在js代码中怎么获取当前项目的的绝对路径这个问题就必须解决。

解决方法:

1.可以在每个jsp页面是写个隐藏域对象传回当前页面的路径,而这种方法不可取,要改动的页面较多,代价较大。

2.在load.js中获取当前项目的绝对路径,这样的方法才是可取的。用字符串处理来得到。

		   function getRootPath(){
			   var currentPagepath=location.href;
			   var pathName = window.document.location.pathname;
			   var pos = currentPagepath.indexOf(pathName);
			   var localhostPath = currentPagepath.substring(0,pos);
			   var projectName = pathName.substring(0,pathName.substr(1).indexOf("/")+1);
			   window.location.href=localhostPath+projectName+"/first.jsp";
		   }

每局代码的作用基本是命名上就可以看出。希望对大家有用哈!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值