1.  获取web服务器项目的真实物理路径

request.getSession().getServletContext().getRealPath("/");

2.  相对路径的获得

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

String relativelyPath=System.getProperty("user.dir");

上述相对路径中,java项目中的文件是相对于项目的根目录

web项目中的文件路径视不同的web服务器不同而不同

(tomcat是相对于 tomcat安装目录\bin)

3.  类加载目录的获得(即当运行时某一类时获得其装载目录)

3.1. 通用的方法一

(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录

)

InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");

(test.txt文件的路径为项目名\src\test.txt;类TestAction所在包的第一级目录位于src目录下)

上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可

3.2. 通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头)

InputStream is=Test1.class.getResourceAsStream("/test.txt");

(test.txt文件的路径为项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)

4.  web项目根目录的获得(发布之后)

4.1. 从servlet出发

可建立一个servlet在其的init方法中写入如下语句

ServletContext s1=this.getServletContext();

String temp=s1.getRealPath("/"); (关键)

结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\ (002_ext为项目名字)

如果是调用了s1.getRealPath("")则输出D:\工具\Tomcat-6.0\webapps\002_ext(少了一个"\")

4.2. 从httpServletRequest出发

String cp11111=request.getSession().getServletContext().getRealPath("/");

结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\

5.  classpath的获取

(在Eclipse中为获得src或者classes目录的路径)

5.1. 方法一

Thread.currentThread().getContextClassLoader().getResource("").getPath();

eg:

String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();

System.out.println("t---"+t);

输出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/

5.2. 方法二

JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse为src某一个包中的类,下同)

eg:

String p1=JdomParse.class.getClassLoader().getResource("").getPath();

System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);

输出:

JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/

另外,如果想把文件放在某一包中,则可以通过以下方式获得到文件(先定位到该包的最后一级目录)

eg

String p2=JdomParse.class.getResource("").getPath();

System.out.println("JdomParse.class.getResource---"+p2);

输出:

JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/

(JdomParse为src目录下jdom包中的类)

在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。

6.  在Jsp,Servlet,Java中详细获得路径的方法

6.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

6.2. 在类中取得路径:

(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()

结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/

(2)得到工程的路径:System.getProperty("user.dir")

结果:D:\TEST

6.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

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀 2012年12月8日 11:41:32 星期六

2

2

分享到:

2012-12-08 11:44

浏览 3626

评论

2 楼

moguicy

2012-12-08

为此以前纠结了很久啊,不错不错

1 楼

董宗磊

2012-12-08

顶贴,总结的非常全面!!

java获取url前缀 jsp_jsp 获取项目路径,java获取项目路径【蕃薯耀分享】相关推荐

  1. Java 网络实例三(获取URL响应头的日期信息、获取URL响应头信息、解析URL、ServerSocket和Socket通信实例)

    获取 URL响应头的日期信息 以下实例演示了如何使用 HttpURLConnection 的 httpCon.getDate() 方法来获取 URL响应头的日期信息: import java.net. ...

  2. java获取url前缀 jsp_Java获取URL链接的文件类型

    问题发生: 查看源码发现: 因为没有文件类型所以在转存图片的时候出错了 谷歌百度了一下发现解决办法: URLConnection class provides two static methods t ...

  3. vue获取url中ip_Kubernetes 集群中这样获取客户端真实 IP

    Kubernetes 依靠 kube-proxy 组件实现 Service 的通信与负载均衡.在这个过程中,由于使用了 SNAT 对源地址进行了转换,导致 Pod 中的服务拿不到真实的客户端 IP 地 ...

  4. java request获取url_java中HttpServletRequest常用获取url、资源名等方法总结

    HttpServletRequest客户端获取请求,客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中.所以我们能够从对象中获取相应信息 端口 request.getSe ...

  5. ajax动态获取url参数值,获取URL参数的方法

    一.URL:统一资源定位符 1.URL组成 完整的URL由这几个部分构成: scheme://host:port/path?query#fragment 名词解释: scheme:通信协议.常用的ht ...

  6. php全面获取url地址栏及各种参数

    php教程 全面获取url地址栏参数多种方法: $_SERVER["SERVER_PORT"] //获取端口 $_SERVER['HTTP_HOST'] //获取域名或主机地址 如 ...

  7. js获取 url 参数值的方法总结

    今天小编碰到一个朋友问这么一个问题,怎么在一个页面中获取另外一个页面url传过来的参数呢?最初一开始很本能的想到了用 split("?"),这样一步步的分解出需要的参数.但是想了一 ...

  8. html js发送http请求数据格式,JS获取url参数,JS发送json格式的POST请求方法

    一.获取url所有参数值 function US() { var name, value; var str = location.href; var num = str.indexOf("? ...

  9. js获取url地址,锚点,参数

    (1)window.location.href 得到和使用的是完整的url,比如window.location.href="www.hao123.com"表示的是重新定向,页面跳转 ...

最新文章

  1. 条款22: 尽量用“传引用”而不用“传值”
  2. 免费技术直播:唐宇迪带你一节课了解机器学习经典算法
  3. Unity网络多玩家游戏开发教程第1章Unity自带网络功能
  4. Echarts学习记录——如何去掉网格线及网格区域颜色
  5. Android之android.os.Build
  6. 双胞胎被麻省理工全奖录取,他们成功的秘诀,跟你想的不一样……
  7. win10使用import pcap 建议放弃,还是使用linux系统吧
  8. 从看《长津湖》想到的数字化转型
  9. VS1838B 红外接收头接线及单片机编码原理
  10. mysql5_MySQL5.5下载-MySQL数据库5.5下载 v5.5.60.1官方版(32位/64位)--pc6下载站
  11. PIXI.JS一镜到底动画
  12. Raster Map光栅图 VS Vector Map矢量图
  13. qt代码着呢么换行_离我睡觉还早着呢...
  14. 圣地亚哥911警用呼叫中心响应时间平均5秒
  15. 双十一哪款蓝牙耳机值得入手?音质超棒的蓝牙耳机推荐
  16. speedoffice表格如何重复打印标题?
  17. 苹果手机使用爱思助手安装ipa软件
  18. Google新版第三方登录(Javascript SDK)
  19. (Qt)windows下串口检测-热插拔监测、获取可用串口
  20. 摄像机-哈苏-哈苏相机:哈苏相机

热门文章

  1. 中国古代天文星象学的入门书 步天歌
  2. 第4课【STM32的时钟】时钟 时钟源 内外部时钟 高低速时钟
  3. 那是你的计算机怎么用英语表示,“I potato you”可不是“我土豆你”,那这个potato到底啥意思?...
  4. 安装empire各种错误解决办法
  5. 蓝桥杯嵌入式史上最全最详细教程教你快速入门
  6. Leetcode 974. 和可被 K 整除的子数组 前缀和
  7. java模拟病人就诊过程_模拟医院挂号系统
  8. 关键路径例题图解_干货 | 细胞信号通路图解之细胞自噬信号通路
  9. 4000GB、数百亿条个人信息泄露!大数据行业知名企业数据堂被查
  10. 应该怎样读书,应该读什么书. 我阅读的经历与心得