[英]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.