在jsp和class文件中调用的相对路径不同。
在jsp里,根目录是WebRoot
在class文件中,根目录档知庆是WebRoot/WEB-INF/classes 也可以选用System.getProperty("user.dir")获取工程的绝对路径。
1.jsp中取得路径:
以工程名为TEST为例:
(1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp (2)得到行握工程名:request.getContextPath() 结果:/TEST (3)得到当前页面所在目猛告录下全名称:request.getServletPath() 结果:如果页面在jsp目录下 /TEST/jsp/test.jsp (4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp") 结果:D:\resin\webapps\TEST\test.jsp (5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent() 结果:D:\resin\webapps\TEST
2.在class类中取得路径:
(1)类的绝对路径:Class.class.getClass().getResource("/").getPath() 结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ (2)得到工程的路径:System.getProperty("user.dir") 结果:D:\TEST
3.在Servlet中取得路径: (1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。 结果:E:\Tomcat\webapps\TEST (2)得到IE地址栏地址:request.getRequestURL() 结果:http://localhost:8080/TEST/test (3)得到相对地址:request.getRequestURI() 结果:/TEST/test
可以使用java.lang.System类的getProperty方法,传入参友拿数"java.home"获得当好陵搭前运行JVM的环境参数中的路径。
代码如下:
package com.dusd.codingpublic class Test01 {
public static void main(String[] args) 汪孙{
String path = System.getProperty("java.home")
System.out.println(path)
}
}
1、利用System.getProperty()函数获取当前路径:
System.out.println(System.getProperty("user.dir"))//user.dir指定了当前的路径
2、使用File提供的函数获取当前路径:
File directory = new File("")//设定为当前文件夹
try{
System.out.println(directory.getCanonicalPath())//获取标准的路径
System.out.println(directory.getAbsolutePath())//获取绝对路径
}catch(Exceptin e){}
File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new
File("..")两种路径有所区别。
# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹
# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径
# 至于getPath()函数,得到的只是你在new File()时设定的路径
Java基础知识教程:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)