日期:2014-05-20  浏览次数:20565 次

相对路径和绝对路径
一个是百度百科的解释,一个是百度知道好几百个好评几十个评论支持的解释,
看起来都很权威,不知道相对路径说法哪个才是正确的,另外那个符号/和\是有区别还是打错了
1:百度知道
绝对路径:是从盘符开始的路径,形如C:\windows\system32\cmd.exe相对路径:是从当前路径开始的路径,假如当前路径为C:\windows要描述上述路径,只需输入system32\cmd.exe实际上,严格的相对路径写法应为.\system32\cmd.exe其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。假如当前路径为c:\program files要调用上述命令,则需要输入..\windows\system32\cmd.exe其中,..为父目录。当前路径如果为c:\program files\common files则需要输入..\..\windows\system32\cmd.exe另外,还有一种不包含盘符的特殊绝对路径,形如\windows\system32\cmd.exe无论当前路径是什么,会自动地从当前盘的根目录开始查找指定的程序。
2:百度百科
一、例如在本地硬盘有如下两文件,它们要互做超链接  文档相对路径  
G:\site\index.htm
G:\site\web\article\01.htm
如下所示:
index.htm要想链接到01.htm这个文件,正确的链接应该是:
\web\article\01.htm 这是标准的相对路径。
反过来,01.htm要想链接到index.htm这个文件,在01.htm文件里面应该写上这句:
../../index.htm 这里的 ../ 表示向上一级。
java?相对路径?绝对路径?区别

------解决方案--------------------
引用:
绝对路径就是从盘符开始,相对路径是相对于某个文件或文件夹而言目标文件的位置。
win是反斜杠\  linux是斜杠/


=========================
没有以文件的相对路径吧。
绝对路径就是能完整的表示一个文件的路径。
相对路径就是以某个路径为参考的路径。
------解决方案--------------------
1.可以在servlet的init方法里
String path = getServletContext().getRealPath("/");
这将获取web项目的全路径
例如 :E:\eclipseM9\workspace\tree\
tree是我web项目的根目录
2.你也可以随时在任意的class里调用
this.getClass().getClassLoader().getResource("/").getPath();
这将获取 到classes目录的全路径
例如 : E:\eclipseM9/workspace/tree/WEB-INF/classes/

这个方法也可以不在web环境里确定路径,比较好用

3.request.getContextPath();
获得web根的上下文环境
如 /tree
tree是我的web项目的root context

/*jsp 取得当前目录的路径
path=request.getRealPath("");
/*得到jbossWEB发布临时目录 warUrl=.../tmp/deploy/tmp14544test-exp.war/
path=C:\jboss-4.0.5.GA\server\default\tmp\deploy\tmp14544test-exp.war\

String   path   =   (String)request.getContextPath();
/*得到项目(test)应用所在的真实的路径 path=/test 
String     path     =   request.getRequestURI();
/*得到应用所在的真实的路径 path=/test/admin/admindex.jsp

String   savePath=request.getRealPath(request.getServletPath());
/*得到当前文件的磁盘绝对路径

//JAVA 取得当前目录的路径
File   file=new   File(".");   
String path=file.getAbsolutePath();
                path=file.getPath();
/*得到jboss运行目录 path=C:\jboss-4.0.5.GA\bin\

---------------------------------------------

Java相对路径/绝对路径总结
分类:资料栏
转自:http://www.javaeye.com/topic/117978

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");%>