簡體   English   中英

如何獲取servlet資源的文件名?

[英]How can I get the filename of a servlet resource?

我正在寫一個Java servlet,它在jar中調用一個函數。 我無法控制此jar中的代碼。 被調用的函數希望將配置文件的文件名作為參數。

我想將此文件與我的戰爭文件捆綁在一起。 如果我將它放在戰爭中的某個地方,可以在jar中傳遞該函數什么文件名?

請注意,jar的API僅可以使用文件名。 因此, ServletContext.getResourceAsStream()沒有幫助。

使用ServletContext.getRealPath() 這將返回給定Servlet上下文資源的文件系統路徑。 給它傳遞與傳遞給ServletContext.getResourceAsStream()相同的參數。

更好的是,使用Spring的Resource抽象:

Resource resource = new ServletContextResource(servletContext, "/path/to/file");
File resourceFile = resource.getFile();

如果它在您的.war文件中,則您將無法以文件形式訪問它。 一些servlet容器會將.war文件分解為組件,但我認為您不能依靠它。

您是否考慮過提取它(通過getResourceAsStream() ),將其寫入臨時文件/目錄,然后引用它?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM