关闭

request.getRealPath不推荐使用request.getRealPath("") 这个方法已经不推荐使用了

1454人阅读 评论(0) 收藏 举报
request.getRealPath不推荐使用request.getRealPath("") 这个方法已经不推荐使用了,那代替它的是什么方法 Deprecated. As of Version 2.1 of the Java Servlet API, use ServletContext.getRealPath(java.lang.String) instead. request.getSession().getServletContext().getRealPath() 得到站点的绝对地址
 
如request.getSession().getServletContext().getRealPath(File.separator) 得到项目的绝对路径如:
 
D:\ProgramFiles\apache-tomcat-6.0.33\webapps\wt4\
 
request.getSession().getServletContext().getRealPath(“/updload/video/”) 得到项目的绝对路径
 

D:\ProgramFiles\apache-tomcat-6.0.33\webapps\wt4\updload\video\


1、此方法已过时,现在可替换的实现方法有

request.getSession().getServletContext().getRealPath("/")

在Servlet 里用this.getServletContext().getRealPath("/");获得绝对路径。

struts里用this.getServlet().getServletContext().getRealPath("/")获得绝对路径。

 

相关介绍:

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


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

java 获取绝对路径与getRealPath

...
  • hgxbra
  • hgxbra
  • 2016-12-02 12:15
  • 1433

Java的getRealPath()方法

getRealPath()方法概述:public java.lang.String getRealPath(java.lang.String path)返回一个指定虚拟路径的真实路径(完整路径)的字符串。举例:虚拟路径"/index.html"将返回服务器文件系统中的绝对路径&q...
  • penghaijun
  • penghaijun
  • 2007-08-03 16:44
  • 4961

getRealPath方法过时(有删除线)

getRealPath()加了删除线,表示开发包升级不推荐使用了!   如下: String path = ServletActionContext.getRequest().getRealPath("/xx");   解决代替方法:   HttpS...
  • u012833063
  • u012833063
  • 2015-03-06 16:01
  • 712

Java获取服务器环境

package com.rapido.utils; import java.util.Properties; /** * 获取服务器环境信息 * @author X-rapido * */ public class SystemDataUtil { public static Pro...
  • xiaokui_wingfly
  • xiaokui_wingfly
  • 2015-05-21 10:07
  • 1400

Java Web获取Web应用根路径(转)

最基本的 1,request.getRealPath("/");这个方法已不推荐用   2,在Servlet 里用this.getServletContext().getRealPath("/");获得要路径。  &...
  • classicbear
  • classicbear
  • 2012-05-09 10:52
  • 22526

servletcontext.getRealPath()

关于serveletContext.getRealPath()方法 1.关于request.getRealPath 问题: String filename=request.getRealPath(filename) ------------------- 信息: warnin...
  • lzynihao
  • lzynihao
  • 2012-12-18 19:05
  • 55449

ServletContext.getRealPath() 的输入参数要以"/"开头

ServletContext.getRealPath() 是从当前servlet 在tomcat 中的存放文件夹开始计算起的 比如,有个servlet 叫 UploadServlet,它部署在tomcat 下面以后的绝对路径如下: C:\Program Files\apache-tomcat-8...
  • yasi_xi
  • yasi_xi
  • 2014-03-26 15:54
  • 10789

request.getRealPath的替换方法

request.getRealPath("") 这个方法已经不推荐使用了 替换方法为: request.getSession().getServletContext().getRealPath("") 得到站点的绝对地址 如request...
  • xzw_123
  • xzw_123
  • 2016-06-15 10:25
  • 1544

request.getRealPath()的替代方法

 获得要路径的几种方法1,request.getRealPath("/");这个方法已不推荐用2,在Servlet 里用this.getServletContect().getRealPath("/");获得要路径。3,struts里用this.ge...
  • alex197963
  • alex197963
  • 2009-05-31 20:21
  • 4259

request.getRealPath()详解

1、此方法已过时,现在可替换的实现方法有 request.getSession().getServletContext().getRealPath("/") 在Servlet 里用this.getServletContext().getRealPath("/&q...
  • xyw591238
  • xyw591238
  • 2016-06-28 16:57
  • 3437
    个人资料
    • 访问:7995次
    • 积分:160
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:15篇
    • 译文:0篇
    • 评论:0条
    文章分类