2009-02-10 18 views
0

sports.jsp:如何從輸出從jsp頁面產生的特定位置創建一個XML文件

<?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文件。

回答

0

由於安全風險,您正在尋求瀏覽器不想提供的功能。您不希望瀏覽器能夠在沒有用戶提示的情況下覆蓋系統上的任意文件。

如果您確實需要這樣做,您需要運行簽名的Applet或Web Start應用程序。有了這個,你有權在本地寫入而無需用戶提示。如果您不想購買官方證書,則可以使用自簽名證書爲您的JAR文件簽名。如果您這樣做,用戶在遇到有關證書的應用程序時會收到提示。但是,一旦Applet/Web Start應用程序正在運行,您可以自由統治本地寫入。

注意:您需要編輯您的問題以在JSP的每一行前插入四個空格,以便StackOverflow可以正確自動地格式化它。

1

由於安全限制,您無法這樣做。您無法訪問用戶系統並在未經用戶許可的情況下開始編寫文件。

相關問題