Могу ли я получить путь к проекту eclipse с помощью кода сервлета или jsp? - PullRequest
0 голосов
/ 06 февраля 2019

 <%=session.getServletContext().getRealPath("/") %>
        <%
            String path= session.getServletContext().getRealPath("/");

            FileOutputStream file = new FileOutputStream(path+"\\testingfile.txt");

        %>

Приведенный выше код является моим JSP-кодом, после того как я запустил эту страницу, он покажет следующий вывод.

C:\Users\Stark\Documents\Eclipse IDE\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Demo\

Почему я получил этот путь?вместо того, чтобы я хотел получить следующий путь, который мне нужен ...

C:\Users\Stark\Documents\Eclipse IDE\Demo

Как это решить?Мне нужно это местоположение проекта для загрузки моих файлов в это место, так что помогите мне!

1 Ответ

0 голосов
/ 06 февраля 2019

Причина, по которой вы получаете «странный» путь, проста - вы используете Eclipse.Когда вы запускаете приложение в Eclipse, сторона Eclipse создаст новый путь и запустит там ваше приложение.Вот почему getRealPath ("/") "дает вам странный путь, потому что ваше приложение теперь работает во временной папке.

Почему Eclipse делает это?Вот что я думаю

  1. Таким образом, Eclipse может запустить ваше приложение быстрее (кэшированное приложение или коды и т. Д.)
  2. Ваш оригинальный код будет храниться в безопасностис любыми ненужными изменениями, внесенными Eclipse.

Итак, как я могу решить эту проблему?

Я предлагаю вам использовать класс «Свойства» для установки пути загрузки.Таким образом, вы можете отделить настройку URL от вашей логики, и ваш код будет легко поддерживать.И вы не столкнетесь ни с какой неожиданной «экологической» ошибкой, подобной этой, потому что ваше значение настройки будет фиксироваться вашим вводом.

Вот фиксированный код для использования «Свойства».

<%

Properties prop = new Properties();
InputStream input = null;

try {

    input = new FileInputStream("config.properties");

    // load a properties file
    prop.load(input);

    // get the property for upload path
    String path=prop.getProperty("path.upload");
    FileOutputStream file = new FileOutputStream(path+"\\testingfile.txt");

    //TODO:rest of your logic codes will come here.

} catch (IOException ex) {
    ex.printStackTrace();
} finally {
    if (input != null) {
        try {
            input.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
%>

Вы также должны создать файл "config.properties".Вот содержимое файла.

path.upload=C:\Users\Stark\Documents\Eclipse IDE\Demo

Надеюсь, мой ответ вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...