request.getRealPath 详解
2015-02-26 00:00
148 查看
此方法已过时,现在可替换的实现方法有
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,得到的结果也是相同的,它也存在着相同的问题
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,得到的结果也是相同的,它也存在着相同的问题
相关文章推荐
- request.getRealPath()详解
- request.getRealPath()详解
- request.getRealPath()详解
- request.getRealPath()详解
- request.getRealPath()详解
- request.getRealPath("") 的几种实现
- request.getRealPath()的替代方法
- Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的区别
- 【转】request.getcontextPath() 详解
- Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的区别
- request.getcontextPath()详解
- Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的区别
- request.getRealPath(String path) Deprecated
- Request中getContextPath、getServletPath、getRequestURI、getRealPath
- Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的区别
- request.getRealPath("") 的替代方法
- request.getRealPath不推荐使用!
- request.getContextPath()用el表达式怎么写,绝对路径:request.getRealPath
- request.getRealPath不推荐使用
- getRealPath()的用法详解