2011-11-28 27 views
0

我已查找并搜索了几个小时,但找不到任何易于理解的内容。我必须做一件容易的事情。如何使用AJAX -JSON保持JSP中的数据更新?

所以,我有一个Java类,有一个“服务”对象与一个int变量“lastCustomer”的地图。 这个值发生了变化,我怎样才能保存更新的数据在我的“显示”页面(不刷新它)?

假设使用AJAX,Javascript和所有这些东西,但不知道如何。

编辑:

好吧,也许我提出。仍然停留在“解析”上。现在我写了一个servlet来获取数据并用“/ display/something”打印页面中的所有内容。现在,我如何通过jQuery访问它?

基本上我有一个对象列表(非常对象有一个动态值)。 我必须打印对象并不断更新值。

顺便说一句,JSON字符串为我提供了从servlet不更新自身,它需要刷新。我想我错过了一些基本的东西。

一些代码:

@WebServlet("/JsonServices") 
public class JsonServices extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { 


     Gson gson = new Gson(); 
     String json = gson.toJson(myClass.services()); 

     response.setContentType("application/json"); 
     response.getWriter().println(json); 
    } 
} 
+0

只是看看一些AJAX教程。在那里或在这里有足够多的东西。我建议你看看[jQuery](http://jquery.com),因为这是迄今为止最容易使用的AJAX库。 –

+0

您目前的问题尚不清楚。这是ajax轮询吗?还是解析接收到的JSON?后者实际上属于另一个问题。 – BalusC

+0

我想都是。第一个问题是更新数据:当我刷新页面时,servlet向我发送JSON字符串,如何在不刷新的情况下获得新数据? 之后,我有我的JSON字符串。问题是如何使用页面上打印的数据.. [我认为应该很容易使用它们:gson.fromJson(数据),这就是对象] – Enrichman

回答

2

其实你需要一个长轮询的解决方案。它会在事情发生变化时触发你。 但你可以用ajax做一些熟悉的事情。

function refresData(){ 
     $.ajax({ 
     url: "serverurl", 
     type: "GET" 
     success: function(data){ 
     //it will be your json or xml 
     } 
    }); 
    } 

var refreshInterval = setInterval(refreshData, 30 * 1000);//30 seconds 
refreshData();