0

我在 NetBeans 上使用 JSP。

在 java 代码中,我试图从文件中读取数据。首先,我通过指定文件的路径来打开文件。

因为我的代码在服务器(GlassFish)上运行,所以我希望我的文件路径独立于它运行的机器。因此,我想以包含保存在项目目录根目录中的文件的文件夹名称开始路径。我非常努力地实现这一目标,但我做不到。

我在网上阅读并找到了这种方式,但它仍然不起作用:

<%

  //building the tree here.
GraphBuilder tree = new GraphBuilder("${pageContext.request.contextPath}\\src\\java\\Database\\OptimizedFullTermFile.pad");

%>

任何人都可以帮忙吗?谢谢你。

4

2 回答 2

1

只需从类路径中读取它。鉴于您使用的是src代表 Java 源代码(Java 包/类结构)的典型文件夹,我假设该文件OptimizedFullTermFile.pad位于 Java 包中java.Database(eek,包名中的大写字母?全部小写)。在这种情况下,它已经在类路径中,因此您可以直接从那里获取它,如下所示:

InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("java/Database/OptimizedFullTermFile.pad");
// ...

至于你失败的尝试:EL${pageContext.request.contextPath}永远不会在scriptlet中工作。即使这样做了,也不是正确的,它返回 webapp URL 中的上下文路径,这绝对不是本地磁盘文件系统路径的一部分,更不用说类路径了。顺便说一句,十年来强烈不鼓励使用scriptlet

也可以看看:

于 2012-12-18T11:57:21.290 回答
1

您可以尝试以下代码从以下代码中获取项目中的目录文件。

this.getServletContext().getRealPath("")+[your file path in project web directory]
于 2012-12-18T12:12:00.100 回答