在tomcat上保存临时文件的最佳做法? [重复]

问题描述 投票:5回答:4

我需要演示一个基于xml的数据交换系统。它在学校的可信计算机上进行离线演示。应用程序稍后将获取数据库,但仅针对此演示文稿,我只需要显示xml文件的布局,打开和保存以及表如何从xml获取数据。

那么,什么是让网络应用程序暂时创建xml文件的最佳位置,以便我可以展示这个应用程序?我正在使用Eclipse和Tomcat。

如前所述,安全性根本不是问题,因为这个版本不会在线。此外,每次运行应用程序时都可以删除文件。

它们只需在应用程序运行一次的演示期间存在。所以,我无能为力的最佳位置以及如何获得这样的位置的路径,而不依赖于所使用的计算机。

谢谢。

java xml eclipse tomcat temp
4个回答
13
投票

使用属性java.io.tmpdir获取tomcat临时文件夹并将文件保存在那里。这将是暂时让他们进入的好地方。所以你可以按如下方式定义它:

public static final String TMP_DIR = System.getProperty("java.io.tmpdir")

7
投票

使用指示的属性java.io.tmpdir或使用规范中定义的servlet上下文属性javax.servlet.context.tempdir。对于tomcat,该属性可以通过上下文中的workDir属性进行更改。

您可以通过调用servletContext.getAttribute("javax.servlet.context.tempdir")来使用该属性

See tomcat documentation for detail.


1
投票

老问题,但如果有创建临时文件的原因为什么不使用File.createTempFile函数?

例:

File temp = File.createTempFile("real",".howto");
temp.deleteOnExit();

-2
投票

您可以使用此方法根据您的操作系统获取temp文件位置

public static String getSystemFileLocation()
{
    File tmpFile = null;
    String fileLocation="/tmp/";
    if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") == 0) {
        tmpFile=new File("c:\\temp");
        if(tmpFile.exists()) {
            fileLocation="c:\\temp\\";
        }
        else {
            tmpFile.mkdir();
            fileLocation="c:\\temp\\";
        }
    }
    else if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") == -1) {
        fileLocation="/tmp/";   
    }
    return fileLocation;
}
© www.soinside.com 2019 - 2024. All rights reserved.