加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – 如何将数据推送到jsp而不是每2秒请求一次?

发布时间:2020-12-15 01:38:23 所属栏目:大数据 来源:网络整理
导读:我想每2秒将数据推送到jsp,而客户端请求它. 我在这里使用Spring with Hibernate. 我正在显示谷歌地图标记,我想通过从数据库获取数据每2秒更新标记位置,但是我已经从数据库获取数据每2秒,但我无法将数据推送到此JSP. @Scheduled(fixedRate = 2000) public voi

我想每2秒将数据推送到jsp,而客户端请求它.
我在这里使用Spring with Hibernate.
我正在显示谷歌地图标记,我想通过从数据库获取数据每2秒更新标记位置,但是我已经从数据库获取数据每2秒,但我无法将数据推送到此JSP.

   @Scheduled(fixedRate = 2000)
   public void getData(){
                    // TODO Auto-generated method stub
                    DeviceDetails deviceDetails = realTimeDataDAO.getDeviceDetails(deviceId);
                    System.out.println(deviceDetails);
                }

我必须每2秒显示一些数据.谁能告诉我怎么做?

任何人都知道Comet Ajax Push技术,它会在这种情况下工作吗?

最佳答案
使用Spring最好的办法是将计划查询的结果存储到内存中的bean中,然后让另一个请求范围bean将该结果存储在Web可访问的方法中,并将其作为文本(或JSON)返回.或者,您可以在每次请求更新时查询数据库.

然后,您可以从页面发出定时异步请求(您可能需要使用YUI Connection Manager),阅读响应并使用google.maps.Map中的panTo方法更新地图位置.

如您所见,该解决方案分为Java和JavaScript部分.

对于Java端,您必须创建一个控制器来执行对数据库的查询(或者更好,将该任务委托给另一个层)并将结果作为JSON返回,您可以使用http://spring-json.sourceforge.net/.它在Spring中有点复杂,因此您可能希望创建一个返回数据的简单servlet.

对于Javascript方面,一旦有了一个返回JSON数据的工作端点,使用YUI Connection Manager和google maps api:

function update(){
    var callback = {
        success: function (o) {
            var response = YAHOO.lang.JSON.parse(o.responseText);
            map.panTo({lat: response.lat,lng: response.longi}); // map is the google.maps.Map representing your map
        },failure: function (o) {

        }
    }
    var sUrl = '/getData.htm'; // This is the request mapping for your bean
    YAHOO.util.Connect.asyncRequest('GET',sUrl,callback);
}

function init(){
    setTimeout("update()",2000);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读