首页 > 编程语言 >获取JAVA[WEB]项目相关路径的几种方法 _

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

时间:2022-09-30 17:55:10浏览次数:55  
标签:WEB JAVA 路径 request jsp MyPath str

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

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

如下为在Jsp,Servlet,Java中详细获得路径的方法!以Java Web工程名为MyPath为例。

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/ 

在类中获取路径

(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/

通过ClassLoader来加载getResource()时不需要加 "/" 因为source是从main开始的;

Thread.currentThread().getContextClassLoader().getResource("main/test/test.txt").getPath();

通过Class.getResource()来加载文件时需要加“/”。

在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

在JUnit中获取路径

如果你是Maven项目,想在Junit 单元测试过程中加载src/main/resources目录下资源文件,可以在pom.xml中添加如下内容:

<build>
    <testResources>
        <testResource>
            <directory>${project.basedir}/src/test/resources</directory>
        </testResource>
        <testResource>
            <directory>${project.basedir}/src/main/resources</directory>
        </testResource>
    </testResources>
</build>

 

标签:WEB,JAVA,路径,request,jsp,MyPath,str
From: https://www.cnblogs.com/xfeiyun/p/16745172.html

相关文章

  • Java中的集合基础
    Java集合基础一、集合ArrayList概述:编程的时候如果存储多个数据,使用长度固定的数组储存格式,不一定满足我们的需求,更适应不了变化的需求,那么,此时该如何选择?......
  • Java中的字符串
    Java中的字符串一、APl(注:Java的默认包是java.lang使用时不需要导包)1、APl概述:APl(ApplicationProgrammingInterface):应用程序编程接口JavaAPl:指的就是J......
  • 小白初学java
    #Markdown#标题###三级标题####四级标题 ##字体**Hello,World!***Hello,World!****Hello,World!***~~Hello,World!~~Hello,World! ##引用>小白java......
  • Java: 压缩PDF文档
    PDF文档在日常工作中应用广泛,经常用于保存公司文件,电子图书或网络资料等大篇幅内容。然而,内容过多往往也会导致PDF文件过大,不便于其保存和发送。在这种情况下,我们可以选择使......
  • 如何使用Java代码修改数组大小呢?
    转自:http://www.java265.com/JavaJingYan/202111/16357342581649.html数组是Java开发中非常重要的一个数据存储容器,那可以存储多种类型,基础类型,引用类型,但是它有一个缺......
  • Java: 压缩PDF文档
    PDF文档在日常工作中应用广泛,经常用于保存公司文件,电子图书或网络资料等大篇幅内容。然而,内容过多往往也会导致PDF文件过大,不便于其保存和发送。在这种情况下,我们可以选择......
  • Java Hutool 包工具类推荐 ExcelUtil
    JavaHutool包工具类推荐ExcelUtil包引入hutool包版本号可根据实际情况更换 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifa......
  • 从基础到实战 手把手带你掌握新版Webpack4.0
    本课程完整讲清最新版本下的Webpack4知识体系,通过基础+实例+原理代码编写+复杂案例分析完成Webpack4的分析与讲解。更重要的是让你对整个前端项目的构建有一个......
  • Java HttpUtil 工具类 (使用 Apache HttpClient 包)
    JavaHttpUtil工具类(使用ApacheHttpClient包)第一步引入包 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</a......
  • Java集合框架之List
    1.List集合概要2.Iterable接口1.概要2.重要方法forEach方法:对Collection集合中的每个对象进行消费List<Student>list=Stream.generate(()->newStudent("张......