在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()也可用。
注:若这些路径中出现空格,并且空格被 代替,则可以使用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("/");
相关推荐
在Java编程中,获取项目文件路径是常见的需求,特别是在处理资源文件、配置文件或进行文件操作时。这里我们将深入探讨几种不同的方法来实现这一目标,同时解析每种方法的适用场景和返回路径的特点。 1. `this....
- 在Servlet的 `init()` 方法中,可以使用 `getServletContext().getRealPath("/")` 获取Web项目的全路径。 - 在任意类中,可以使用 `this.getClass().getClassLoader().getResource("").getPath()` 获取 `classes...
本文将深入探讨Java中获取文件路径的多种方法,以及这些方法背后的原理。 ### 一、Java中的路径类型 #### 绝对路径 绝对路径是指从根目录开始,到目标文件或目录的完整路径。例如,在Windows系统中,`C:\Users\...
- 当文件在类路径中时,推荐使用`ClassLoader`来获取输入流。例如,`Thread.currentThread().getContextClassLoader().getResourceAsStream("filename")`可以找到并打开`src`目录下的文件。这种方法允许你在打包后...
以下是对Java中获取路径几种常见途径的详细解析,包括了从Web应用环境到普通Java应用程序中路径获取的方法,旨在为开发者提供全面的指导。 ### 1. Web应用中的路径获取 #### a. Servlet上下文路径 在Servlet环境中...
在Java编程中,路径是访问文件或资源的关键。路径分为绝对路径和相对路径两种类型,它们各有不同的用途和特点。 绝对路径是指从根目录开始的完整路径,它明确指定了文件或目录的确切位置。例如,`file:/D:/java/...
在Java编程中,获取某个路径下所有文件列表并将其写入指定文件是一项常见的任务,尤其在文件管理和系统操作中非常实用。以下是如何实现这个功能的详细步骤和相关知识点。 首先,我们需要导入Java.io和java.nio.file...
在Java编程语言中,获取硬盘序列号是一项常见的需求,...综上所述,Java获取硬盘序列号可以通过WMI查询或访问注册表来实现,但要注意平台兼容性和API稳定性问题。在实际开发中,根据项目需求和目标平台选择合适的方法。
Linux环境下使用Java获取路径涉及几个关键的概念和知识点,包括路径的表示方式、相对路径与绝对路径的区别、获取系统属性以及使用File类进行文件操作等。 首先,Linux系统中的路径分隔符是正斜杠("/"),例如,"cd /...
### Java路径问题最终解决方案之一 #### 一、引言与背景 在进行Java开发时,文件...综上所述,通过理解和应用上述推荐的最佳实践及获取路径的方法,可以有效地解决Java路径问题,确保程序在不同环境下的稳定运行。
1. 首先,需要将 registry.jar 文件添加到项目的类路径中。 2. 然后,需要将 ICE_JNIRegistry.dll 文件添加到 Java 的 bin 目录下。 3. 接下来,需要使用 Java 代码访问注册列表,找到软件对应的 CLSID(例如:{E8A6...
首先,通过`System.getProperties()`方法,我们可以获取到一个`Properties`对象,该对象包含了系统的所有属性。下面列举了一些常见的Java运行时环境属性: - **Java版本**:`java.version`,表示Java运行时环境的...
在描述中提到的博客链接(由于实际链接不可用,这里无法访问),作者可能分享了一种方法来实现这个功能,可能包括以下步骤: 1. **数据获取**:从可靠来源获取区域号段的数据,可能是CSV、JSON或其他格式的文件。 2...
- 这里通过`getResource()`方法获取文件的路径。如果文件不在类的同一目录下,则需要指定完整的路径: ```java String f = Hello.class.getResource("/com/mac/util/4.txt").getPath(); ``` 2. **通过...
在Java编程语言中,获取文件的基本信息,如分辨率、大小等,是常见的文件操作任务,尤其是在处理多媒体文件,如视频...记得在实际项目中,确保已经正确地将这些库加入到项目的构建路径或依赖管理中,以便顺利运行代码。
MinIO的Java客户端库可以通过Maven仓库获取,确保包含最新版本。 ```xml <groupId>io.minio <artifactId>minio 最新版本号 ``` 2. **初始化MinIO客户端**:使用MinIO的Java SDK,你需要提供MinIO服务器的URL...
Java中获取和设置当前工作目录的方法如下: ```java // 获取当前工作目录 File currentDir = new File("."); System.out.println(currentDir.getAbsolutePath()); // 设置当前工作目录 (仅限于Windows系统) ...
通过上述介绍可以看出,在Java中获取文件路径的方法多种多样,每种方法适用于不同的场景。掌握这些技巧对于编写高效、稳定的Java应用程序至关重要。在实际开发过程中,可以根据具体需求选择最适合的方法来获取文件...