1:在客户端也即client,实现service接口,方法如下:
package com.jpleausre.gwt.logon.client;
import java.util.ArrayList;
import com.google.gwt.user.client.rpc.RemoteService;
public interface GwtService extends RemoteService{
public String user(String name,String password);
public User update(User us);
}
2:1:在客户端也即client,实现ServiceAsync接口,方法如下:
package com.jpleausre.gwt.logon.client;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface GwtServiceAsync {
public void user(String name,String password,AsyncCallback callback);
public void update(User us,AsyncCallback callback);
}
3:在服务器端实现ServiceImpl类,并实现一些接口,方法如下:
package com.jpleausre.gwt.logon;
import java.util.ArrayList;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.jpleausre.gwt.logon.client.GwtService;
import com.jpleausre.gwt.logon.client.User;
public class GwtServiceImpl extends RemoteServiceServlet implements GwtService{
public String user(String name, String password) {
// TODO Auto-generated method stub
//显示用户名
if(name!=null && password!=null && name.equals("aa") && password.equals("bb")){
String ll = name;
return ll;
}else{
return "failure";
}
}
//传输对象
public User update(User us){
return us;
}
}
4:在继承了EntryPoint接口的类中调用,方法如下:
GwtServiceAsync async = GwtServiceAsyncCreator
.getHelloServiceAsync();
async.user(intousename.getText(), intopassword.getText(),new AsyncCallback() {
public void onFailure(Throwable arg0) {
Window.alert("test");
}
public void onSuccess(Object arg0) {
if(arg0.toString()!=null&&arg0.toString().equals("failure")){
Window.alert("用户名密码错误");
intousename.setText("");
intopassword.setText("");
}else{
v.setVisible(false);
v2.setVisible(true);
String s = (String)arg0;
viewl.setText("欢迎您:"+s);
}
}
});
5:实现异步入口访问路径封装
public static class GwtServiceAsyncCreator {
public static GwtServiceAsync getHelloServiceAsync() {
GwtServiceAsync async = (GwtServiceAsync) GWT
.create(GwtService.class);
ServiceDefTarget target = (ServiceDefTarget) async;
target.setServiceEntryPoint(GWT.getModuleBaseURL() + "/demogwt");
return async;
}
}
注意:"/demogwt"是在*.gwt.xml中配置如下代码 <servlet path='/demogwt' class='com.jpleausre.gwt.logon.GwtServiceImpl'/>