运行在java servlet中读写外部文本文件的应用程序

时间:2012-08-08 13:56:41

标签: java servlets io

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

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

3 个答案:

答案 0 :(得分:1)

某些信息

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

建议的解决方案1 ​​

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

Sugested Solution 2

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

不需要在此解决方案中使用getRealPath(),实际路径是servlet的参数。

推荐阅读清单

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以将文件放在任何您想要的位置,但我建议您将其放在WEB-INF下,以便无法直接访问。

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

的getServletContext()getRealPath( “/ WEB-INF /文件名”);