第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是servletcontext.getRealPath(“/”),以及何時使用它

什么是servletcontext.getRealPath(“/”),以及何時使用它

牧羊人nacy 2019-06-18 12:56:27
什么是servletcontext.getRealPath(“/”),以及何時使用它在下面的片段中:ServletContext context = request.getServletContext();String path = context.getRealPath("/");什么/在方法中g(shù)etRealPath()代表?我什么時候該用它?
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

導(dǎo)言

這個ServletContext#getRealPath()將Web內(nèi)容路徑(服務(wù)器磁盤文件系統(tǒng)上展開的WAR文件夾結(jié)構(gòu)中的路徑)轉(zhuǎn)換為絕對磁盤文件系統(tǒng)路徑。

這個"/"表示web內(nèi)容根。即它代表web文件夾,如下面的項目結(jié)構(gòu)所示:

YourWebProject
 |-- src
 |    :
 |
 |-- web
 |    |-- META-INF
 |    |    `-- MANIFEST.MF
 |    |-- WEB-INF
 |    |    `-- web.xml
 |    |-- index.jsp
 |    `-- login.jsp
 :

所以,通過"/"getRealPath()的絕對磁盤文件系統(tǒng)路徑。/web項目的展開WAR文件的文件夾。有點像/path/to/server/work/folder/some.war/你應(yīng)該可以在FileFileInputStream.

請注意,大多數(shù)初學(xué)者似乎沒有看到/意識到您實際上可以將整個web內(nèi)容路徑傳遞到它,并且他們經(jīng)常使用

String absolutePathToIndexJSP = servletContext.getRealPath("/") + "index.jsp";

而不是

String absolutePathToIndexJSP = servletContext.getRealPath("/index.jsp");

不要在里面寫文件

還請注意,即使您可以使用FileOutputStream,所有更改(例如新文件或編輯的文件)將你給我消失無論何時重新部署戰(zhàn)爭,原因很簡單,所有這些更改都不包含在原始WAR文件中。所以所有試圖保存上傳文件的初學(xué)者都做錯了。

此外,getRealPath()永遠(yuǎn)都會回來null或者,當(dāng)服務(wù)器沒有配置為將WAR文件擴展到磁盤文件系統(tǒng),而是作為虛擬文件系統(tǒng)進入內(nèi)存時,就會出現(xiàn)一個完全出乎意料的路徑。

getRealPath()是不可移植的,你最好不要使用它

使用getRealPath()小心點。實際上,它沒有合理的真實世界用例。如果你真正需要的是InputStream更好地利用web資源ServletContext#getResourceAsStream()相反,無論戰(zhàn)爭是如何擴大的,這都是可行的。所以,如果你想要一個InputStreamindex.jsp,那就做吧做:

InputStream input = new FileInputStream(servletContext.getRealPath("/index.jsp")); // Wrong!

但相反,你要做的是:

InputStream input = servletContext.getResourceAsStream("/index.jsp"); // Right!

或者如果要獲取所有可用web資源路徑的列表,請使用ServletContext#getResourcePaths()相反。

Set<String> resourcePaths = servletContext.getResourcePaths("/");

您可以獲得一個單獨的資源,如URL通孔ServletContext#getResource()..這個會回來的null當(dāng)資源不存在時。

URL resource = servletContext.getResource(path);

或者,如果您打算保存一個上傳的文件,或者創(chuàng)建一個臨時文件,那么請參閱下面的“請參閱”鏈接。

另見:


查看完整回答
反對 回復(fù) 2019-06-18
?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

Web應(yīng)用程序的上下文路徑是包含Web應(yīng)用程序的Web-INF目錄的目錄。它可以被認(rèn)為是網(wǎng)絡(luò)應(yīng)用程序的“家”。通常,在編寫Web應(yīng)用程序時,獲取該目錄在文件系統(tǒng)中的實際位置非常重要,因為這允許您執(zhí)行諸如從文件中讀取或?qū)懭胛募炔僮鳌?/trans>

這個位置可以通過ServletContext對象的getRealPath()方法獲得。可以將此方法傳遞給文件分隔符設(shè)置的字符串參數(shù),以使用操作系統(tǒng)的文件分隔符(“/”表示UNIX,“\”用于Windows)獲取路徑。


查看完整回答
反對 回復(fù) 2019-06-18
?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

Java 7和Java 8之間也有一個變化。誠然,它涉及到一個不受歡迎的調(diào)用,但是我不得不添加一個“/”來使我們的程序工作!下面是討論它的鏈接為什么servletContext.getRealPath在tomcat 8上返回NULL?


查看完整回答
反對 回復(fù) 2019-06-18
  • 3 回答
  • 0 關(guān)注
  • 7186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號