我有一个在LAN环境中运行的Java桌面应用程序(带有Swing GUI)。通常情况下,我使用一堆机器运行它,有些机器扮演服务器的角色,而其他机器充当客户端。
现在,我想在互联网上运行相同的应用程序,其中服务器和客户端都将托管在网站上,以便网站的访问者能够作为客户端运行并相互交互。
我想知道有哪些选项适用于此类迁移?我是否需要使用基于Java的Web框架从头开始重新编写所有内容?如果是这样,我应该如何处理GUI部分?或者我只是将应用程序作为applet托管? (不知何故,我不愿意沿着applet路线走下去,因为它可能需要在我无法控制的个人访问者的机器上进行额外设置,并且可能存在兼容性问题)。谢谢!
答案 0 :(得分:2)
一种选择是使用Vaadin。编程思维方式与JavaSE Swing非常接近。它是客户端的GWT衍生产品,但逻辑实际上是在服务器JVM上,框架负责通信(xhr或web套接字)。
答案 1 :(得分:1)
Google Web Toolkit (GWT)可能对此有用,因为它可以让您重用通用Java代码并将其编译为JavaScript以便在浏览器中运行。在我的应用程序中,我正在重用我在服务器中使用的客户端中的类。必须使用Web小部件重新创建UI,但是存在wysiwyg工具。
如果需要双向通信,还可以将原始套接字迁移到Websockets。
答案 2 :(得分:1)
如果您的代码遵循mvc模式,则应该可以重用模型。我最喜欢的java web框架来自spring source。 Spring mvc(干净的mvc设计)或spring roo(更多带有代码生成的rails样式等)。两者都与dojo框架(ajax / gui stuff)很好地集成。