2012-04-04 39 views
2

我有一個運行在LAN環境中的Java桌面應用程序(帶有Swing GUI)。通常情況下,我用一堆機器運行它,其中一些扮演服務器的角色,而另一些扮演客戶端的角色。將聯網的Java桌面應用程序遷移到Web應用程序有哪些選擇

現在,我想在互聯網上運行相同的應用程序,其中服務器和客戶端都將託管在網站上,以便網站的訪問者將能夠作爲客戶端運行並與對方互動。

我想知道這些遷移有哪些選項可用?我是否需要使用一些基於Java的Web框架從頭開始重新編寫所有內容?如果是這樣,我該如何處理GUI部分?或者我只是將應用程序作爲applet託管? (不知何故,我不願意沿着小程序路線走,因爲它可能需要在個人訪問者的機器上進行額外的設置,我無法控制並且可能存在兼容性問題)。謝謝!

回答

1

Google Web Toolkit (GWT)可能是有用的,因爲它可以讓您重新使用通用Java代碼並將其編譯爲JavaScript以便在瀏覽器中運行。在我的應用程序中,我重複使用服務器中使用的客戶端中的類。用戶界面必須使用網頁部件來重新創建,但是存在這樣的wysiwyg工具。

如果您需要雙向通信,您也可以將原始套接字遷移到Websockets。

+0

這聽起來很有希望。兩個主要問題:1. GWT將Java代碼翻譯成Javascript代碼的流暢性/有用性如何?據我所知,Javascript仍然主要是網絡的前端語言,所以我該如何處理後端數據,例如寫入/讀取數據庫/從數據庫讀取數據? 2.雙向通信意味着什麼?你的意思是客戶端和服務器之間的雙向溝通​​?非常感謝! – skyork 2012-04-04 22:00:07

+0

1.你用Java編寫所有的東西,當你部署時GWT將它翻譯成js,但你不必擔心這一點。後端仍然是Java servlet,因此您可以執行任何Java操作(db等)。 2.通常,Web應用程序向服務器發出請求,然後獲得響應。如果您需要將數據流式傳輸到您的Web應用程序,則需要使用WebSockets。 – Andrejs 2012-04-04 22:11:25

1

如果你的代碼遵循mvc模式,應該可以重用模型的東西。我最喜歡的java web框架是Spring源碼。春天mvc(清潔mvc設計)或春天roo(更多的軌道風格與代碼生成等)。兩者都很好地融入了dojo框架(ajax/gui stuff)。

+0

感謝您的建議。我正在研究一些更新的框架,比如Play。我的一個主要問題是連接性,對於這樣一個網絡應用程序而言,可能比在更受控制的實驗室環境中更加易變。任何關於如何使用這種框架方法來處理這個問題的建議?謝謝! – skyork 2012-04-04 21:52:29

2

一個選項是使用Vaadin。編程思維與JavaSE Swing非常接近。它是客戶端的GWT衍生物,但邏輯實際上在服務器JVM上,框架負責通信(xhr或web套接字)。

相關問題