如何从jsp页面生成的输出中创建特定位置的xml文件

时间:2009-02-10 06:57:07

标签: html xml jsp

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 个答案:

答案 0 :(得分:1)

由于安全限制,您无法做到这一点。未经用户许可,您无法访问用户系统并开始编写文件。

答案 1 :(得分:0)

由于存在安全风险,您要求提供无浏览器想要提供的功能。您不希望浏览器在没有用户提示的情况下覆盖系统上的任意文件。

如果您确实需要这样做,则需要运行已签名的Applet或Web Start应用程序。有了这个,您有权在没有用户提示的情况下在本地编写。如果您不想购买官方证书,可以使用自签名证书对JAR文件进行签名。如果执行此操作,用户将在遇到有关证书的应用程序时收到提示。但是,一旦Applet / Web Start应用程序运行,您就可以在本地自由编写。

注意:您需要编辑您的问题,在JSP的每一行前插入四个空格,以便StackOverflow正确地自动格式化。