appengine project中 client和server之间实现数据的传递

本文详细介绍了如何使用GWT(Google Web Toolkit)在客户端与服务器端进行Web服务交互的过程,包括创建接口、实现远程服务、配置Web容器以及客户端调用服务的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

client 负责显示,server端处理数据。 这里又两个包  xxx.xxx.client就是client端 xxx.xxx.server就是服务端。他们通过service这个东西传递数据。

1.首先在client端 提供一个接口,提供所要实现的方法。这里就一个方法要实现。这个接口要继承RemoteService类。

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("stockPrices")
public interface possibleService extends RemoteService{
	stockprice[] getPrices(String[] symbols) throws DelistedException;
}

这里@RemoteServiceRelativePath("stockPrices")  提供一个相对路径,等下在web.xml中会指明servlet的路径。

2.然后要生成一个 异步接口 

import com.google.gwt.user.client.rpc.AsyncCallback;
public interface possibleServiceAsync {
	void getPrices(String[] symbols, AsyncCallback<stockprice[]> callback);
}
这个好像涉及服务器异步传递的方式  反正要生成一个这个接口,后面似乎是通过他 去生成一个叫call的东西和服务器交流。暂时这么说吧。用eclipse 直接生成。不行就照着写。

3.然后在服务器端server端写实现这个接口的方法:

public class possibleServiceImpl extends RemoteServiceServlet implements possibleService{
	@Override
	public stockprice[] getPrices(String[] symbols) throws DelistedException {。。。}
这个实现类继承RemoteServiceServlet 实现提供的接口。

4.然后我们就要在client中调用这个,在这个之前,有个事实 ,原话是这么说的:

Every service implementation is ultimately a servlet, but rather than extending HttpServlet, it extends RemoteServiceServlet instead. RemoteServiceServlet automatically handles serialization of the data being passed between the client and the server and invoking the intended method in your service implementation.

每个service 这个东西 在这里就是possibleServiceImp 说到底都是一个servlet。

所以要在web.xml对这个service进行servlet式的配置才能调用他。

  <servlet>
    <servlet-name>possibleServiceImpl</servlet-name>
    <servlet-class>com.harvey.version.server.possibleServiceImpl</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>possibleServiceImpl</servlet-name>
    <url-pattern>/possible/stockPrices</url-pattern>
  </servlet-mapping>
这个地方/possible/stockPrices  possible 是project的名字。 stockPrices就是上面定义接口的时候定义的相对路径。
<url-pattern>/possible/stockPrices</url-pattern>
5.然后调用了。首先client端里建一个 这个东西。

private possibleServiceAsync stockPriceSvc = GWT.create(possibleService.class);

possibleServiceAsync就是异步的接口,GWT通过新建possibleService的类放入异步接口 stockPriceSvc。

AsyncCallback<stockprice[]> callback = new AsyncCallback<stockprice[]>() {
		      public void onFailure(Throwable caught) {
		        // TODO: Do something with errors. 
		      }
		      public void onSuccess(stockprice[] result) {
		      }
		    };

然后要生成一个callback 里面有两个方法onFailure 和 onSuccess,睡了 这两个的作用明天弄清楚了再讲。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值