程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP中 request.getRealPath("/xx/yy") 方法提示已經過時的替代方法

JSP中 request.getRealPath("/xx/yy") 方法提示已經過時的替代方法

編輯:關於JSP

JSP中 request.getRealPath("/xx/yy") 方法提示已經過時的替代方法


我們的JSP項目在上傳文件時通常都需要獲取目錄在服務器上的絕對路徑,request.getRealPath()方法顯示已經過時,但是還是有替代方法的。  
HttpSession session = request.getSession(true);  //獲取session

//              String path = request.getRealPath("/data/userfile/image");  //此方法已經過時
                String path = session.getServletContext().getRealPath("/data/userfile/image");  //文件保存路徑

 

  在servlet或者struts中還可以這樣寫:  
this.getServletContext().getRealPath("/data/userfile/image");

this.getServlet().getServletContext().getRealPath("/data/userfile/image");

 

    相關介紹:     在目前最新的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、上述方法可返回項目的完整路徑,包括盤符、項目名等。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved