java lang illegalargument_java true false

java lang illegalargument_java true false我们的JSP项目在上传文件时通常都需要获取目录在服务器上的绝对路径,request.getRealPath()方法显示已经过时,但是还是有替代方法的。HttpSessionsession=request.getSession(true);//获取session//Stringpath=request.getRealPath(“/data/userfile/p_w_picpath”)…

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

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

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

//String path = request.getRealPath(“/data/userfile/p_w_picpath”);  //此方法已经过时

String path = session.getServletContext().getRealPath(“/data/userfile/p_w_picpath”);  //文件保存路径

在servlet或者struts中还可以这样写:this.getServletContext().getRealPath(“/data/userfile/p_w_picpath”);

this.getServlet().getServletContext().getRealPath(“/data/userfile/p_w_picpath”);

以下介绍摘录至:http://blog.sina.com.cn/s/blog_6dbf810d0100romt.html

相关介绍:

在目前最新的Java Servlet API 2.1版本中,不赞成使用request.getRealPath()这个方法,使用ServletContext.getRealPath(java.lang.String)代替它。

在Servlet 2.4文档中对ServletContext.getRealPath(java.lang.String)是这样描述的:

返回一个字符串,包含一个给定虚拟路径的真实路径,如果转换错误,则返回null。例如,虚拟路径“/index.html”不管在服务器文件系统上具有怎样的真实路径,使用“/index.html”总可以找到它。返回的真实路径使用了相近于servlet容器(servlet container)所在计算机或操作系统的格式,包含了适当的路径分隔符。如果servlet容器无法转换则将返回null.

但是,ServletContext.getRealPath()的返回值经常返回不同的路径。

例如:有2个文件

exper1.txt,位于 C:\Tomcat 6.0\webapps\ROOT,

exper2.txt,位于 C:\Tomcat 6.0\webapps,

在C:\Tomcat 6.0\webapps\ROOT写一个.jsp文件:

ServletContext context = getServletContext();

context.getRealPath(“exper1.txt”)结果为C:\Tomcat 6.0\webapps\ROOT\exper1.txt;

context.getRealPath(“exper2.txt”)结果为C:\Tomcat 6.0\webapps\ROOT\exper2.txt;

context.getRealPath(“exper3.txt”)结果仍为C:\Tomcat 6.0\webapps\ROOT\exper3.txt 但是exper3这个文件是不存在的。这也就说明了getRealPath()这个方法是存在一定的问题的。

application.getRealPath()的用法和ServletContext.getRealPath()基本相同,当把前面例子中的context改为application,得到的结果也是相同的,它也存在着相同的问题

2、request对象位于javax.servlet.http.HttpServletRequest包中,但在java API中找不到

网上资料显示在J2EE API或Tomcat API中可找到,暂无验证,有兴趣的朋友可以去试试

3、上述方法可返回项目的完整路径,包括盘符、项目名等。

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

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

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


相关推荐

  • 看上市公司公告的app_毒APP公告

    看上市公司公告的app_毒APP公告用户为本,让用户成为CSDN产品的主人,为此,我们特开设了CSDN产品公告栏,切实听取大家对新功能的反馈,定期抽取部分反馈用户赠送精美礼品一份!在过去一周,CSDN研发团队又上线了哪些功能呢?让我一起看下:CSDNAPP发布最新版,新增大厂在线刷题功能CSDN博主排名更新,原创优质博文更容易得到曝光MD编辑器优化操作更便捷更加极客酷炫的博客皮肤3.0上线绑定脉脉即可获得专属勋…

    2022年8月13日
    6
  • python sqrt函数的使用

    python sqrt函数的使用摘自《python程序设计基础》蔡永铭主编工具:python3.764-bit官方链接:https://www.python.org/平台:Windows10sqrt函数的使用sqrt中文名:平方根在python中使用函数之前需要了解一下模块的含义。模块是一个包含所有定义的函数和变量的文件,模块可以被别的程序引入,以使用该模块中的函数等功能。因为sqrt函数在math模块中,所…

    2022年6月9日
    73
  • 固态硬盘故障表现及数据恢复方案表_ssd硬盘数据恢复得了吗

    固态硬盘故障表现及数据恢复方案表_ssd硬盘数据恢复得了吗固态硬盘出现硬件损坏时,通常是NAND控制芯片损坏造成的,主控芯片是固态硬盘的存取控制芯片,是固态硬盘的灵魂所在。相比于闪存颗粒有限的擦写寿命,在闪存颗粒依然坚挺的时候,主控芯片却损坏的概率反而要高得多,据统计,95%以上的固态硬盘故障,都是由于主控芯片发生故障引起的。主控芯片发生故障的表现有以下几种:(1)容量异常,容量识别成8Mb,16M,1G,2G等?(2)容量正常,但通过16进制编辑工具查看硬盘底层信息,只能显示几个在不断重复的扇区(3)可识别硬盘的型号,…

    2022年9月20日
    2
  • Error filterStart 错误解决「建议收藏」

    Error filterStart 错误解决「建议收藏」2019独角兽企业重金招聘Python工程师标准>>>…

    2022年7月11日
    16
  • idea2021.1的激活码 3月最新注册码

    idea2021.1的激活码 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    65
  • 关系模型的相关术语[通俗易懂]

    关系模型的相关术语[通俗易懂]关系模型的相关术语

    2022年4月21日
    35

发表回复

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

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