如何构建GWT于服务器的数据交互
一:
1: 插件很简单:
启动WTP eclipse ,首先创建一个动态的web项目如下
然后在src下创建module 如下:
2.使用命令来处理 这里也可以使用eclipse插件来插件都可以
进到gwt下 mkdir hello;
projectCreator –eclipse hello –out hello
applicationCreator –eclipse hello –out com.coolbuy.client.HelloWorld
即可
二:如何编写
1:>目录如下
2:Hello.gwt.xml中除了要配置java类和html的关联还要配置<servlet>如下:
<module>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User'/>
<!-- Specify the app entry point class. -->
<entry-point class='com.client.client.Hello'/>
<servlet path="/search" class="com.client.server.SearchServerImpl"/>
</module>
3>Hello.java如下:
package com.client.client;
public class Hello implements EntryPoint {
public void onModuleLoad() {
final TextBox text = new TextBox();
text.setMaxLength(30);
final ListBox list = new ListBox();
final Button bt = new Button("aaa");
final SearchServerAsync se = (SearchServerAsync) GWT
.create(SearchServer.class);
ServiceDefTarget target = (ServiceDefTarget) se;
String url = GWT.getModuleBaseURL();
url += "/search";
target.setServiceEntryPoint(url);
bt.addClickListener(new ClickListener() {
public void onClick(Widget arg0) {
se.getName(new AsyncCallback() {
public void onFailure(Throwable arg0) {
list.addItem("ab", "ttt");
RootPanel.get("text").add(list);
}
public void onSuccess(Object arg0) {
String name[] = (String[]) arg0;
list.addItem("a", name[0]);
RootPanel.get("text").add(list);
}
});
}
});
RootPanel.get("text").add(text);
RootPanel.get("sumbmit").add(bt);
}
}
3>client下要写2个接口,一个普通的一个异步的
SearchServer.java
package com.client.client;
import com.google.gwt.user.client.rpc.RemoteService;
public interface SearchServer extends RemoteService {
public String[] getName();
}
SearchServerAsync.java
他在上面接口的基础上,将方法返回值改成void,并且在所有的参数后加上AsyncCallBack back 实现异步
package com.client.client;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface SearchServerAsync {
public void getName(AsyncCallback callback);
}
4>server包中的服务器端如何写:
实现上述普通的接口
继承RemoteServerServlet
import com.client.client.SearchServer;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class SearchServerImpl extends RemoteServiceServlet implements SearchServer{
private static final long serialVersionUID = 1L;
public String[] getName() {
final String[] name = {"java","1120","jast","98","jast","123"};
return name;
}
}
5>在WEB服务器中配置请求类型配置servler
<servlet>
<servlet-name>name1</servlet-name>
<servlet-class>
com.server.SearchServerImpl
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>name1</servlet-name>
<url-pattern>/search</url-pattern>
</servlet-mapping>