gpt4 book ai didi

java - Tomcat 8.0中运行的JSP如何加载非Config文件

转载 作者:行者123 更新时间:2023-11-28 23:30:01 24 4
gpt4 key购买 nike

在 Eclipse Luna 中,我在 Apache Tomcat 8.0 上有一个动态 Web 项目(具有默认build设置)。在项目中,我有一个 JSP loader.jsp,它调用 Java 类 FileLoader 中的一个方法,返回一个 String 值作为位置一个非配置的 txt 文件(我们称之为 key.txt)。

我的问题是,当 FileLoader 尝试获取 key.txt 并返回其位置时,我获取的文件位置为空值。

这是我尝试过但失败了的想法:

FileLoader 构造函数中,我将 String "key.txt" 作为值传递给它,它有一个名为 get getKeyPath() 的方法返回文件路径。我在 getKeyPath() 中使用以下内容来获取文件路径:

String path = this.getClass().getClassLoader().getResource("key.txt").getFile();

路径变量返回给调用对象。以下是我在 loader.jsp 中调用 getKeyPath() 的方式:

String keyPath = new FileLoader("key.txt").getKeyPath();

我的问题是,当 getKeyPath() 尝试设置路径值时,FileLoader 中抛出了一个 NullPointerException。我迷路了,因为无论我将物理“key.txt”放在我的项目目录中的什么位置,还是放在我的项目应该识别的文件路径中,都会发生这种情况。在我的项目中,我在以下路径中使用 key.txt 尝试了上述代码(假设我的项目在 Eclipse 中的根文件夹称为 PRO):

PRO/build/classes
PRO/build
PRO/WebContent/WEB-INF/lib
PRO/WebContent(where loader.jsp is located)
PRO/Java Resources/src (Tomcat Install)
Dir>/lib /bin

对于所有尝试,我都得到了相同的 NullPointerException。在求助于 Tomcat 目录后,我意识到我需要帮助。

我还需要做些什么才能以我想要的方式加载“key.txt”吗?我这样做完全错了吗?如果这样可以更轻松地回答这个问题,我可以发布屏幕截图。

顺便说一句,由于应用程序要求,我希望 loader.jsp 不直接加载 key.txt。当然,如果我的尝试无法实现,我将不得不这样做。

请注意,我试图在 Eclipse 动态 Web 项目中执行此操作,因此没有像标准 Java 项目那样的“bin”文件夹。最后,我不想在 Eclipse 中进行任何构建配置更改,但如果必须的话,我当然会这样做。

最佳答案

将方法的初始化和调用分成两行。

问题不在于文件未加载,而是在调用 .getKeyPath(); 时未完成对象初始化,而 NullPointer 的原因/p>

所以改成这样:

FileLoader FileLoader fileLoader = new FileLoader("key.txt"); 
String keyPath = fileLoader.getKeyPath();

关于java - Tomcat 8.0中运行的JSP如何加载非Config文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31735972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com