您的位置:首页 > 运维架构 > Tomcat

关于tomcat的路径(WEB-INF)的一些路径的记录

2013-11-15 10:02 344 查看
eclipse中项目部署到tomcat时,tomcat的目录webapps中没有项目,而是部署到了eclipse中的工作空间的一个目录中,路径为:

E:\.metadata\.plugins\org.eclipse.wst.server.core\tmp1

关于路径,不同的环境,获取的路径也不一样:

main环境:虚拟机环境,获取的路径就是工作空间的路径

servlet环境:服务器环境,获取的路径就是服务器的路径

获取项目工程名以下的目录:

相关代码:

获取项目工程名后的绝对路径:

public String getWebInfPath(){
URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
String path = url.toString();
System.out.println("URL="+path);
int index = path.indexOf("WEB-INF");

if(index == -1){
index = path.indexOf("classes");
}

if(index == -1){
index = path.indexOf("bin");
}

path = path.substring(0, index);

if(path.startsWith("zip")){//当class文件在war中时,此时返回zip:D:/...这样的路径
path = path.substring(4);
}else if(path.startsWith("file")){//当class文件在class文件中时,此时返回file:/D:/...这样的路径
path = path.substring(6);
}else if(path.startsWith("jar")){//当class文件在jar文件里面时,此时返回jar:file:/D:/...这样的路径
path = path.substring(10);
}
try {
path =  URLDecoder.decode(path, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

return path;
}


当前类的绝对路径:

String className = TestClass.class.getName().replace('.', '/')+".class";
URL url = TestClass.class.getClassLoader().getResource(className);
System.out.println(url.getFile());


WEB-INF的绝对路径:

String path = getServletContext().getRealPath("/WEB-INF");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐