Как сохранить файл XML в JSP? - PullRequest
       0

Как сохранить файл XML в JSP?

0 голосов
/ 15 августа 2011

В моем проекте мне нужно сохранить XML-файл в JSP.Я использую Eclipse в качестве IDE и хочу сохранить файл XML в проекте, чтобы файл Fusioncharts мог использовать его для создания графика.Я не могу дать никакого локального пути, поскольку JSP работает на сервере.

StreamResult result = new StreamResult(new File("C:\\graph.xml"));

Это не сработает в этом случае, так что я могу сделать в этом случае?

Ответы [ 3 ]

1 голос
/ 15 августа 2011

Использование File#createTempFile().Он не зависит от платформы, и в случае веб-приложения JSP / Servlet он будет создан во временной папке по умолчанию, управляемой контейнером.

File file = File.createTempFile("graph", ".xml");
// ...
0 голосов
/ 15 августа 2011

Как указал @BalusC, мой первый ответ, возможно, связан с использованием причала, поскольку он расширяет войну.

Итак, механизм, который будет работать независимо от того, какой сервер вы используете, будет самоанализом:

 InputSream is = YouClass.getResourceAsStream( "file.xml" );

Это всегда будет работать, пока файл file.xml находится в той же папке (когда развернута, в войне или нет) с папкой, содержащей файл класса YourClass.class.

Eclipse как специальная папка ресурсов, реализованная в maven, которую вы можете использовать для размещения ресурсов и обеспечения их развертывания вместе с файлами классов при создании ваших проектов.

0 голосов
/ 15 августа 2011

Вам необходимо использовать контекст сервлета, чтобы получить независимое от веб-сервера расположение поля в сервлете.Мне нравится такой способ работы:

public String getCachePath( ServletContext sc, HttpServletRequest request )
{
    //get cache dir from web.xml
    String cacheDir = getInitParameter( "cache.dir");
    //String fileName = File.separator +"tmp"+File.separator +
    String fileName = sc.getRealPath( request.getContextPath() ) + File.separator + "WEB-INF" + File.separator +
    cacheDir + File.separator;
    return fileName; 
}//met

И тогда вы можете определить cache.dir в вашем файле web.xml следующим образом:

<servlet>
    <servlet-name>server</servlet-name>
    <servlet-class>fully qualified name of your class</servlet-class>
    <init-param>
        <param-name>cache.dir</param-name>
        <param-value>cache</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...