我的理解是GWT RequestFactory( RF )API用于构建面向数据的服务,客户端实体可以直接与它的服务器端DAO通信
我的理解是当您从客户端触发RF方法时,服务器上的RequestFactoryServlet
首先接收请求。此servlet的作用类似于DispatchServlet
,并将请求路由到正确的服务,该服务与数据存储中的单个实体(模型)绑定。
我习惯于编写可能将请求传递给某些业务逻辑(如EJB)的servlet,然后计算一些响应以发回。这可能是JSP视图,一些复杂的JSON(Jackson)对象,或其他任何东西。
在所有RF示例中,我都看不到这些servlet的存在,我想知道它们是否存在于GWT-RF领域。如果RequestFactoryServlet
自动将请求路由到正确的DAO和方法,并且DAO方法是响应中返回的内容,那么我可以看到GWT RF甚至不使用传统servlet的情况。 (1)是这样的吗?
无论如何,我的GWT应用程序中有时候我想要点击特定的URL,例如http://www.example.com?foo=bar
。 (2)我可以使用RF吗?若然,怎么做?
我想如果我能看到两个具体的例子,并在GWT RF中并排运行,我就可以连接所有的点:
Person
实体,其中包含isHappy()
,isSad()
等方法,需要与服务器端DAO进行交互;和http://www.example.com?foo=bar
发出HTTP请求并手动检查HTTP响应如果可以使用RF API完成这两项工作,那将是我的首选。如果使用RF无法完成后一种情况,那么请解释为什么以及什么是GWT首选的替代方案。提前谢谢!
答案 0 :(得分:0)
1.-请求工厂不仅适用于实体而且适用于服务,因此您可以使用从客户端调用的方法在服务器端定义任何服务。当然,当您使用RF服务时,他们能够处理某些类型(原始,盒装基元,集合,列表和RF代理)
@Service(value=RfService.class, locator=RfServiceLocator.class)
public interface TwService extends RequestContext {
Request<String> parse(String value);
}
public class RfService {
public String parse(String value) {
return value.replace("a", "b");
}
2.- RF不会被认为接收其他消息有效负载而不是RF servlet产生,并且您在客户端使用RF做的最多是要求托管在不同站点的服务(当您部署服务器和客户端时)不同主持人的双方)。
您可以使用gwt world中的其他机制从其他网址获取数据,查看gwtquery Ajax和data-binding或此article