2015-06-29 109 views
0

有沒有辦法用JAVA SE獲取$(this).tree('toJson')的內容?
最近我看到一個使用URL獲取網站內容的JAVA SE代碼,它讓我想知道是否有可能從JS/JQuery獲取特定內容。有沒有辦法使用JAVA SE獲取JQuery可變內容?

在此先感謝。

這是我看到使用Java SE:

import java.net.*; 
import java.io.*; 

public class URLReader { 
    public static void main(String[] args) throws Exception { 

     URL oracle = new URL("http://www.oracle.com/"); 
     BufferedReader in = new BufferedReader(
     new InputStreamReader(oracle.openStream())); 

     String inputLine; 
     while ((inputLine = in.readLine()) != null) 
     System.out.println(inputLine); 
     in.close(); 
    } 
} 

這是我的 'APP':

$(document).ready(function() { 
 

 
    //var data is a dynamic JSON file that should be created in the backend. 
 
    var data = [{ 
 
    label: 'node1', 
 
    id: 1, 
 
    children: [{ 
 
     label: 'child1', 
 
     id: 2 
 
    }, { 
 
     label: 'child2', 
 
     id: 3 
 
    }] 
 
    }, { 
 
    label: 'node2', 
 
    id: 4, 
 
    children: [{ 
 
     label: 'child3', 
 
     id: 5 
 
    }] 
 
    }]; 
 
    $('#tree1').tree({ 
 
    data: data, 
 
    autoOpen: true, 
 
    dragAndDrop: true 
 
    }); 
 

 

 
    console.log($('#tree1').tree('toJson')); //This will give you the loading jqtree structure. 
 

 
    $('#tree1').bind(
 
    'tree.move', 
 
    function(event) { 
 
     event.preventDefault(); 
 
     // do the move first, and _then_ POST back. 
 
     event.move_info.do_move(); 
 
     console.log($(this).tree('toJson')); //this will give you the latest tree. 
 
     $.post('http://system.com', { 
 
     tree: $(this).tree('toJson') 
 
     }); 
 
     alert("done"); //this will post the json of the latest tree structure. 
 
    } 
 
); 
 

 

 
});

+0

沒有什麼是不可能的,但這需要Java程序通過解析DOM樹並使用JavaScript引擎來操作它來模仿瀏覽器。 – Gimby

+0

您是否問如何用java解析服務器上的html,或者您是否可以從服務器端java應用程序調用jquery? –

+0

我想你會發現你展示的Java代碼是讀取頁面的源代碼,這是可行的,因爲html頁面的源代碼只是文本。這與實際運行頁面的JS並訪問其變量不一樣。 – nnnnnn

回答

0

到從客戶端獲取數據的唯一方法(您的JQuery運行的地方)到服務器(您的JAVA代碼運行的地方)是通過在服務器調用中發送它。最簡單的形式是將它發送到HTTP GET請求的URL或HTTP POST請求的主體中。

編輯:在這種情況下,應該在服務器上運行一個servlet(可能是諸如JSP或Apache Wicket之類的Web框架)來捕獲請求。

此外,一定要想想你需要什麼,你要發送沿,如果它是私有的,它需要加密信息,安全(HTTP 小號)連接等

請請注意,某些類型的數據/字符可能不適用於URL或POST數據,因此您可能需要對該數據進行編碼(例如,以base 64爲單位)才能獲取/發佈它。

+0

信息不重要,我不認爲它需要加密。那麼你推薦什麼? – Kyle

+0

那麼,基本上你說我應該使用'AJAX'? – Kyle

+0

不一定是Ajax,也可以是一個普通的舊HTTP請求,但是,如果你想從你的客戶端網頁發送一些(用戶生成的?)內容到你的服務器,你通常使用POST來嵌入post數據中的數據可能通過一個表單)。 – Buurman

相關問題