ServletContext.getRealPath出現的一些問題


文件路徑獲取的時候,在A電腦的本地服務啟動環境下可以成功,但是在B電腦的本地服務上去獲取的結果為Null

獲取方法為 String path = request.getServletContext().getRealPath("resource/downloadFile/");

后來分析原因:在servlet中使用getServletContext.getRealPath()這個方法受到war 和non-war的影響,以及不同app server實現的影響,所以常常會得到null;

解決方法:直接獲取當前類的編譯絕對路徑,然后再通過當前類的相對路徑去找到你需要的文件位置;

舉個例子,我的文件是放在webapp/resource/downloadFile/這個文件夾里面,那它相對於我當前編譯類的位置就是../../resource/downloadFile/,所以我修改獲取方法為

String path = this.getClass().getClassLoader().getResource("../../resource/downloadFile/").getPath();

 

 

轉載自:https://blog.csdn.net/wuge507639721/article/details/80350719


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM