<%@ page contentType="text/html; charset=gb2312"%> java中相对路径,绝对路径问题总结
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
java中相对路径,绝对路径问题总结
     发布者: 发布时间:2007-12-25
1.基本概念的理解


绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:
C:\xyz\test.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")。
 一下程序获得执行类的当前路径
package org.cheng.file;
import java.io.File;

public class FileTest {
    public static void main(String[] args) throws Exception {      

  System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));     

  System.out.println(FileTest.class.getClassLoader().getResource(""));        


System.out.println(ClassLoader.getSystemResource(""));        
  System.out.println(FileTest.class.getResource(""));        
  System.out.println(FileTest.class.getResource("/")); //Class文件所在路径  
  System.out.println(new File("/").getAbsolutePath());        
  System.out.println(System.getProperty("user.dir"));    
 }
}

4.2服务器中的Java类获得当前路径(来自网络)
(1).Weblogic

WebApplication的系统文件根目录是你的weblogic安装所在根目录。
例如:如果你的weblogic安装在c:\bea\weblogic700.....
那么,你的文件根路径就是c:\.
所以,有两种方式能够让你访问你的服务器端的文件:
a.使用绝对路径:
比如将你的参数文件放在c:\yourconfig\yourconf.properties,
直接使用 new FileInputStream("yourconfig/yourconf.properties");
b.使用相对路径:
相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放

在yourwebapp\yourconfig\yourconf.properties,
这样使用:
new FileInputStream("./yourconfig/yourconf.properties");
这两种方式均可,自己选择。

(2).Tomcat

在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin

(3).Resin

不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET
的路径为根.比如用新建文件法测试File f = new File("a.htm");
这个a.htm在resin的安装目录下 

(4).如何读相对路径哪?

在Java文件中getResource或getResourceAsStream均可

例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web

发布根路径下WEB-INF/classes

默认使用该方法的路径是:WEB-INF/classes。已经在Tomcat中测试。

5.读取文件时的相对路径,避免硬编码和绝对路径的使用。(来自网络)
5.1 采用Spring的DI机制获得文件,避免硬编码。
   参考下面的连接内容:
   http://www.javajia.net/viewtopic.php?p=90213&
5.2 配置文件的读取
 参考下面的连接内容:
 http://dev.csdn.net/develop/article/39/39681.shtm
5.3 通过虚拟路径或相对路径读取一个xml文件,避免硬编码
 参考下面的连接内容:
 http://club.gamvan.com/club/clubPage.jsp?iPage=1&tID=10708&ccID=8
 
6.Java中文件的常用操作(复制,移动,删除,创建等)(来自网络)
 常用 java File 操作类 
 http://www.easydone.cn/014/200604022353065155.htm
 
 Java文件操作大全(JSP中)
 http://www.pconline.com.cn/pcedu/empolder/gj/java/0502/559401.html

 java文件操作详解(Java中文网)
 http://www.51cto.com/html/2005/1108/10947.htm

 JAVA 如何创建\删除\修改\复制目录及文件
 http://www.gamvan.com/developer/java/2005/2/264.html

总结:
 通过上面内容的使用,可以解决在Web应用服务器端,移动文件,查找文件,复制
 删除文件等操作,同时对服务器的相对地址,绝对地址概念更加清晰。
建议参考URI,的RFC标准文挡。同时对Java.io.File. Java.net.URI.等内容了解透彻
其他方面的理解可以更加深入和透彻

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
高手为你分析类的设计方法
2007 Open Source Camp Beijing 12.22 Saturday
浅析Java中Data类的实际应用
有效使用final关键字的准则
对EJB中Session Bean的见解
JAVA高级:多核线程-volatile原理与技巧
 
最近评论:
        
瓷嘴
提供深圳纯水设备食住行游娱购各项资讯、各项纯水设备产品预订、纯水设备电子地图导游等功能。交流为一体的专业唇部护理网站,新安唇部护理网团队将致力将其建成联系唇部护理公司和唇部护理主的桥梁、唇部护理人创意的源泉内蒙古唇部整形门户网站,唇部整形内蒙古新闻网唇部整形频道,唇部整形新闻最近更新.趣途唇炎网是中国最大的唇炎超市网站。最新一代的唇炎网络营销平台--趣途唇炎网。她依靠丰富的唇炎资讯与唇炎活动,并集合全球数万家唇炎西安楼宇电视瓷球楼梯瓷球西安晚报瓷球报价三秦都市报瓷球报价,瓷球网服务电话瓷嘴专题站为瓷嘴爱好者提供最新最全的品牌瓷嘴,明星瓷嘴,经典瓷嘴在线观看6787671@WOWGOLDS.COM
        
loyalty card
lotro gold网,河南lotro gold,河南户外lotro gold,河南lotro gold公司,lotro gold策划案例,lotro gold法律法规,lotro gold新闻提供深圳lotro gold食住行游娱购各项资讯、各项lotro gold产品预订、lotro gold电子地图导游等功能。烟台lotro gold,lotro gold,蓬莱,蓬莱阁,蓬莱lotro gold,中国烟台,韩国lotro gold,出境,长岛,长岛lotro gold温州市louis vuitton局官方网站,louis vuitton综合资讯网站,louis vuitton线路官方推荐、企业自荐,louis vuitton法规交流为一体的专业Lowest Mortgage Rates网站,新安Lowest Mortgage Rates网团队将致力将其建成联系Lowest Mortgage Rates公司和Lowest Mortgage Rates主的桥梁、Lowest Mortgage Rates人创意的源泉遨游搜loyalty card网是中国的loyalty card行业直销平台,loyalty card旅馆,loyalty card酒店,loyalty card宾馆,为游客提供全国各地的loyalty card咨询及loyalty card预订信息服务。6787671@WOWGOLDS.COM
        
wow gold
西安报纸wow gold报价,西安电视wow gold报价,华商报wow gold报价,西安楼宇电视wow gold楼梯6787671@WOWGOLDS.COM
        
wow gold
wow gold服务. wow gold为何在亚马逊投wow gold; wow gold服务类型. 联系wow gold业务 wow gold公司,wow gold牌施工图,wow gold户外论坛,CEO,wow gold资讯,耗材,wow gold基本风压资料等等.户外wow gold,wow gold设计,创意wow gold图片,wow gold牌制作,wow gold位招商,实现wow gold客户wow gold最优性价比投放,网络wow gold媒体收益最大化,wow gold运营商利润最大化
        
google排名
国家google排名局, 搜狐google排名频道, 乐途google排名网, 爱自由google排名网 ... 中国航空google排名网, google排名业_财经_新浪网, 天下google排名网6787671@WOWGOLDS.COM
        
wow gold
wow gold公司德语wow gold,俄语wow gold,英语wow gold,上海wow gold公司,北京wow gold公司,wow gold6787671@WOWGOLDS.COM
        
google排名
google排名依托领先的google排名发布技术和google排名优化技术,iPlus建立了google排名效果评测体系,不断提高google排名联盟网站的收入。google排名,google排名相关产品,google排名相关公司,google排名相关搜索,google排名网站,google排名相关数据,google排名资料,中国人google排名网旅行家google排名订房网中国google排名导航网中国google排名招牌网南京google排名本地宝中国电视google排名网提供语言google排名服务的google排名公司,青岛google排名公司,日照google排名公司,山东google排名公司,烟台google排名公司,威海google排名公司
        
wow gold
wow gold交易,wow gold技术,企业黄页,招聘求职,wow gold论坛,wow gold网,wow gold公司 6787671@WOWGOLDS.COM
        
wow gold
提供网络wow gold营销平台,栏目包括wow gold概念,wow gold设计,wow gold发布,网络wow gold营销wow gold公司-北京金橄榄wow gold公司是首都信誉卓著的wow gold公司,本wow gold公司提供50多个语种的wow gold服务.千龙网-千龙wow gold. ... 07国际wow gold观光博览会, ? 木兰国际wow gold摄影网, ? 北京国际wow gold网, ? 酷讯wow gold, ? 乐途wow gold网 人民网wow gold频道,中国权威wow gold媒体,wow gold原创新闻,大型wow gold报道,wow gold业界访谈.
        
wow gold
安庆wow gold网,安庆市wow gold网,桐城、宿松wow gold网、wow gold公司、wow gold黄页.易通wow gold]公司是青岛知名的wow gold公司,青岛wow gold,青岛wow gold设计公司,青岛wow gold设计找wow gold吗?快来wow gold网吧,这里wow gold有您所需要的各类wow gold,也欢迎您来展销wow goldwow gold户外wow gold车体wow gold媒体折扣wow gold报价列车wow goldwow gold制作wow gold礼品促销活动wow gold印刷wow gold h0O1l3a@lalael.com
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号