Eug*_*ica 7 configuration resources servlets java-ee
开发Struts 2应用程序我遇到以下问题.我需要阅读使用我的应用程序部署在Web服务器中的文本文件.如何知道它的相对路径来访问它.换句话说,如果我知道部署目录中的相对路径,我怎么能找到绝对路径.当我遇到与servlet类似的问题时,我曾经使用this.getContextPath()(或类似的东西)返回网络服务器中文件夹的绝对路径.
编辑:谢谢你们的回答.对我来说,这是:
String path=GetPointsOfInterestAction.class.getResource("../../../resources/visitor_attractions.txt")
Run Code Online (Sandbox Code Playgroud)
你能解释一下我的工作原因,因为我在java中迈出了第一步.
Bal*_*usC 10
如果它被放置在webapp的类路径中,那么只需使用:
InputStream input = servletContext.getResourceAsStream("file.txt");
Run Code Online (Sandbox Code Playgroud)
如果它放在全局类路径中,则使用:
InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("file.txt");
Run Code Online (Sandbox Code Playgroud)
如果它被放置在webcontent中,那么只需使用:
InputStream input = new FileInputStream(servletContext.getRealPath("file.txt"));
Run Code Online (Sandbox Code Playgroud)
这些示例假定它们位于根目录中.您当然可以使用相对路径而不是类路径根或webcontent根,例如path/to/file.txt.你可以通过ServletContextStruts获得ServletActionContext#getServletContext().
编辑:您使用以下内容编辑了您的问题:
编辑:谢谢你们的回答.对我来说,这是:
Run Code Online (Sandbox Code Playgroud)String path=GetPointsOfInterestAction.class.getResource("../../../resources/visitor_attractions.txt")你能解释一下原因吗?
这实际上不是"正确的"方式,但这也是可行的.您只需要确保知道文件的相对路径而不是GetPointsOfInterestAction类的实际路径.这个类当然放在一个不同的包中,所以你基本上需要返回一个目录(就像在普通磁盘文件系统中那样:cd ../等等).同样,这不是最优雅的方式.您需要使用前两种方法之一,使用资源名称resources/visitor_attractions.txt.
| 归档时间: |
|
| 查看次数: |
10831 次 |
| 最近记录: |