文档章节

获取JAVA[WEB]项目有关路径的几种方法

风软
 风软
发布于 2014/05/30 10:32
字数 480
阅读 64
收藏 0

在jsp和class文件中调用的相对路径不同。 在jsp里根目录是WebRoot ,在class文件中根目录是WebRoot/WEB-INF/classes , 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。
另:在Jsp,Servlet,Java中详细获得路径的方法!
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)类的绝对路径:String u=Class.class.getClass().getResource("/").getPath() 
结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ 

  //str会得到这个函数所在类的路径 String str = u.toString(); //截去一些前面6个无用的字符 str=str.substring(6,str.length()); //将%20换成空格(如果文件夹的名称带有空格的话,会在取得的字符串上变成%20) str=str.replaceAll("%20", " "); //查找“WEB-INF”在该字符串的位置 int num = str.indexOf("WEB-INF"); //截取即可 str=str.substring(0, num+"WEB-INF".length());




(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


本文转载自:http://www.educity.cn/wenda/147447.html

共有 人打赏支持
风软
粉丝 0
博文 1
码字总数 0
作品 0
福州
项目经理
私信 提问
Java 相对路径与绝对路径的问题

在写java程序时不可避免要获取文件的路径…总结一下,遗漏的随时补上 1.可以在servlet的init方法里 String path = getServletContext()。getRealPath("/"); 这将获取web项目的全路径 例...

风一样
2011/08/03
0
0
获取绝对路径 去除路径的% 空格问题

class 类: public static String getBasePath() { String savaPath = ""; savaPath = 类.class.getRecource("").getPath(); int i = savaPath.lastIndexOf("WEB-INF"); savaPath = savaPat......

Mr&Cheng
2013/01/20
0
0
JAVA文件中获取路径及WEB应用程序获取路径方法

基本概念的理解 :你应用上的文件或目录在硬盘上真正的路径,如:URL、物理路径 例如: c:/xyz/test.txt代表了test.txt文件的绝对路径; http://www.sun.com/index.htm也代表了一个URL绝对路...

陶邦仁
2012/10/25
0
1
Eclipse Oxygen.1a 发布,支持 JUnit 5 和 Java 9

Eclipse Oxygen.1a (4.7.1a) 已发布,一些新的值得注意的地方: 支持 JUnit 5 支持 Java™ 9 Eclipse 的 Java 编译器(ECJ)已实现所有新的 Java 9 语言增强功能。 升级了对 Java 模块支持的重...

周其
2017/10/14
1K
12
关于Java对相对目录的文件读写和调用方法的一些总结

关于Java对相对目录的文件读写和调用方法的一些总结 首先要讲Java路径 Java中使用的路径,分为两种:绝对路径和相对路径。具体而言,又分为四种: 1.本地系统的绝对路径: 如: windows: C:a...

蔡熙伟
2011/09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

iOS个人中心渐变动画、微信对话框、标签选择器、自定义导航栏、短信验证输入框等源码

iOS精选源码 简单的个人中心页面-自定义导航栏并予以渐变动画 程序员取悦女票的正确姿势---Tip1(iOS美容篇) iOS 前台重启应用和清除角标的问题 微信原生提醒对话框3.0 JHLikeButton - 有趣...

Android爱开源
14分钟前
0
0
Yii2使用驼峰命名的形式访问控制器

yii2在使用的时候,访问控制器的时候,如果控制器的名称是驼峰命名法,那访问的url中要改成横线的形式。例如: public function actionRoomUpdate(){//}//访问的时候就要www.test.co...

dragon_tech
17分钟前
0
0
Navicat使用教程:使用Navicat Query Analyzer优化查询性能(第2部分)

下载Navicat Monitor最新版本 Navicat Monitor 是一套安全、简单而且无代理的远程服务器监控工具。它具有强大的功能使你的监控发挥最大效用。受监控的服务器包括 MySQL、MariaDB 和 Percona ...

电池盒
23分钟前
0
0
Python3 读写utf-8文本文件

with open('testRead.txt', 'r', encoding='utf-8') as f: for each_line in f: Passwith open('testWrite.txt', 'w', encoding='utf-8') as f: f.write('写入的内容'......

编程老陆
26分钟前
0
0
Linux syslog相关函数详解

介绍 syslog是Unix系统的日志系统。可以将日志记录在本地系统中。 一个完整的syslong日志包含如下信息:程序模块 | 严重性 | 时间 | 主机名 | 进程名 | 进程ID | 正文。 syslong相关函数 1....

RongJinhui0
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部