java getrealpath_关于getRealPath[通俗易懂]

java getrealpath_关于getRealPath[通俗易懂]1.关于request.getRealPath的出错问题:Stringfilename=request.getRealPath(filename)//出了错——————-错误信息:ThemethodgetRealPath(String)fromthetypeServletRequestisdeprecated解决:资料来源:http://bbs…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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目录下。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191650.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java课程设计-学籍信息管理系统「建议收藏」

    一、系统分析    学生的学籍信息是记录学生的重要信息档案,如何以电子文档形式记录下学生的学籍信息是每个学校必须做的事情,该学生学籍信息管理系统就是为了方便学校记录下每一个学生的基本信息,生成电子数据库,并且能够做到查询、更改、删除、浏览等功能操作,让学籍信息的管理更加方便快捷。二、设计方案1、系统框架    学籍信息管理系统是集学籍信息录入,学籍信息查询,学籍

    2022年4月6日
    43
  • 如何将pdf转换成word的3种免费方法「建议收藏」

    如何将pdf转换成word的3种免费方法「建议收藏」怎样将PDF转成Word?这是很多网友经常问到的问题,PDF转换成Word利用一些小技巧和工具,你会发现是很容易的,以下的PDF转Word的3种免费方法你一定要看一看。1、“复制/粘贴”大法在寻找如何将PDF转换成Word的“高级”办法之前,不妨先试一下最傻瓜的方法:首先用极速PDF阅读器打开PDF文档,选择文本内容后右击选择“复制选择内容”或直接使用“全选”;接着新建一个Word文档后,直接将内容在Word中粘贴即可。如果文档格式不复杂,这样得到的Word就够用了,当然有些可能排版会比较乱。2、G

    2022年6月1日
    61
  • Microsoft Enterprise Library 6.0 下载

    Microsoft Enterprise Library 6.0 下载一不留神entLib也发布了6.0版本程序及源代码的下载:http://www.microsoft.com/en-us/download/details.aspx?id=38789附:MSDN的参考资料:http://msdn.microsoft.com/en-us/library/dn169621.aspx转载于:https://www.cnbl…

    2022年10月20日
    3
  • pycharm django环境搭建_宝塔Linux怎么搭建asp程序

    pycharm django环境搭建_宝塔Linux怎么搭建asp程序今天来简单总结一下使用Pycharm和Django来搭建一个最简单的PythonWeb应用(就是我们所说的‘HelloWorld’)。在这里,我们首先假设已经安装好了Python(2.x和3.x版本均可)。安装Django  无论是Python2.x还是Python3.x版本,都可以使用pip来安装Django。在控制台使用如下命令:pipinstalldjango安装成功后,在i

    2022年8月28日
    3
  • 互联网时代下用户的安全需求_这是一个互联网的时代

    互联网时代下用户的安全需求_这是一个互联网的时代突然意识到这个课题自己也挺感兴趣,而且形势很严峻。

    2022年10月5日
    2
  • acwing-9. 分组背包问题(分组背包)

    acwing-9. 分组背包问题(分组背包)有 N 组物品和一个容量是 V 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vij,价值是 wij,其中 i 是组号,j 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数 N,V,用空格隔开,分别表示物品组数和背包容量。接下来有 N 组数据:每组数据第一行有一个整数 Si,表示第 i 个物品组的物品数量;每组数据接下来有 Si 行,每行有两个整数 vij,wij,用空格隔开,分别表示第 i

    2022年8月9日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号