我在我的应用中创建了一个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控制台时,同时我想在我的用户界面中按顺序打印(按照执行的顺序),即我的textarea。我不知道如何实现这一目标。请告诉我这是否可以做,如果是这样我怎么能实现?
PS:我正在寻找一种记录器类型功能,可以在执行任何服务器端方法时更新我的textarea。
答案 0 :(得分:0)
可以使用支持Atmosphere和GWT的WebSockets将数据从服务器推送到客户端。
答案 1 :(得分: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流式传输消息。