各位朋友,相信大家都知道,在web项目中的默认路径总是例如这种:
D:JavaWebG工具软件新建文件夹eclipse-jee-kepler-sr1-win32Work.metadata.pluginsorg.eclipse.wst.server.core mp0wtpwebappsHomeWork6_16
其实我们往往要写入的真实路径并不是这个,那为什么在上传文件和写入数据的时候,总是会写入到这个路径呢??
这其实是eclipes在作怪,他会默认把当前的工作项目拷贝到例如上面的那个路径里,那么我们想要写入到我的工作目录下面应该怎么做呢?
相信大家也看出来了,相比自己的工作路径,它似乎只是中间多了一节“.metadata.pluginsorg.eclipse.wst.server.core mp0wtpwebapps”,
既然这样,那我们是不是可以吧这个路径看着字符串的形式,然后把多余的地方截取掉呢?
事实证明是可以的,那么下面就写了一个例子;
那么我们可以把它封装成一个方法来专门用来获取路径!
public String getWebPath() {
String path=String path=getServletContext().getRealPath("/"); //这已不是获得默认的路径;
int index=path.indexOf(".metadata");
String webPath=path.substring(1,index-1).replace('/', '\')+getServletContext().getContextPath()+"/WebContent/"; //这一步是把多余的路径不要,然后拼凑成你想要的路径;
return webPath;
}
String path = getServletContext().getRealPath("/");
这将获取web项目的全路径
例如:E:eclipseM9workspace ree tree是我web项目的根目录
this.getClass().getClassLoader().getResource("/").getPath();
这将获取到classes目录的全路径
例如 E:eclipseM9/workspace/tree/WEB-INF/classes/
这个方法也可以不在web环境里确定路径,比较好用
request.getContextPath();
获得web根的上下文环境
如/tree www.2cto.com tree是我的web项目的root context
/*jsp 取得当前目录的路径
path=request.getRealPath("");
当然了,以上的都是java web项目的获取办法;
最好获取的就是JAVA类中的工作路径了;
System.getProperty("user.dir");
就这样就可以获得你的工作路径了,简单吧!
以上是我综合我学习中的一些总结,希望各位给予建议和意见;