2013-10-11 67 views
0

在同一頁的文件是有沒有辦法送JavaScript變量如:JavaScript變量發送到服務器,並把它寫使用JSP

mychart.jsp

 <script> 
     var options = { 
       chart: { 
         type: 'line' 
       }, 
       title: { 
        text: 'CPU Report - SIU-A-CWDC Server, realtime ', 
        x: -20 //center 
       } 
      } 
     </script> 

我意識到,這應該是JSON對象,並已嘗試發送到服務器使用阿賈克斯發送到不同的頁面,即mychart2.jsp像這樣:

var data = "op=" + JSON.stringify(options); 
$.ajax({ 
     url: 'mychart2.jsp', 
     type: 'POST', 
     contentType: 'application/json', 
     data:data, 
     processData: false, 
     dataType: 'json' 
    }); 

因此,在mychart2.jsp我試圖做到以下幾點:

<% 

     String str=request.getParameter("op"); 
     try { 
      PrintWriter pw = new PrintWriter(new FileOutputStream("/home/myhome/myweb/test.json")); 
      pw.println(str); 
      pw.close(); 
    } 
    catch(IOException e) { 
      out.println(e.getMessage()); 
    } 

    %> 

顯然,只出現test.json。任何想法如何克服這種問題?以及如何使它在只在mychart.jsp?先謝謝你。

+0

不知道你的意圖是什麼,但不是將json對象寫入jsp中的文件,而是將其寫入服務器端的文件中,並在其中進行ajax調用。然後在jsp中讀取它。 – SpreeTheGr8

+0

而不是PrintWriter嘗試使用Fileoutputstream。你是否得到了str變量的值?也可以嘗試使用'data:JSON.stringify(options);'而不是'data:data',並使用options變量接收。 –

+0

@ SpreeTheGr8:我不在線索。我將如何做到這一點? –

回答

0

@Doni安德里Cahyono你可以嘗試像以下,

var options = { 
       chart: { 
         type: 'line' 
       }, 
       title: { 
        text: 'CPU Report - SIU-A-CWDC Server, realtime ', 
        x: -20 //center 
       } 
      }; 

    $.ajax({ 
     url : 'mychart2.jsp', 
     type : 'POST', 
     data : "jsonData=" + options, 
    }); 

你將得到的數據作爲對象。你需要首先反序列化它。你可以使用這個gson庫。這link可能會對你有所幫助。