Java EE Web项目中的相对路径和绝对路径

 在进行Java EE Web开发时,我们可以选用很多的框架,相信很多同胞们在使用这些框架时都有过被文件路径问题困绕过。我在此所说的相对路径和绝对路径都是针对Web项目的,而不是相对于某个操作系统。
     Java EE里的Web项目有个相对独立的最高目录WebRoot,我们估且认为它是根目录/。Web项目成品中的其它目录都是相对与此目录的子目录。在开发时,我们可能会用到一些框架,比如struts,spring等。使用这些框架,我们需要配制相应的xml文件,至少也会配制web.xml文件。使用Struts时,在struts-conf.xml中映射Action是最常见的配制,所有的映射,都以“/”开头,那么这里的“/”指的是那个目录呢?我想此时你也猜到了,那就是对就用不可见相对独立的WebRoot,应用中“/action”就相当于是系统目录中的”WebRoot/action",知道这一点,就不会在为Action映射老是不可用发愁了。在某个文件夹下的Action动作,映射时只要用”/“来代替”WebRoot“即可,比如我们对”WebRoot/admin/manager/login.do"在Struts-config.xml中作映射,可在相应Action的path中设置"path=/admin/manager/login"即完成的映射。在其它.xml文件中,映射都是这样做的。
     前面提到对应用不可见的“WebRoot",因为每个项目都有WebRoot,那就不好在用它来表示项目的最高目录,此时的解决方案就是用项目名来代替应用的"WebRoot",这就是我们在实际应用中看到”myNews/admin/manager/login.jsp",而不是“WebRoot/admin/manager/login.jsp"。以上这两段文字主要说了”绝对路径“的问题,相信明白了这点,相对路径也就用不了多说,不过相对路径一般不要用在映射文件中,这样容易出错。不过在jsp页面中,本人认为在能用相当路径的情况下尽量使用相对路径,因为有些时候如果使用绝对路径,如果不能区分是配制文件还是实际应用,往往是很容易出错的,常常会在实际应用中用到配制文件中”/“错误的代替了”项目名”,要命的是这个时候很可能转到一个空白页面,并且不报任何错误。这也是推荐使用相对路径的原因所在。
      不过,我发现并不是必须用“绝对路径”的方式来做映射,但也不是“相对路径”,如果映射目录结构层次在两层内(如WebRoot/admin/login.do")可在配制文件中直接用“path=/login”来映射,这样做可能需要在指定“input”属性。不过,按绝对路径的方式来映射,无论层次多深,都是不会出问题的,前提是其它地方都正确无误。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jllb/archive/2009/06/09/4254598.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值