在tomcat上保存临时文件的最佳做法?

时间:2014-05-21 06:31:31

标签: java xml eclipse tomcat temp

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

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

如上所述,安全性根本不是问题,因为此版本不会在线。此外,如果每次运行应用程序都会删除文件,那么就可以了。

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

谢谢。

4 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:7)

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

您可以通过调用servletContext.getAttribute("javax.servlet.context.tempdir")

来使用该属性

See tomcat documentation for detail.

答案 2 :(得分:1)

旧问题,但是如果要创建临时文件,为什么不使用File.createTempFile函数?

示例:

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

答案 3 :(得分:-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;
}