Java代码
String path = Struts2Util.getServletContext().getRealPath("/");
Jsp代码
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":"+ request.getServerPort()
+ path + "/";
%>
一、方法一
(1)、request.getRealPath("/");//不推荐使用获取工程的根路径
(2)、request.getRealPath(request.getRequestURI());//获取jsp的路径,这个方法比较好用,可以直接在servlet和jsp中使用
(3)、request.getSession().getServletContext().getRealPath("/");//获取工程的根路径,这个方法比较好用,可以直接在servlet和jsp中使用
(4)、类的绝对路径:Class.class.getClass().getResource("/").getPath()
结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
this.getClass().getClassLoader().getResource("").getPath();//获取工程classes下的路径,这个方法可以在任意jsp,servlet,java文件中使用,因为不管是jsp,servlet其实都是java程序,都是一个class。所以它应该是一个通用的方法。
(5)、tomcat下获得绝对路径
Java代码
privateString projectName="sz_pro";//你项目的名称(File.separator)
//获取当前项目的绝对路径(Linux不适用)
publicString getPorjectPath(){
String nowpath; //当前tomcat的bin目录的路径 如 D:\java\software\apache-tomcat-6.0.14\bin
String tempdir;
nowpath=System.getProperty("user.dir");
tempdir=nowpath.replace("bin","webapps");//把bin 文件夹变到 webapps文件里面
tempdir+= "\\"+ projectName;
//判断是否有后缀
if(!"/".equals(tempdir.substring(tempdir.length()))){
tempdir += File.separator;
}
returntempdir;
}
//另外还有一个方法可以用来获取类的绝对路径(当前的classpath)windows,linux都可以
Java代码
String classesPath =this.getClass().getClassLoader().getResource("").getPath();
logger.info("=============Constant.getPorjectPath()="+classesPath);
String photoPath = Constant.getPorjectPath(classesPath) + "virtualdir