Как создать XML-файл в определенном месте из вывода, созданного на странице JSP - PullRequest
0 голосов
/ 10 февраля 2009

sports.jsp:

<?xml version="1.0" encoding="UTF-8"?>

<%@ page contentType="text/xml;charset=ISO-8859-1" %>
<% response.setHeader("Content-Disposition", "attachment; filename=\"playlist.xml\""); %>
<playlist version="1" xmlns = "http://xspf.org/ns/0/">
   <title>My Band Rocks Your Socks</title>
   <trackList>
   <%! String[] sports; %>
   <%
      sports = request.getParameterValues("sports");
      if (sports != null)
      {
         for (int i = 0; i < sports.length; i++)
         {
            // out.println (sports[i]);
            String total=sports[i];
            String[] sa=total.split("[,]");
            // String[] sub=new String();
            out.print("<track>");
            for (int j=0;j<sa.length;j++)
            {
               // out.println(sa[j]);
               // out.println("sa["+j+"]="+sa[j]);
               if( j == 0)
               {
                  out.print("<location>" + sa[0] +"</location>");
               }
               else if (j == 1)
               {
                  out.print("<image>" + sa[1] +"</image>");
               }
               else if( j==2)
               {
                  out.print("<title>" + sa[2] +"</title>");
               }
            }// end of inner for loop()
            out.print("</track>");
            //out.println();
         }// end of outer for()
      }
      //else out.println ("<b>none<b>");
   %>
   </trackList>
</playlist>

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

Ответы [ 2 ]

1 голос
/ 10 февраля 2009

Вы не можете сделать это из-за ограничений безопасности. Вы не можете получить доступ к пользовательской системе и начать запись файлов без разрешения пользователя.

0 голосов
/ 10 февраля 2009

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

Если вам действительно нужно это сделать, вам нужно запустить подписанный апплет или приложение Web Start. При этом у вас есть разрешение на локальную запись без запроса пользователя. Если вы не хотите приобретать официальный сертификат, вы можете использовать самозаверяющий сертификат для подписи файлов JAR. Если вы сделаете это, пользователь получит подсказку, когда встретит ваше приложение о сертификате. Однако после запуска приложения Applet / Web Start вы можете свободно писать локально.

Примечание. Вам необходимо отредактировать вопрос, вставив четыре пробела перед каждой строкой JSP, чтобы он был правильно и автоматически отформатирован в StackOverflow.

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