getRealPath()和getResource()区别

xxx0000007 2011-11-17 11:36:01
URL url = request.getSession().getServletContext().getResource("/");
String path = request.getSession().getServletContext().getRealPath("/")
想求教大家这两个方法的区别是什么?
在Linux下使用时会使用什么方法?
在部署成war包时会怎样?
那种方法比较通用一些?
谢谢大家 最好描述详细一下 分享一下大家不同的开发经验
...全文
394 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
追风筝的孩子 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 oyxm0 的回复:]
你之所以要压缩成war包其就是为了部署,部署你肯定是要换系统或者换服务器,一旦一换你在用你的绝对路径肯定是出问题的!
[/Quote]我觉得getRealPath()。。。也是在程序中写的,你换个地方,登陆那个servlet,得到的值肯定也会变化的,至于linux环境,我不清楚,但windows没问题。
半个鼠标 2011-11-18
  • 打赏
  • 举报
回复
你之所以要压缩成war包其就是为了部署,部署你肯定是要换系统或者换服务器,一旦一换你在用你的绝对路径肯定是出问题的!
半个鼠标 2011-11-18
  • 打赏
  • 举报
回复
看看这个吧,说的很详细了
http://blog.csdn.net/shendl/article/details/1427637
追风筝的孩子 2011-11-18
  • 打赏
  • 举报
回复
看了楼上我自己也不清楚,我们老师一直教我们用.getRealPath("/")的。。。他是个有经验的开发人员
半个鼠标 2011-11-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 a328240784 的回复:]

引用 5 楼 oyxm0 的回复:
你之所以要压缩成war包其就是为了部署,部署你肯定是要换系统或者换服务器,一旦一换你在用你的绝对路径肯定是出问题的!
我觉得getRealPath()。。。也是在程序中写的,你换个地方,登陆那个servlet,得到的值肯定也会变化的,至于linux环境,我不清楚,但windows没问题。
[/Quote]
那是因为你是在你个人的电脑上开发肯定没什么问题,假如你现在换成你同事的电脑,或者你把你的项目部署到远程服务器上,你看看出不出问题咯!
一天zijie一夜 2011-11-18
  • 打赏
  • 举报
回复
我感觉看你的需求,我做上传图片用的就是getRealPath(),毕竟存在及合理嘛。呵呵!
xxx0000007 2011-11-18
  • 打赏
  • 举报
回复
呵呵 谢谢大家 实际上大家动手测试一下效果是最好的了 结贴了 ~
半个鼠标 2011-11-17
  • 打赏
  • 举报
回复
getRealPath()获得的是绝对路径,getResource()获得的是相对路径,对于开发人员来说都是使用相对路径,因为使用的是绝对路径一旦你换了服务器或者系统,那便会出现路径或者类加载的错误,典型的如果你在windows下可能有C,D盘之分,但是在linux系统下便没有盘符之分了,所以建议使用getResource()
如果你使用的是getResource()你在用myeclipse或者eclipse时把项目压缩成war包后对你的部署工作不会存在影响,但是如果是用的绝对路径,一定会有影响!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧