`
wwwzhouhui
  • 浏览: 361092 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

转java 绝对路径和相对路径

阅读更多

1.基本概念的理解

绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。

相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在
Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例如:"./" 代表当前目录,"../"代表上级目录。这种类似的表示,也是属于相对路径。
另外关于URI,URL,URN等内容,请参考RFC相关文档标准。

RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax,
(http://www.ietf.org/rfc/rfc2396.txt)


2.关于JSP/Servlet中的相对路径和绝对路径。

2.1服务器端的地址

服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对地址,他们是由客户端 浏览器解析的)也就是说这时候在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于http: //192.168.0.1/webapp/的。

其用到的地方有:
forward:servlet中的request.getRequestDispatcher(address);这个address是在服务器端解析 的,所以,你要forward到a.jsp应该这么写:request.getRequestDispatcher(“/user/a.jsp”)这个/ 相对于当前的web应用webapp,其绝对地址就是:http://192.168.0.1/webapp/user/a.jsp。 sendRedirect:在jsp中<%response.sendRedirect("/rtccp/user/a.jsp");%>

2.22、客户端的地址

所有的html页面中的相对地址都是相对于服务器根目录(http://192.168.0.1/)的,而不是(跟目录下的该Web应用的目录) http://192.168.0.1/webapp/的。 Html中的form表单的action属性的地址应该是相对于服务器根目录(http://192.168.0.1/)的,所以,如果提交到a.jsp 为:action="/webapp/user/a.jsp"或action="<%=request.getContextPath()% >"/user/a.jsp;
提交到servlet为actiom="/webapp/handleservlet" Javascript也是在客户端解析的,所以其相对路径和form表单一样。


因此,一般情况下,在JSP/HTML页面等引用的CSS,Javascript.Action等属性前面最好都加上
<%=request.getContextPath()%>,以确保所引用的文件都属于Web应用中的目录。另外,应该尽量避免使用类似".","./","../../"等类似的相对该文件位置的相对路径,这样当文件移动时,很容易出问题。


3. JSP/Servlet中获得当前应用的相对路径和绝对路径

3.1 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getRequestURI()
文件的绝对路径  :application.getRealPath(request.getRequestURI());
当前web应用的绝对路径 :application.getRealPath("/");
取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()

3.2 Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径 :request.getSession().getServletContext().getRealPath
(request.getRequestURI())
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
(ServletContext对象获得几种方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
)

4.java 的Class中获得相对路径,绝对路径的方法

4.1单独的Java类中获得绝对路径
根据java.io.File的Doc文挡,可知:
默认情况下new File("/")代表的目录为:System.getProperty("user.dir")。
一下程序获得执行类的当前路径

  
public class testPath {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		  System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));  
		   
		         System.out.println(testPath.class.getClassLoader().getResource(""));  
		   
		         System.out.println(ClassLoader.getSystemResource(""));  
		         System.out.println(testPath.class.getResource(""));  
		         System.out.println(testPath.class.getResource("/"));
		         //Class文件所在路径
		         System.out.println(new File("/").getAbsolutePath());  
		         System.out.println(System.getProperty("user.dir"));  
	}

}
 
分享到:
评论

相关推荐

    java绝对路径和相对路径

    ### Java中的绝对路径与相对路径 在Java编程中,路径管理是进行文件操作的重要组成部分,尤其是在Web应用开发中。本文将详细介绍如何在Java中获取不同类型的路径,包括Web服务器下的文件路径、本地路径以及相对路径...

    Java相对路径绝对路径总结

    通过上述总结,我们可以了解到在Java Web开发中,正确理解和使用相对路径和绝对路径是非常重要的。它们在服务器端和客户端有不同的含义,并且在不同的应用场景下有着不同的使用方式。了解这些基础知识有助于我们编写...

    Java开发绝对和相对路径问题

    2. JSP/Servlet 中的相对路径和绝对路径 在 JSP/Servlet 中,路径问题非常重要,正确的理解和使用路径可以避免许多问题。 2.1 服务器端的地址 在 JSP/Servlet 中,服务器端的相对地址指的是相对于当前 Web 应用的...

    绝对路径和相对路径

    在Web开发中,尤其是在使用Java Servlet和JSP技术时,正确理解和使用相对路径和绝对路径至关重要。 ##### 2.1 服务器端的地址 服务器端的相对地址是指相对于你的Web应用的地址,这个地址是在服务器端进行解析的,...

    java中相对路径与绝对路径的问题

    在 Java 中,我们需要了解相对路径和绝对路径的概念,以及如何获取它们。下面我们将详细地讨论 Java 中的相对路径和绝对路径的问题。 1. 获取工程的绝对路径 在 Java 中,我们可以使用 `System.getProperty("user....

    java项目相对路径与绝对路径问题分析

    路径分为绝对路径和相对路径两种类型,它们各有不同的用途和特点。 绝对路径是指从根目录开始的完整路径,它明确指定了文件或目录的确切位置。例如,`file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b` 是一...

    java Web 中相对路径绝对路径问题总结

    在Java Web开发中,理解和掌握相对路径与绝对路径的运用是至关重要的,因为这直接影响到资源定位、页面跳转以及文件读写等操作的正确性。以下是对Java Web中相对路径与绝对路径问题的深入总结: ### 一、路径概念与...

    java中File的相对路径与绝对路径总结

    ### Java中File的相对路径与绝对路径总结 在Java Web开发过程中,经常需要处理文件的读写操作,尤其是在运行时获取配置文件、动态加载对象等情况。对于这些需求,理解和掌握文件的相对路径与绝对路径至关重要。 ##...

    JSP中绝对路径与相对路径

    本文将深入探讨JSP(JavaServer Pages)环境中绝对路径与相对路径的区别及其应用场景,帮助开发者更好地理解这两种路径类型,并在实际开发中做出合适的选择。 #### 二、绝对路径与相对路径的基本概念 1. **绝对...

    java区分绝对路径和相对路径的方法.docx

    在Java编程中,路径是操作系统用来定位文件或目录的字符串。...总的来说,理解和正确使用绝对路径和相对路径对于编写健壮的Java应用程序至关重要。通过上述方法,开发者可以有效地在Java中识别和处理这两种类型的路径。

    相对路径转换工具.rar

    本篇文章将深入探讨绝对路径与相对路径的概念、它们之间的转换以及如何在C++、Java和Python中实现这种转换。 ### 绝对路径与相对路径 **绝对路径**: - 它是文件系统的完整路径,从根目录(如Windows下的"C:\"或...

    java(Web)中相对路径,绝对路径问题总结

    #### JSP/Servlet中的相对路径和绝对路径 在Java Web应用中,路径的解析方式取决于它所在的上下文环境。主要分为两大类:服务器端路径和客户端路径。 ### 服务器端路径 **服务器端路径**是指在服务器端进行解析的...

    Java相对路径总结

    本文将深入探讨Java中的相对路径,这是在处理文件和目录时经常会遇到的一个关键主题。相对路径是相对于当前工作目录或某个已知起点的文件或目录的路径表示方式,与绝对路径(完整描述文件或目录位置的路径)相比,...

    在JAVA文件中获取该项目的相对路径.doc

    JAVA 文件中获取项目的相对路径 在 JAVA 文件中获取项目的相对路径是非常重要的,特别是在 ...通过了解绝对路径和相对路径的概念,我们可以更好地获取当前应用的相对路径和绝对路径,从而更好地处理文件和目录的操作。

    java项目中的绝对路径和相对路径用法说明

    本文将详细讲解Java项目中的绝对路径和相对路径,并提供一些实际应用中的注意事项。 首先,让我们了解一下**绝对路径**。绝对路径是完全指定的、不依赖于当前工作目录的文件或目录位置。它包括了文件系统的所有层次...

    JAVA获取各种路径总结

    1. **获取当前应用的相对路径与绝对路径** - **根目录所对应的绝对路径** - 方法:`request.getRequestURI()` - `request.getRequestURI()` 返回客户端请求的资源的相对路径(相对于当前上下文)。 - **文件的...

    java项目中获取路径详解

    Java 项目中获取路径详解 在 Java 项目中,获取路径是非常重要的,因为它关系到项目的正确运行。特别是在 Java Web 项目中,...在 Java Web 项目中,获取路径变得更加复杂,需要注意编译后的目录和相对路径的关系。

    java类动态获取相对路径

    综上所述,通过结合`ClassLoader`、`getResource`和`File`等类,我们可以动态获取Java类的相对路径,实现对文件资源的有效管理。在实际应用中,可能还需要结合具体的项目结构和需求进行适当的调整。

Global site tag (gtag.js) - Google Analytics