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

时间:2021-12-15 07:49:04

在jsp和class文件中调用的相对路径不同。

在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。
如下为在Jsp,Servlet,Java中详细获得路径的方法!以Java Web工程名为MyPath为例:
1.jsp中取得路径

(1)得到包含工程名的当前页面全路径:request.getRequestURI();
结果:/MyPath/jsp/pathpage.jsp
(2)得到工程名:request.getContextPath();
结果:/MyPath
(3)得到当前页面所在目录下全名称:request.getServletPath();
结果:如果页面在jsp目录下 /jsp/pathpage.jsp
(4)得到页面所在服务器的全路径:application.getRealPath("jsp/pathpage.jsp");
结果:F:\apache-tomcat-6.0.35\webapps\MyPath\jsp\pathpage.jsp
(5)得到页面所在服务器的绝对路径:String absPath = new
java.io.File(application.getRealPath(request.getServletPath())).getParent();
结果:F:\apache-tomcat-6.0.35\webapps\MyPath\jsp
(6)得到项目的访问路径:request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
结果:http://localhost:8080/MyPath/

2.在类中取得路径

(1)得到class文件的存放路径:String path = Class.class.getClass().getResource("/").getPath();
结果:/F:/WorkSpace/MyPath/WebRoot/WEB-INF/classes/

//str会得到这个函数所在类的路径
String str = path.toString();

//截去一些前面1个无用的字符
str = str.substring(1,str.length());

//将%20换成空格(如果文件夹的名称带有空格的话,会在取得的字符串上变成%20)
str = str.replaceAll("%20", " ");

//查找"WEB-INF"在该字符串的位置
int num =
str.indexOf("WEB-INF");

//截取即可
str = str.substring(0,
num+"WEB-INF".length());

最后结果为:F:/WorkSpace/MyPath/WebRoot/WEB-INF

(2)得到工程的路径:System.getProperty("user.dir");
结果:F:\WorkSpace\MyPath

(3)得到class的绝对路径:PathJava.class.getClass().getResource("").getPath();
结果:/F:/WorkSpace/MyPath/WebRoot/WEB-INF/classes/com/path/test/

3.在Servlet中取得路径

(1)得到工程目录:request.getSession().getServletContext().getRealPath("")
参数可具体到包名。
结果:F:\apache-tomcat-6.0.35\webapps\MyPath
(2)得到IE地址栏地址:request.getRequestURL()

结果:http://localhost:8080/MyPath/jsp
(3)得到相对地址:request.getRequestURI()
结果:/MyPath/jsp

获取JAVA[WEB]项目相关路径的几种方法的更多相关文章

  1. [转]获取JAVA[WEB]项目相关路径的几种方法

    http://blog.csdn.net/yaerfeng/article/details/7297479/ 在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在cl ...

  2. 对Java Web项目中路径的理解

    第一个:文件分隔符 坑比Window.window分隔符 用\;unix采用/.于是用File.separator来跨平台 请注意:这是文件路径.在File f = new File(“c:\\hah ...

  3. java中获取类加载路径和项目根路径的5种方法

    import java.io.File; import java.io.IOException; import java.net.URL; public class MyUrlDemo { publi ...

  4. web项目docker化的两种方法

    标题所讲的两种方法其实就是创建docker镜像的两种方法 第一种:启动镜像后进入容器中操作,将需要的软件或者项目移动到容器中,安装或者部署,然后退出即可 第二种:编写dockerfile,将需要的镜像 ...

  5. java获取类加载路径和项目根路径的5种方法

    // 第一种:获取类加载的根路径 D:\IDEAWorkspace\hs-bluetooth-lock\src\applications\bluetooth-api\target\classes Fi ...

  6. 获取SilverLight.Web项目中路径Uri

    方法一: //获取指定要呈现的xaml内容的包活xaml文件Uri var strFullUrl = Application.Current.Host.Source.AbsoluteUri; if ( ...

  7. Java中获取项目根路径和类加载路径的7种方法

    引言 在web项目开发过程中,可能会经常遇到要获取项目根路径的情况,那接下来我就总结一下,java中获取项目根路径的7种方法,主要是通过thisClass和System,线程和request等方法. ...

  8. JAVA WEB项目中各种路径的获取

    JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在s ...

  9. 【转】Java Web 项目获取运行时路径 classpath

    Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...

随机推荐

  1. php扩展编译(以memcached为例)

    1)到 https://pecl.php.net/ 上搜索并下载(wget)你需要的扩展的源码包 2)解压并切换进入扩展包的目录 3)使用phpize工具自动生成 configure 4)config ...

  2. Java程序员的10道XML面试题

    包括web开发人员的Java面试在内的各种面试中,XML面试题在各种编程工作的面试中很常见.XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准.XML面试问题包括用于转换XML文件的X ...

  3. [codevs]失恋28天题目系列

    失恋28天-追女孩篇 题目描述 Description 呵呵,相信大家失恋33天都看过吧,里面的主人公黄小仙和王小贱都有印象吧!这回我要给大家讲的是我 们班同学的失恋经历,呵呵他总共失恋了28天.但是 ...

  4. 2. Singleton模式

    这两种方法都提到了使用模版: (1) 参考文章:http://www.cnblogs.com/08shiyan/archive/2012/03/16/2399617.html 不同: a. 该方法直接 ...

  5. Sort(归并)

    Sort 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 You want to processe a sequence of n distinct integers ...

  6. 《Linux命令行与shell脚本编程大全》第二十二章 gawk进阶

    gawk是一门功能丰富的编程语言,你可以通过它所提供的各种特性来编写好几程序处理数据. 22.1 使用变量 gawk编程语言支持两种不同类型的变量: 内建变量和自定义变量 22.1.1 内建变量 ga ...

  7. Winform 控件的入门级使用(一)

    开始总结一下控件的基本用法,方便以后查阅. 一.Label Label 的使用频率很高,基本上也没有什么难度. #region Winform //label label.Text = "这 ...

  8. Windows下Python环境的搭建

    我刚开始接触Python没多久,当然这也是为初学者来更好的去入门Python,我电脑上既跑着Windows也跑着Red Hat的Linux,相比较而言,开发我还是更青睐于Linux系统,很多开发工具红 ...

  9. Android 开发 框架系列 百度语音合成

    官方文档:http://ai.baidu.com/docs#/TTS-Android-SDK/6d5d6899 官方百度语音合成控制台:https://cloud.baidu.com/product/ ...

  10. poj-2115-exgcd

    C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 32062   Accepted: 9337 Descr ...