日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSP中 request.getRealPath(/xx/yy) 方法提示已经过时的替代方法

發布時間:2024/4/13 javascript 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP中 request.getRealPath(/xx/yy) 方法提示已经过时的替代方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們的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://blog.51cto.com/983836259/1694397

總結

以上是生活随笔為你收集整理的JSP中 request.getRealPath(/xx/yy) 方法提示已经过时的替代方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。