Лучшая практика для сохранения временных файлов на Tomcat?

Мне нужно продемонстрировать систему обмена данными на основе xml. Он демонстрируется в автономном режиме на надежном компьютере в школе. Приложение получит базу данных позже, но только для этой презентации мне нужно показать макет, открытие и сохранение xml-файлов и то, как таблица получает данные из xml.

Итак, в каком месте лучше всего позволить веб-приложению временно создавать файлы xml, чтобы я мог продемонстрировать это приложение? Я использую Eclipse и Tomcat.

Как уже упоминалось, безопасность вообще не проблема, так как эта версия НЕ будет подключена к сети. Кроме того, нормально, если файлы стираются каждый раз при запуске приложения.

Они должны существовать только на время презентации, когда приложение запускается один раз. Итак, я не знаю, какое место было бы лучшим и как получить путь к нему, независимо от используемого компьютера.

Спасибо.


person Steve Waters    schedule 21.05.2014    source источник


Ответы (4)


Используйте свойство java.io.tmpdir, чтобы получить tomcat временную папку и сохранить там свои файлы. Это будет хорошее место для их временного задержания. Итак, вы можете определить это следующим образом:

public static final String TMP_DIR = System.getProperty("java.io.tmpdir")
person Omoro    schedule 21.05.2014

Либо используйте свойство java.io.tmpdir, как указано, либо используйте атрибут контекста сервлета javax.servlet.context.tempdir, определенный в спецификации. Для tomcat этот атрибут можно изменить с помощью атрибута workDir в контексте.

Вы можете использовать этот атрибут, вызвав servletContext.getAttribute("javax.servlet.context.tempdir")

Подробные сведения см. в документации Tomcat.

person Cédric Couralet    schedule 21.05.2014

Старый вопрос, но если есть для создания временного файла, почему бы не использовать функцию File.createTempFile?

Пример:

File temp = File.createTempFile("real",".howto");
temp.deleteOnExit();
person oak    schedule 14.07.2016

Вы можете использовать этот метод, чтобы получить 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;
}
person rohit    schedule 21.05.2014
comment
Отрицательный и опасный путь ... - person Daniele Baggio; 06.10.2016
comment
В этом вопросе говорится о временной папке в tomcat, но ваш код должен получить временную папку на уровне ОС - person Sasikumar Murugesan; 26.12.2017