我正在寻找一种有效的方法,将ResultSet
转换为可以通过GWT-RPC发送的表单,该表单通常可以作为GWT服务器-客户端通信的一部分。
使用JSON与RequestFactory相比有什么优缺点?
如果我要如上所述使用它们,有人愿意解释一下吗?
可能很重要的一点是,我想在客户端处理数据库的大部分内容,而不仅仅是单个条目。我一次要谈论数百个条目,因此我基本上认为我需要一种有效传输数据的方法。
一次请求一个条目是否会产生大量开销?
一个类似的教程将不胜感激。
最佳答案
移动大量数据通常是一个糟糕的主意,对于客户端-服务器体系结构来说是不典型的。所以我建议重新设计。
GWT-RPC是面向服务的。所有的RPC框架都是。主要目的是对方法调用进行序列化/反序列化。换句话说,服务器和客户端正在通信的是必须明确定义的消息。在GWT中,基本的传输机制是JSON,而在SOAP(例如,SOAP)中,其是XML,但是机制是相同的。
RequestFactory以数据为中心。设想一个由URL / getCustomers的简单HTTP请求触发的servlet。 servlet只需访问数据库并返回结果。 RequestFactory非常像那样,但是提供了额外的功能。例如,RequestFactory依赖于在服务器上创建实体对象Customer和在客户端上创建代理对象CustomerProxy。该框架处理这些对象之间的数据传输。更具体地说,RequestFactory可以更新单个属性(即“字段”),因此可以通过仅发送状态差异来提高效率。
架构上的一个重要区别是GWT-RPC在更高的功能级别上运行。 RequestFactory在数据级别运行。典型的实现可能是使用RequestFactory设置CRUD接口。使用GWT-RPC这样的设计将是非常错误的。
我建议您在做出决定之前更多地阅读这两个框架。但是,RequestFactory似乎是解决您问题的最佳解决方案。
如果您只有一个用例,那么实现自己的servlet就可以了。在您的GWT代码中使用RequestBuilder从Servlet请求数据。访问数据库,将ResultSet转换为JSON,在客户端将响应转换回JavaScriptObject,然后完成。这将节省您设置RequestFactory以及所有实体,代理和定位器的工作。