在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()也可用。
注:若这些路径中出现空格,并且空格被%20代替,则可以使用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("/");
转http://blog.csdn.net/rogerjava/article/details/7568466
分享到:
相关推荐
在 Java 项目中,获取绝对路径可以使用 `HttpServletRequest` 对象的 `getRealPath()` 方法。在 Web 项目中,可以使用 `request.getRealPath("")` 获取绝对路径。 ClassPath 路径 ClassPath 路径是 Java 项目中的...
6. **阅读相关文档**:压缩包中的`Java类中获得相对路径和绝对路径.txt`和`Java普通类中如何获取工程真实路径?.txt`文档可能包含了更具体的实现细节,建议仔细阅读以获取更多信息。 理解这些知识点后,开发者就能...
- 如果你需要获取某个文件所在目录的上级目录,可以先通过`application.getRealPath(request.getRequestURI())`得到该文件的绝对路径,再使用`new File(...).getParent()`获取其上级目录。 2. **Servlet中获取路径...
3. 在 JSP/Servlet 中获得当前应用的相对路径和绝对路径 在 JSP 中,可以使用 request.getRequestURI() 获取当前文件的绝对路径,然后使用 application.getRealPath(request.getRequestURI()) 获取当前文件的绝对...
- 获取的路径是服务器上的绝对路径,可能包含操作系统特定的路径分隔符,例如Windows的`\`或Unix的`/`。 5. **标签解析** - "源码":这个标签暗示了讨论的内容与查看和理解Java源代码有关,这里主要涉及的是Web...
本文将围绕“获取项目的相对路径和绝对路径”这一主题进行深入探讨,帮助读者理解不同场景下如何正确地获取路径。 ### 一、引言 在Java Web应用中,路径主要分为两种:相对路径与绝对路径。相对路径是指相对于当前...
理解如何在Java中获取文件路径,特别是区分绝对路径和相对路径,对于构建稳定、可移植的应用程序至关重要。本文将深入探讨Java中获取文件路径的多种方法,以及这些方法背后的原理。 ### 一、Java中的路径类型 ####...
Java中使用的路径主要分为绝对路径和相对路径两种,其中绝对路径又细分为URI形式的绝对资源路径和本地系统的绝对路径。相对路径则包括相对于classpath的相对路径和相对于当前用户目录的相对路径。 - **URI形式的...
- **绝对路径**:如果文件位于Weblogic的安装目录下(如`c:\yourconfig\yourconf.properties`),可以直接使用`new FileInputStream("yourconfig/yourconf.properties")`。 - **相对路径**:如果文件位于Web应用的...
相对路径可以是相对于当前类所在的包的路径,也可以是绝对路径。如果路径以 "/" 开头,则表示绝对路径,否则表示相对路径。 例如,com.explorers.Test.class.getResourceAsStream("abc.jpg") 和 ...
在Java中,路径分为绝对路径和相对路径,这两种路径又有不同的表现形式。 一、URI形式的绝对资源路径 例如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b 这是一个URI(Uniform Resource Identifier)...
// 获取绝对路径 String relativePath = file.getPath(); // 获取相对路径,这里可能需要根据实际基础路径做处理 ``` `getPath()`方法返回的是相对于JAR文件或类路径的路径,可能并不是我们想要的类的相对路径。...
通过创建一个空字符串路径的File对象,并调用getCanonicalPath方法,可以获取到项目所在的绝对路径。例如: ```java File directory = new File(""); String courseFile = directory.getCanonicalPath(); ``` 这种...
相对路径方便于在项目内部引用资源,而绝对路径则提供了明确的文件位置。在处理Web应用中的资源时,理解这两种路径的区别及其获取方法至关重要,因为它们直接影响到文件读取、写入和资源定位的正确性。同时,安全...
Java中获取各种路径的基本方法包括获取当前类所在的工程路径、当前类的绝对路径、以及获取源码包下的文件路径等。以下将详细解释这些方法。 1. 获取当前类所在的工程路径 在Java中,可以通过获取当前类的Class对象...
简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,...
在 Web 应用程序中,我们一般通过 ServletContext.getRealPath("/") 方法得到 Web 应用程序的根目录的绝对路径。 总结 掌握了上面几个基点,就能很轻松地定位要找的 Resource。然而,需要清晰地认识到不要只图一时...
在开发基于Java的Web应用程序时,经常需要获取当前项目的绝对路径。这在处理文件读写、配置文件加载等场景中尤为重要。本文将详细介绍如何在不同的环境中(如JSP、Servlet、普通Java类)获取当前项目的绝对路径。 #...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...