java项目路径_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java项目路径

java项目路径

 2013/7/26 15:19:45  liumayulingyan  程序员俱乐部  我要评论(0)
  • 摘要:在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
  • 标签:Java 项目
class="java" name="code">
在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.在类中取得路径:
(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()
结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路径:System.getProperty("user.dir")
结果:D:\TEST
(3)得到tomcat临时目录:System.getProperty("java.io.tmpdir");
结果:D:\Development\apache-tomcat-7.0.42\temp

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

另,Class类还有一个getResourceAsStream方法,记得以前有个项目要读取在同一个包内的一个xml,就用的这个。

1.如何获得当前文件路径

常用:
(1).Test.class.getResource("")
得到的是当前类FileTest.class文件的URI目录。不包括自己!
(2).Test.class.getResource("/")
得到的是当前的classpath的绝对URI。
(3).Thread.currentThread().getContextClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI。
(4).Test.class.getClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI。
(5).ClassLoader.getSystemResource("")
得到的也是当前ClassPath的绝对URI。
尽量不要使用相对于System.getProperty("user.dir")当前用户目录的相对路径,后面可以看出得出结果五花八门。
(6) new File("").getAbsolutePath()也可用。

注:若这些路径中出现空格,并且空格被%20代替,则可以使用path = java.net.URLDecoder.decode(path,"utf-8") 进行转化;
       
2.Web服务器
(1).Tomcat
在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin
(2).Resin
不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成Servlet的路径为根.比如用新建文件法测试File f = new File("a.htm");
这个a.htm在resin的安装目录下 
(3).如何读文件
使用ServletContext.getResourceAsStream()就可以
(4).获得文件真实路径

String   file_real_path=ServletContext.getRealPath("mypath/filename");  
不建议使用request.getRealPath("/"); 




getProperties 
public static Properties getProperties() 
确定当前的系统属性。 
首先,如果有安全管理器,则不带参数直接调用其 checkPropertiesAccess 方法。这可能导致一个安全性异常。 
将 getProperty(String) 方法使用的当前系统属性集合作为Properties 对象返回。如果没有当前系统属性集合,则先创建并初始化一个系统属性集合。这个系统属性集合总是包含以下键的值: 
键	相关值的描述 
java.version	Java 运行时环境版本 
java.vendor	Java 运行时环境供应商 
java.vendor.url	Java 供应商的 URL 
java.home	Java 安装目录 
java.vm.specification.version	Java 虚拟机规范版本 
java.vm.specification.vendor	Java 虚拟机规范供应商 
java.vm.specification.name	Java 虚拟机规范名称 
java.vm.version	Java 虚拟机实现版本 
java.vm.vendor	Java 虚拟机实现供应商 
java.vm.name	Java 虚拟机实现名称 
java.specification.version	Java 运行时环境规范版本 
java.specification.vendor	Java 运行时环境规范供应商 
java.specification.name	Java 运行时环境规范名称 
java.class.version	Java 类格式版本号 
java.class.path	Java 类路径 
java.library.path	加载库时搜索的路径列表 
java.io.tmpdir	默认的临时文件路径 
java.compiler	要使用的 JIT 编译器的名称 
java.ext.dirs	一个或多个扩展目录的路径 
os.name	操作系统的名称 
os.arch	操作系统的架构 
os.version	操作系统的版本 
file.separator	文件分隔符(在 UNIX 系统中是“/”) 
path.separator	路径分隔符(在 UNIX 系统中是“:”) 
line.separator	行分隔符(在 UNIX 系统中是“/n”) 
user.name	用户的账户名称 
user.home	用户的主目录 
user.dir	用户的当前工作目录 
系统属性值中的多个路径是用平台的路径分隔符分隔的。 
注意,即使安全管理器不允许执行 getProperties 操作,它可能也会选择允许执行 getProperty(String) 操作。 
返回: 
系统属性 
抛出: 
SecurityException - 如果安全管理器存在并且其checkPropertiesAccess 方法不允许访问系统属性。 
另请参见: 
setProperties(java.util.Properties),SecurityException,SecurityManager.checkPropertiesAccess(),Properties
发表评论
用户名: 匿名