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";
		   }

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

时间: 2024-12-18 20:17:29

JavaScript中获取当前项目的绝对路径的相关文章

IOS中获取各个文件的目录路径的方法和NSFileManager类

转自:http://blog.sina.com.cn/s/blog_5fb39f910101di92.html IOS中获取各种文件的目录路径的方法 iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory()), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1.Documents 目录:您应该将所有

asp.net 获取当前项目的根目录路径

获取网站根目录的方法有几种如: Server.MapPath(Request.ServerVariables["PATH_INFO"]) Server.MapPath("/")  Server.MapPath("~/")//当前代码文件所在的根目录路径 Server.MapPath("")//当前代码文件所在的目录路径 Server.MapPath(".") Server.MapPath("../

IOS中获取各种文件的目录路径的方法

iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory()), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1.Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下.这个目录用于存储用户数据或其它应该定期备份的信息. 2.AppName.app 目录:这是应用程序的程序包目录,

javascript中获取标准URL的参数

/** * 获取标准URL的参数 * @_key:字符串,不支持数组参数(多个相同的key) * @_url:字符串,(window).location.href,使用时别误传入非window对象 * @_spliter:字符串,参数间分隔符 * 注意: * 1.如不存在指定键,返回空字符串,方便直接显示,使用时注意判断 * 2.非标准URL勿用 * 3.query(?)与hash(#)中存在键值一样时,以数组返回 */ function getUrlParams(_key, _url, _sp

javascript中获取dom元素高度和宽度

javascript中获取dom元素高度和宽度的方法如下: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWidth (包括边线的宽)网页可见区域高: document.body.offsetHeight (包括边线的高)网页正文全文宽: document.body.scrollWidth网页正文全文高: document.body.scrollH

JavaScript中获取HTML元素的方式

JavaScript中获取HTML元素的方式 1.使用id方式获取元素,返回一个具体对象   document.getElementById(id名) 2.使用className方式获取元素,返回类数组对象 document.getElementsByClassName(类名) 3.使用tagName标签名的方式获取元素,返回类数组对象   document.getElementsByTagName(标签名/元素名) 4.使用标签的name属性获取元素,返回类数组对象 document.getE

获取web项目的绝对路径的方法总结

一.用Jsp获取 1.获取文件的绝对路径 String file="文件";(例如:data.mdb) String path=application.getRealPath(file); 结果: E:\java_web\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\myWebsite\文件 2.获取文件的绝对路径 String p2=request.getRequestURI(); 结

Javascript中获取对象的原型对象

在Javascript中,如果我们有一个对象但是又不知道它的构造函数时,如何获取它的原型对象呢? 在Chrome中或是FireFox浏览器中,我们可以直接使用对象的__proto__属性获取它的原型对象. <!-- lang: js --> function F(){}; var foo = new F(); alert(foo.__proto__ == F.prototype); 但是,__proto__属性在IE浏览器中一直到IE11才被支持. 那么在不支持__proto__属性的浏览器中

Eclipse (JavaEE版)中修改web项目的访问路径

访问路径,也就是指在浏览器中访问该web系统时的根路径,比如http://localhost:8080/xxxx/index.jsp  这里的xxxx. 也就是request.getContextPath()得到的值. 我们在做系统开发的时候,在本地工作区可能会有同一个系统的多个版本存在,比如上面所说的xxxx系统,这里可能会有xxxx1.xxxx1_1.xxxx1_2代表该系统的1.0 .1.1. 1.2版本,对应的工程名字默认就是系统的访问路径,但是,我们可能会希望这些项目能够有一个统一的访