当前位置: 首页 > 知识库问答 >
问题:

用Java创建可下载文件并存储在web app子目录中

长孙作人
2023-03-14

在我的基于web的应用程序(Tomcat7/JDK7-JSP3.0)中,我构建了一个翻译器来获取csv文件,清理它们,并保存该文件。然后,第二部分解析文件以获取某些信息,并创建第二个文件(以便将其加载到另一个系统中进行验证)。这种事每天都在发生。这些文件被写入${ECLIPSE_HOME}(因为我在Eclipse中运行)。

我想做的是在应用程序的根目录中创建一个文件夹{即,[app-root]/tobedld},专门用于将生成的文件保存到其中并下载它们,让我的前端JSP能够读取和显示这些文件(就像一个可下载文件的列表,单击web浏览器中它下载的链接),并在特定时间删除该目录中的所有文件。我不需要保留它们,或者有它们的备份。

从我所读到的内容来看,将OutputStream发送到浏览器并让浏览器保存它将是一个不错的起点,但我也阅读了其他一些评论,因此在web app目录中保存文件违反了servlet规范。不过,我不确定这是否是因为它是webapp的根。理想情况下,我希望将其完全包含在web应用程序中。

这可能吗?这样做最好吗?

共有1个答案

万志专
2023-03-14

不要把它放在Tomcats WebApps下的任何地方。这可能是个非常糟糕的主意。

我的建议是向web.xml添加datadirinit参数:

<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.example.MyServlet</servlet-class>
    <init-param>
        <param-name>dataDir</param-name>
        <param-value>/var/data</param-value>
    </init-param>
</servlet>

然后可以在servlet中使用这个参数:

getServletConfig().getInitParameter("dataDir");

如果您希望它与您的Tomcat紧凑,可以选择$catalinabase/datadir

部署Servlet的人现在可以决定将数据放在哪里。也许是一个没有执行权限的额外分区。也许一个额外的快速分区。

 类似资料:
  • 问题内容: 我正在研究Java ExtJS应用程序,需要在其中创建和下载CSV文件。 单击按钮后,我希望将CSV文件下载到客户端计算机上。 在按钮侦听器上,我正在使用AJAX调用servlet。在那里,我正在创建一个CSV文件。 我不希望将CSV文件保存在服务器中。我希望使用下载选项 动态 创建文件。我希望将文件的内容创建为字符串,然后将其作为 文件 提供,然后在浏览器中以下载模式打开该 文件 (

  • 本文向大家介绍Java如何在不存在文件夹的目录下创建文件,包括了Java如何在不存在文件夹的目录下创建文件的使用技巧和注意事项,需要的朋友参考一下 核心代码如下所示: 1、 2、 总结 以上所述是小编给大家介绍的Java如何在不存在文件夹的目录下创建文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 问题内容: 我正在创建一个简单的程序,尝试从磁盘中读取“ conf / conf.xml”,但是如果此文件或目录不存在,则会创建它们。 我可以使用以下代码执行此操作: 我的问题是,这是否真的是最优雅的方式?需要创建两个简单的路径以在新的子目录中创建新文件似乎多余。 问题答案: 您可以将声明为,而不是。然后,您可以使用,请参见下面的示例: 或者,按原样使用代码,您可以使用:

  • 问题内容: 如果要在中创建文件,可以执行以下操作: 另外,我想用于创建文件。那我该怎么办呢?由于某种原因,该文件未在正确的目录中创建。 问题答案: 最好的方法是: