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代码保持一致,也允许在使用带泛型声明的类时不指定实际的类型。如果没有为这个泛型类指定实际的类型,此时被称作rawtype(原始类型),默认是声明该泛型形参时指定的第一个上限类型。当把一个具有泛型信息的对象赋给另一个没有泛型信息的变量时,所有在尖括号之间的类型信息都将被扔掉。比如一个List类型被转换为List,则该List对集合元素的类型检查变成了泛型参数的上限(即Object)。上述规则即为泛型擦除,可以通过下面代码进一步

    2022年8月30日
    5
  • hostapd.conf详细

    hostapd.conf详细#####hostapdconfigurationfile###############################################Emptylinesandlinesstartingwith#areignored#APnetdevicename(without’ap’postfix,i.e.,wlan0useswlan0a…

    2022年5月22日
    186
  • 计算机键盘win键,win10键盘win键失灵怎么办_电脑win10win键没反应的解决方法

    计算机键盘win键,win10键盘win键失灵怎么办_电脑win10win键没反应的解决方法最近有朋友问小编win10键盘win键失灵怎么办,对于win10系统win键突然不能用的问题,相信很多朋友遇到过。有的朋友在升级完win10系统之后发现win10键盘win键失灵了,按下win键没反应,那么当我们遇到这种问题应该如何解决呢?别着急,小编这就为大家带来电脑win10win键没反应的解决方法。电脑win10win键没反应的解决方法:1、在Windows10系统桌面,右键点击任务栏的空白…

    2022年6月4日
    45
  • Modelsim下载 安装 与 和谐教程

    Modelsim下载 安装 与 和谐教程一.下载ModelsimSE-642019.2-windows网盘分享:链接:https://pan.baidu.com/s/1BASOJ1DYZYrK9Ot_BRs7HA提取码:md4d二.安装下载完压缩包后解压,安装按下图所示步骤进行。注意,完全退出杀毒软件如360,否则可能安装/和谐失败。自此安装完成,下面进行和谐。三.和谐运行patch.dll会生成LICENSE.TXT文件,将此文件另存到modelsim安装路径下。建立用户环境变量:.

    2022年6月15日
    35
  • 【HighCharts系列教程】七、导出属性——exporting

    【HighCharts系列教程】七、导出属性——exporting一、exporting属性说明默认情况下,HighCharts支持将图表导出为图片或打印功能的。也就是在图表的右上角有两个按钮。打击即可进行相应的操作。实现导出和打印功能需要引入相应的js文件,也就是

    2022年8月5日
    4
  • K3 官改新手小白配置阿里DDNS 超级详细「建议收藏」

    K3 官改新手小白配置阿里DDNS 超级详细「建议收藏」K3官改新手小白配置阿里DDNS超级详细写的比较仓促,不对之处请指正,这个是写给小白看的,大神勿喷首先介绍一下什么是DDNSDDNS(DynamicDomainNameServer)是动态域名服务的缩写。DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器…

    2022年6月12日
    43

发表回复

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

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