【问题标题】:Where I should put data files for servlet, jsp application run on Tomcat? [duplicate]我应该把 servlet 的数据文件放在哪里,jsp 应用程序在 Tomcat 上运行? [复制]
【发布时间】:2016-08-22 11:47:29
【问题描述】:

我的 servlet Web 应用程序中的路径有问题。我正在使用 java 来编写业务逻辑。问题是当我使用 main 方法将 java 代码作为 java 应用程序运行时,我使用数据文件的相对路径 dataFiles/myData.json 并且它工作正常。但是,当我使用 Tomcat 运行它时,我必须将完整路径从我的硬盘驱动器 ../../../../Documents/workspace/MyApp/dataFiles/myData.json

我在工作区的目录结构是:

MyApp 
 |- src
     |-Pkg1
        |- some java files and servlet files
     |-Pkg2
        |- java files
 |-dataFiles
    |- all data files
 |-WebContent
    |- jsp pages
    |- css
    |- js
    |- WEB-INF
    |- META-INF

问题是: 现在我需要创建 .war 文件来部署我的应用程序。在生成war文件之前我应该​​放置的正确路径是什么?

【问题讨论】:

  • 如果您将 dataFiles 文件夹放在 Web 应用程序的 WEB-INF/classes 文件夹中,那么您可以使用 InputStream dataStream = getClass().getResourceAsStream("/dataFiles/myData.json");跨度>
  • WEB-INF 没有类文件夹。此外,dataFiles 用于 Java 文件而不是 servlet 文件。
  • classes 文件夹是放置类文件的标准位置。你的类文件在罐子里吗?无论如何,我建议的方法会奏效。只需进行一些谷歌搜索即可查看示例。

标签: java json jsp tomcat servlets


【解决方案1】:

在 Servlet 中试试这个:

ServletContext context = getContext();
URL url = context.getResource("/dataFiles/myData.json");

【讨论】:

  • 我使用的是 java 文件中的数据文件,而不是 servlet 文件。 parser.parse(new FileReader(../../../../Documents/workspace/MyApp/dataFiles/myData.json));
  • 只是将 url 从 servlet 传递到 java 文件?您需要在 Web 应用程序中调用 java 文件的某个地方:)
  • 你的意思是我在调用方法和类时将文件路径从 servlet 发送到 Java 代码会更好吗?
  • 我为我工作。我在 servlet (contextPath) 中创建了一个全局变量,用于保存上下文真实路径。然后,每次除了文件路径之外,我还需要获取文件时使用 contextPath 变量。 ServletContext servletContext = getServletContext(); contextPath = servletContext.getRealPath(File.separator);
猜你喜欢
  • 1970-01-01
  • 2010-12-01
  • 2018-09-28
  • 2019-10-04
  • 1970-01-01
  • 2011-05-20
  • 2020-09-30
  • 1970-01-01
  • 2016-05-23
相关资源
最近更新 更多