2012-12-04 167 views
1

我是使用Java進行網頁編程的新手。我有一個用Java編寫的客戶端/服務器,我希望客戶端的更新從服務器發送到用戶查看的Web界面。更新的時間是隨機的,但我希望能夠動態更新一個新的數據的網頁,而不必刷新瀏覽器。通過Servlet動態更新JSP頁面

希望這是有道理的:

我試圖創建觀察更新(字符串)一個Servlet(implements Observer)我的服務器(extends Observable),但我不知道如何動態地添加這些到瀏覽器窗口。我曾嘗試直接打印從doGet()方法使用PrintWriter out = response.getWriter(); Servlet中,但response.getWriter()是在Servlet的update()方法不可用。

我最初的想法是使用從Server接收Observer更新的JSP頁面(我需要最終整合HTML/CSS),但我不確定。

我做了一些研究彗星/ PUSH,但我不知道這是什麼,我需要 - 也許有點矯枉過正?任何關於如何實現我所追求的建議都將不勝感激。

+1

如果你想有一個頁面無刷新更新,那麼你就需要使用JavaScript將請求發送到你的servlet,並得到更新的信息回來,然後格式化,然後更換或者將其插入到頁面。如果您不關心可見的刷新頁面,則可以設置爲在給定的時間間隔刷新。 – TheZ

回答

2

執行此操作的最常見方法是讓客戶端輪詢服務器以進行更改。在客戶端使用AJAX請求來輪詢服務器上的端點。

然後,您將需要使用jQuery/JavaScript的使用從AJAX請求檢索新的數據來更新你的網頁。

我建議在theb rowser使用jQuery和使用AJAX功能:http://api.jquery.com/jQuery.ajax/

它可以讓你的請求後,並在通話做回調回來,你可以更新你的網頁的數據內容從請求中檢索。

+0

謝謝,我會試試看。 – Munkeh

0

不能從服務器更新網頁,沒有經常性輪詢或推。

如果你想有一個真正推,然後彗星是不是矯枉過正,否則,你可以在網頁上使用輪詢腳本。