1.关于request.getRealPath的出错

问题:

String filename  =  request.getRealPath(filename)  //出了错-------------------

错误信息:

The method getRealPath(String) from the type ServletRequest is deprecated

解决:资料来源:http://bbs.chinaunix.net/viewthread.php?tid=383861参看request.getRealPath的java doc:

Deprecated. As of Version 2.1 of the Java Servlet API, use ServletContext.getRealPath(java.lang.String) instead.

而在servlet中使用getServletContext.getRealPath()这个方法收到war

和non-war的影响,以及不同app

server实现的影响,运气好的话,你常常会得到null,嘿嘿,比如你在weblogic上部署war文件,又调用这个方法..

推荐ServletContext.getResourceAsStream

参考资料:http://bbs.chinaunix.net/viewthread.php?tid=383861

2.关于serveletContext.getRealPath返回NULL和不同的app server返回不同的结果

resoure url:

http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=12968&start=0&tstart=0问题:我的应用有几个配置文本配置文件(是一些报表的模板),我放在WEB-INF下面的config目录下,我有程序

中是这样得到这个config的实际路径的

先用 serveletContext.getRealPath得到根路径,tomcat中比如是

c:\tomcat\webapp\test

然后我加上  "/WEB-INF/config/aa.config",这样得到文件的path然后进行读入,

应用在tomcat上跑是ok的,后来将war放到weblogic上,出错,原因是:

在weblogic上用getRealPath得到的是像

myserver\stage\_appsdir_test_war\test.war!\WEB-INF\config....

这样的路径,于是一直报FileNotFoundException

解决:

serveletContext.getRealPath

这个方法在不同的服务器上所获得的实现是不一样的

这种情况我也同样遇到过

建议是通过classloader来获得你配置的资源文件

context.getRealPath("/")可能返回了null,你可以输入来看看,

对一个打包的应用来说,是没有RealPath的概念的,调用getRealPath只会简单地返回null。其实,也很

好理解,一个文件被打包入了.war文件,就不存在目录结构了(虽然包中仍然存在目录结构,但这不等同

于文件系统中的目录结构)。所以,对war包中的资源是无法得到RealPath的。这样也就无从通过文件IO

进行读取了。

那么,如何读取war包中的资源呢?答案是使用ServletContext.getResourceAsStream

("/WEB-INF/config/aa.config")方法。

原则:基本上就是尽量使用j2ee规范中的各层次classloader来获取资源,而不是试图去找文件的绝对路

方法:调用this.getClass().getClassLoader().getResource("/").getPath(); 获取到classes目录的全

路径

使用:在得到classes目录的全路径后再根据字符串的截取与拼装达到你的要求即可。

楼上说的对,WebLogic对WEB-INF目录下的文件是有访问控制的,最好不要放在这个目录下。

最好不要放在WEB-INF目录下。。

java getrealpath_关于getRealPath相关推荐

  1. java getrealpath_从request获取各种路径总结 request.getRealPath(url)

    equest.getRealPath() 这个方法已经不推荐使用了,代替方法是: request.getSession().getServletContext().getRealPath() 从Req ...

  2. java getrealpath_Java servletcontext.getRealPath(“ /”)是什么意思,什么时候应该使用它...

    小编典典 介绍 该ServletContext#getRealPath()被intented到Web内容的路径(在服务器的磁盘文件系统上展开的WAR文件夹结构的路径)转换为绝对磁盘文件系统路径. 该& ...

  3. java web getrealpath,[学习笔记]java web ServletContext.getRealPath(String str)方法的使用

    ServletContext.getRealPath(String str)方法的使用 --------------------------------------------------转载---- ...

  4. java getrealpath_JavaEE路径陷阱之getRealPath

    绝对不要使用ServletContext的getRealPath方法获取Web应用的路径!应该使用ServletContext的getResource()方法,直接使用相对于Web应用根目录的相对路径 ...

  5. JavaEE路径陷阱之getRealPath

    转自:http://blog.csdn.net/shendl/article/details/1427637   JavaEE路径陷阱之getRealPath 本文是<Java路径问题最终解决方 ...

  6. ServletConfig对象和ServletContext对象

    ServletConfig对象是servlet配置对象,(web.xml中的)servlet信息封装在ServletConfig对象中,因此在一个web应用可存在多个ServletConfig.Ser ...

  7. Spring基础知识及入门

    ---恢复内容开始--- 1 spring框架概述 1.1 什么是spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson  ...

  8. Servlet详细教程

    如需更多java视频教程资源.面试资源.Java项目资源,请关注公众号:最高权限比特流,回复"java"获取! Servlet简介 servlet是Server Applet的简称 ...

  9. java getrealpath_JSP中 request.getRealPath(/xx/yy) 方法提示已经过时的替代方法

    我们的JSP项目在上传文件时通常都需要获取目录在服务器上的绝对路径,request.getRealPath()方法显示已经过时,但是还是有替代方法的.HttpSession session = req ...

最新文章

  1. 轻松掌控全链路服务监控:方案概述与对比 | 真的很干!
  2. RecyclerView父组件和子组件点击冲突问题解决
  3. 1.3.3 错题整理(组成原理)
  4. web前端技术分享:koa中间件是如何实现的?
  5. 作为一名程序员,谁没跳过槽,“6”招让你“空降”大厂
  6. DS二叉树--二叉树之数组存储
  7. JS组件系列——Bootstrap Table 表格行拖拽
  8. c语言程序求点坐标在哪个象限,C课后习题
  9. JavaScript 学习计划
  10. postgresql某进程占用cpu资源过高,降不下来
  11. 网络安全系列之四十 在Linux中设置SET位权限
  12. 搜索附近店铺到用户的距离的小经验
  13. 腾讯微博开放平台的工作效率真差
  14. C4droid导出程序
  15. 数据分析师工资水平怎么样?看看这些你就知道了
  16. SD卡与TF卡的区别是什么?哪个更耐用?
  17. C++ Beep()演奏简谱的改进以及实现背景音乐
  18. 微信小程序_页面加载不出来/页面跳转不成功的若干可能原因
  19. 因果性与因果模型 | 中国人民大学哲学与认知科学明德讲坛
  20. 使用Matlab把图片集合生成视频流文件

热门文章

  1. 点石互动--robin之:渡虎谷SEO大赛第二阶段总结
  2. 数据结构与算法(十六)冒泡排序和鸡尾酒排序
  3. 我爱计算机专业作文1000字,我爱计算机
  4. C/C++编程日记:制作一个简单的内存外挂
  5. IE,chrome,ff的设为首页、加入收藏及保存到桌面js实现
  6. 中职校计算机案例教学法,中职计算机课程中案例教学法的应用研究
  7. 花生壳实现内网穿透,获取公网IP?花生壳端口映射外网TCP测试
  8. Class4 Linux云上环境搭建学习笔记
  9. 能够替代StickyNotes第三方Windows桌面便签有哪些
  10. HDU 1166-敌兵布阵