java lang illegalargument_java true false
大家好,又见面了,我是你们的朋友全栈君。
我们的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.cn/191946.html原文链接:https://javaforall.cn
相关文章
- java用什么编译器_Java用Java编译「建议收藏」
- java锁:第四章:读写锁
- java贪吃蛇小游戏(详解)[通俗易懂]
- java图书馆新地址_值得你关注的16个顶级 Java 开源项目!小白必看
- java找不着符号_找不到符号:Java
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java递归和迭代_Java中的迭代与递归
- java网页安全提示_win7系统打开网页提示“应用程序已被JAVA安全阻止”的解决方法…
- 【说站】java与c语言区别
- native2ascii java_Native2Ascii和Ascii2Native的Java实现
- 秋招面试题系列- - -Java 工程师(一)
- java事务_Java 事务详解[通俗易懂]
- java如何打印菱形_JAVA输出菱形
- vscode配置java环境变量_配置Java
- java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this a
- 【错误记录】Android Studio 4.2.1 编译报错 ( 设置支持的 Java 和 Kotlin 版本 | java.lang.BootstrapMethodError )
- Java获取当前所在进程的PID详解编程语言
- 怎么解决java.lang.NoClassDefFoundError错误详解编程语言
- java 中的valueOf方法和强转详解编程语言
- Java封装MySQL让编程更简单(java封装mysql)
- Linux下Java开发入门指南(linux下java开发)
- 系统命令Java实现Linux系统命令调用的探究(java调用linux)
- 使用Java在Redis中实现过期操作(redisjava过期)
- 机制Redis Java中的过期机制解决方案(redisjava过期)
- 处理报错:java/lang/NoClassDefFoundError: java/lang/Object
- 期MySQL与Java结合长期趋势不减(mysqljava长)
- Java如何帮助掌握Oracle(java了解oracle)
- Java将字符串动态生成字节码的实现方法