获得文件的方法有很多,这里就记录几个简单实用的
1 在action里面如果获取路径
//在action里面获取到request并且得到路径(参数加/值最后就多了个\)
HttpServletRequest request = ServletActionContext.getRequest();
String realPath1 = request.getSession().getServletContext().getRealPath("/");
System.out.println(realPath1);//D:\apache-tomcat-6.0.16\webapps\AnliDemo02\
//得到classes根目录
String path2=Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println(path2);//"/D:/apache-tomcat-6.0.16/webapps/AnliDemo02/WEB-INF/classes/"
//得到classes根目录
String path3=ShowAllAction.class.getClassLoader().getResource("").getPath();
System.out.println(path3);//"/D:/apache-tomcat-6.0.16/webapps/AnliDemo02/WEB-INF/classes/"
//得到类所在的目录
String path4=ShowAllAction.class.getResource("").getPath();
System.out.println(path4);//"/D:/apache-tomcat-6.0.16/webapps/AnliDemo02/WEB-INF/classes/net/hncu/action/"
2在普通java文件里面
package pathtest;
public class PathTest {
public static void main(String[] args) {
//一 相对路径的获得
//说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
//上述相对路径中,java项目中的文件是相对于项目的根目录
//web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)
String relativelyPath=System.getProperty("user.dir");
System.out.println(relativelyPath);//D:\NewWorkSpace\SampleWebTest
//二 类加载目录的获得(即当运行时某一类时获得其装载目录)
//1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)
//(books.xml文件的路径为 项目名\src\books.xml;类PathTest所在包的第一级目录位于src目录下)
String path2 = PathTest.class.getClassLoader().getResource("books.xml").toString();
System.out.println(path2);
//file:/D:/NewWorkSpace/SampleWebTest/WebRoot/WEB-INF/classes/books.xml
//1.2)通过方法二
//(books.xml文件的路径为 项目名\src\books.xml,类PathTest所在包的第一级目录位于src目录下)
String path3 = PathTest.class.getResource("/books.xml").toString();
System.out.println(path3);
//file:/D:/NewWorkSpace/SampleWebTest/WebRoot/WEB-INF/classes/books.xml
}
}
3在jsp中获得路径
<%=application.getRealPath("") %>// "D:\apache-tomcat-6.0.16\webapps\AnliDemo02"
${pageContext.request.contextPath}// "/AnliDemo02"