[英]How to load StringTemplateGroups from the WEB-INF directory of a web archive
[英]How to load a resource from WEB-INF directory of a web archive
我有一個Web檔案,文件放在WEB-INF目錄中。
如何在java類中加載該文件?
我知道我可以將它放在classes目錄中並從那里加載它。 它只會被放在WEB-INF中。
在ServletContext對象上使用getResourceAsStream()
方法,例如
servletContext.getResourceAsStream("/WEB-INF/myfile");
如何獲得對ServletContext的引用取決於您的應用程序...您想從Servlet還是從JSP中執行此操作?
編輯:如果你在Servlet對象中,那么調用getServletContext()
。 如果您在JSP中,請使用預定義的變量application
。
以下是它對我的工作原理,沒有使用Servlet。
假設我正在嘗試訪問project / WebContent / WEB-INF / web.xml中的web.xml
在項目屬性Source-tab中,通過指向WEB-INF文件夾的父容器(在我的WebContent中)添加源文件夾
現在讓我們使用類加載器:
InputStream inStream = class.getClass().getClassLoader().getResourceAsStream("Web-INF/web.xml")
我訪問我在java(jersey)服務器中創建的sqlite db文件的問題完全歸結為路徑。 一些文檔說jdbc connect url應該看起來像“jdbc:sqlite://path-to-file/sample.db”。 我認為雙斜杠是htt協議風格路徑的一部分,並且在部署時會正確映射,但實際上,它是絕對路徑或相對路徑。 因此,當我將文件放在WebContent文件夾(tomcat項目)的根目錄下時,像這樣的uri工作“jdbc:sqlite:sample.db”。
拋出我的一件事是,當我踩過調試器時,我收到一條消息,上面寫着“打開db:......權限被拒絕”。 我認為這是文件系統權限或sql用戶權限的問題。 在發現SQLite沒有像MySQL這樣的角色/權限的概念之后,我最終改變了文件權限,然后才得出我認為正確的解決方案,但我認為這只是一個壞消息(即權限被拒絕,而不是找不到文件)。
希望這有助於某人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.