0

我在我的应用程序中创建了一个 Textarea。我的服务器中有一种方法,即

              GreetingServiceImpl class

GreetingServiceImpl 类中我的方法的示例代码是:

        public String greetServer(String input) throws IllegalArgumentException {
    System.out.println("input===>>" + input);
    String serverInfo = getServletContext().getServerInfo();
    System.out.println("serverinfo===>>" + serverInfo);
    String userAgent = getThreadLocalRequest().getHeader("User-Agent");
    System.out.println("User agent===" + userAgent);
    input = escapeHtml(input);
    System.out.println("2....input===>>" + input);
    userAgent = escapeHtml(userAgent);

    return "Hello, " + input + "!<br><br>I am running " + serverInfo
            + ".<br><br>It looks like you are using:<br>" + userAgent;
}   

现在在我的客户端中,我将调用此方法,在调用此方法后,我想将 setText 设置为我的 textarea。文本应该来自服务器。

   i.e, I have 4 sysout statements in this method.
  System.out.println("input===>>" + input);
 System.out.println("serverinfo===>>" + serverInfo);
  System.out.println("User agent===" + userAgent);
 System.out.println("2....input===>>" + input);

当这些语句打印到 Eclipse 控制台时,同时我想在我的 UI 中按顺序(根据它们的执行情况一一)打印到我的文本区域中。我不知道如何实现这一目标。请告诉我这是否可行,如果可以,我该如何实现?

PS:我正在寻找一种记录器类型的功能,它可以在执行任何服务器端数学时更新我的​​文本区域。

4

2 回答 2

0

可以使用支持WebSockets和 GWT 的Atmosphere将数据从服务器推送到客户端。

于 2013-09-19T11:13:50.700 回答
0

为什么不使用RPC调用?它简单明了。

您只需在客户端创建一个 Example.java 和 ExampleAsync 类,并在服务器上创建实现。然后,您可以使用 AsyncCallback 调用实现。

例如:

 callback = new AsyncCallback() {
    public void onSuccess(Void result) {
      // Make what ever you want! For example, set the textarea
    }

另一方面,如果您希望服务器通知和更新客户端,您可以使用Server-Push 也可以使用gwt-comet,它也通过 http 流式传输消息。

于 2013-09-19T11:44:24.730 回答