在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.在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("/");

(转载自:http://blog.csdn.net/rogerjava/article/details/7568466)

转载于:https://www.cnblogs.com/JAVA-STUDYER/p/7094687.html

java获得项目绝对路径相关推荐

  1. 项目在服务器的绝对路径,java获得项目绝对路径

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getPro ...

  2. JAVA一个项目的路径为_java 得到项目路径

    一 相对路径的获得 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目) String relativelyPath=System.getProper ...

  3. java获取项目绝对路径_如何获取项目绝对路径?

    展开全部 用Jsp获取.用Java类获取或用servlet获取项目绝对32313133353236313431303231363533e4b893e5b19e31333363396465路径. 一.用 ...

  4. java web项目 相对路径怎么写_理解JavaWeb项目中的路径问题——相对路径与绝对路径...

    背景:html 在刚开始学习javaweb,使用servlet和jsp开发web项目的过程当中,一直有一个问题困扰着我:servlet 和 jsp 之间相互跳转,跳转的路径应该如何书写,才能正确的访问 ...

  5. java 取项目根路径_java中如何获取项目的路径

    记录是为了更好的成长! 1.ssm项目中 以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp (2)得到 ...

  6. java获取项目根路径通用方法

    windows或linux系统通用,包含常用的三个方法. package com.home.util;import java.io.File;/*** 获取项目的根路径* 在windows和linux ...

  7. java获取图片相对路径_相对路径和绝对路径的区别,java获取项目访问路径的方法...

    相对路径和绝对路径的区别 在HTML里只要涉及文件的地方(如超级链接.图片等)就会涉及绝对路径与相对路径的概念.1.绝对路径 绝对路径是指文件在硬盘上真正存在的路径.例如"bg.jpg&qu ...

  8. java : enum、创建文件和文件夹、删除文件和文件夹、获得项目绝对路径、写入数据到excel中、java代码中两种路径符号写法、读取、写入text文件...

    java : enum http://www.cnblogs.com/hyl8218/p/5088287.html 创建文件和文件夹.删除文件和文件夹 http://www.cnblogs.com/m ...

  9. java 访问路径_java获取项目访问路径的相关方法

    java获取项目访问路径的相关方法 刘振兴 代码分享 2016年02月11日 6292 暂无评论 在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中 ...

最新文章

  1. SSH框架整合实现Java三层架构实例(一)
  2. 利用正则匹配数字后边的字符_图解正则——字符匹配
  3. 接口的特点 java 1614101071
  4. MySQL压缩包安装,MySQL8和MySQL5安装,端口3306和3307
  5. MTK 驱动开发(23)---MTK camera AF 及tuning
  6. 2字节取值范围_C语言整数的取值范围以及数值溢出
  7. php socket 超时设置
  8. 使用modscan32工具踩的坑
  9. php搜索功能与jquery搜索功能,JavaScript_基于jQuery实现页面搜索功能,jQuery实现页面搜索,搜索筛选 - phpStudy...
  10. AHP(层次分析法)学习笔记及多层权重Python实践
  11. 腾讯元老辞职后,回到老家每天对着200亩地发呆
  12. Android碎片化问题
  13. 易桌面打印室一般多久能到,易桌面打印室怎么用
  14. 我的微信公众号开通了!
  15. 两个瓶子水怎样一样多_大班科学领域数学活动 | 一样多的水(容积守恒)
  16. H5调用移动端手机摄像头
  17. Fama-French三因子模型
  18. extern volatile struct GPIO_DATA_REGS GpioDataRegs什么意思
  19. 孙宇晨再落一子,APENFT和WINkLink要携手布局GameFi了?
  20. 互点流量,互刷排名,刷下拉刷联想-胖虎图图-互动点击系统

热门文章

  1. 判断直线与线段 是否相交 + 加入误差 故需要判断重点 poj 3304 Segments
  2. 动态查询设置mysql慢查询
  3. 【百度分享】频繁分配释放内存导致的性能问题的分析
  4. 可恶,新网互联又出问题了
  5. MSN Cartoon 试用
  6. Poj 2186 Popular Cows(Tarjan 强连通缩点)
  7. HBase java 开发
  8. Github Pages+Hexo+阿里云域名绑定
  9. framebuffer的入门介绍-实现程序分析【转】
  10. Java Excel 插入图片