有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

关于编写富Web UI以前置RESTful HTTP API的java建议

我一直在研究一组在Java中使用Restlet实现的RESTful HTTP服务。这些服务目前由运行在Windows上的专有桌面应用程序和其他后端服务使用

我现在的目标是为这些将在Web浏览器中运行的服务设计一个Ajaxy用户界面。我知道现有的解决方案太多了。我非常熟悉Scala、Java、GWT,并且对JavaScript有一定的了解

我突然想到了以下解决方案,我想知道社区中的人有过哪些经验

使用GWT的纯客户端解决方案 Seesmic采用这种方法来实现其社交网络客户端的web版本(我相信后端REST服务是用RESTlet实现的)。我对GWT很熟悉,但有时我觉得它相当冗长。我还没有试过UI活页夹

使用Vaadin的基于服务器的解决方案 我不熟悉Vaadin,但它看起来相当完整,我可以将它与Scala一起使用,这是我的一个额外优势

使用JavaScript框架的纯浏览器解决方案,如jQuery、Dojo等基于JavaScript的解决方案可以很快原型化,但我有点担心随着代码库的增长处理复杂性

我期待着听到你的意见和现实世界的经验


共 (2) 个答案

  1. # 1 楼答案

    如果你想充分利用网络作为一个平台,它有自己独特的要求

    像GWT和vaadin(基于GWT构建)这样的翻译解决方案令人印象深刻,而且功能非常强大,但是如果你想要一个完整的bells&;whistles界面然后你应该使用纯JavaScript——最好使用你提到的框架之一来帮助管理复杂性和浏览器差异

    GWT在这里还有一个缺点,即它提供自己的客户机-服务器通信,因此您将很难在现有REST接口周围安装它

    免责声明:即使是GMail也必须使用一些手工制作的javascript

  2. # 2 楼答案

    我目前正在开发一个商业银行应用程序,通过GWT前端访问Web服务。我们的应用程序架构如下。前端有EXT-GWT的GWT使用GWT RPC与Servlet引擎对话。然后,Web层充当代理来执行Web服务调用
    这种方法的好处是,您可以将UI与Web服务隔离开来,并可以合并其他功能,例如安全性,还可以在后端调用多个Web服务(也可以与一些DB调用一起),然后将功能聚合到视图中
    性能非常好,除了一开始的15秒左右的启动时间
    我们之所以这么做,是因为EXT-GWT在GWT之上提供了很多不错的小部件,而且我们所有的代码都是用Java编写的,这给了我们类型安全性和运行调试器的能力

    EXT-GWT有两个缺点
    1) 初始加载时间
    2) 文档可能会更好。(它有很多示例代码)