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、上述方法可返回项目的完整路径,包括盘符、项目名等。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Threading(in thread main)

    PainlessThreadingThisarticlediscussesthethreadingmodelusedbyAndroidapplicationsandhowapplicationscanensurebestUIperformancebyspawningworkerthreadstohandlelong-runningoperat

  • python按位取反_python赋值运算符

    python按位取反_python赋值运算符Python中的~(按位取反)运算的理解:按照我平时的理解,当我使用~按位取反运算的时候,计算机会将操作数所对应的二进制表达式的每一个位进行取反计算,取反后所得到的值就是~按位取反的运算结果(这点没问题)例如,假如我的计算机是32位的,我接下来要计算~5的值,计算过程如下:5的二进制表达式为:00000000000000000000000000000101执行~运算…

  • 梯度下降 随机梯度下降 算法是_神经网络算法

    梯度下降 随机梯度下降 算法是_神经网络算法一、一维梯度下降算法思想:我们要找到一个函数的谷底,可以通过不断求导,不断逼近,找到一个函数求导后为0,我们就引入了一个概念学习率(也可以叫作步长),因为是不断逼近某个x,所以学习率过大会导致超过最优解,而学习率过小,会导致收敛速度过慢。二、多维梯度下降算法思想:和一维梯度下降算法思想类似,只是导数由原来的一维变成现在的多维,算法思想本质没有变化,在计算导数的过程发生了…

  • bigdecimal保留2位小数_java bigdecimal保留两位小数

    bigdecimal保留2位小数_java bigdecimal保留两位小数本篇分享Java注解方法实现BigDecimal保留两位小数!欢迎打卡学习!

  • pycharm虚拟环境的解释器设置_pycharm虚拟环境

    pycharm虚拟环境的解释器设置_pycharm虚拟环境什么是Pycharm中的虚拟环境 假如想要在Pycharm中建立两个项目,并且这两个项目需要用到同一个第三方库的不同版本,如果这两个项目共享一个运行环境,那么此时就会发生版本冲突问题。为了解决这个问题,Pycharm提供了Virtualenv(即,虚拟环境)。Virtualenv可以创建一套独立运行的Python环境,从而做到不同项目之间的隔离。当需要安装该环境所需要的包时,在设置—项目—…

    2022年10月29日
  • acwing-91. 最短Hamilton路径(状态压缩dp)

    acwing-91. 最短Hamilton路径(状态压缩dp)给定一张 n 个点的带权无向图,点从 0∼n−1 标号,求起点 0 到终点 n−1 的最短 Hamilton 路径。Hamilton 路径的定义是从 0 到 n−1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数 n。接下来 n 行每行 n 个整数,其中第 i 行第 j 个整数表示点 i 到 j 的距离(记为 a[i,j])。对于任意的 x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]≥a[x,z]。输出格式输出一个整数,表示最短 Ha

发表回复

您的电子邮箱地址不会被公开。

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