0

我是 java servlet 的新手。我正在编写一个读取和写入文本文件的应用程序。但是,我在使用 JSP 的 java servlet 上运行此应用程序。当我在 Eclipse 中运行 servlet 时,它一直报告找不到文件错误。我真的不知道如何更正文件路径,以便 servlet 不会抱怨它。

基本上,应用程序和 servlet 代码在同一个 src 文件夹中,但不同的包。你能告诉我我应该把这些文本文件放在哪里以及我应该如何读写它们吗?非常感谢。

4

3 回答 3

1

一些信息

  • 客户端可以浏览 Web 应用程序上下文根中的文件。我怀疑这不是一个理想的功能。
  • Web 应用程序中 WEB-INF 文件夹下的文件可供 Web 应用程序访问,但客户端无法浏览。

建议的解决方案 1

  • 计划将文件放在WEB-INF文件夹下的一个文件夹中;也许命名为“文件”(“WEB-INF/文件”)。
  • 使用ServletContext.getRealPath()获取真实的文件路径。
  • 使用 java IO(BufferedReader、Scanner、其他东西 - 您选择)读取和写入文件。

建议的解决方案 2

基于以下评论。servlet 将是安装在已知主机上的 servlet 容器(可能是 Tomcat)中的 Web 应用程序的一部分。在主机上创建一个目录。将此目录作为参数添加到 servlet(可能是 servlet 配置、可能是属性文件、可能是硬编码字符串或任何其他解决方案)。完成此操作后,servlet 将知道在哪里读取和写入文件。此时,任何应用程序都可以读取和写入相关文件。

此解决方案无需使用 getRealPath(),真实路径是 servlet 的参数。

推荐阅读清单

有关介绍(可能过时,但仍然很好),请阅读Core Servlets网站上的“中级 Servlets 和 JSP”和“高级 Servlets 和 JSP”教程。

另一个介绍来源是Java EE 5 教程。整个教程都很好,但请关注第 II 部分的第 3 章和第 4 章来获取 servlet 信息。我更喜欢本教程而不是Java EE 6 教程,但这可能只是个人喜好。

于 2012-08-08T14:29:25.647 回答
0

默认目录是您的项目的目录。将您的文件放在项目目录中,对我来说它是“C:\Documents and Settings\myusername\workspace\projectname”。

于 2012-08-08T14:01:34.410 回答
0

你可以把文件放在你想要的任何地方,但我建议你把它放在 WEB-INF 下,这样就不能直接访问它。

您可以使用以下方式访问它:

getServletContext().getRealPath("/WEB-INF/文件名");

于 2012-08-08T14:29:02.033 回答