GWT2.0请求方式

       GWT默认请求方式采用RPC (remote procedure call).在GWT当中有三种请求方式RPC、Form、RequestBuilder.

Form表单形式 [可参考google代码]:

   客户端调用:

                //设置请求地址(url action)
		formPanel.setAction(GWT.getModuleBaseURL() + "myFormHandler");
		//form模式(文件上传、普通模式)
		formPanel.setEncoding(FormPanel.ENCODING_URLENCODED);
		//请求方式(POST、GET)
		formPanel.setMethod(FormPanel.METHOD_GET);
		//验证:请求之前判断参数是否为空等操作
		formPanel.addSubmitHandler(new FormPanel.SubmitHandler() {
			
			@Override
			public void onSubmit(SubmitEvent event) {
				if (box.getText().trim().equals("")) {
					Window.alert("请输入");
					//撤销form.submit()
					event.cancel();
				}
			}
		});
		//完成:与服务器交互完成后的提示
		formPanel.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
			public void onSubmitComplete(SubmitCompleteEvent event) {
				Window.alert(event.getResults());
			}
		});

   提交:

final Button button = new Button("form test");
		button.addClickHandler(new ClickHandler() {
			@Override
			public void onClick(ClickEvent event) {
                                //form提交
				formPanel.submit();
			}
		});

   简单servlet后台处理:

package org.server;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyServlet extends HttpServlet {  
    private static final long serialVersionUID = 1L;  
  
    @Override  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        doPost(req, resp);  
    }  
  
    @Override  
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        resp.setContentType("text/plain;charset=UTF-8");  
        resp.getWriter().write(req.getParameter("textbox"));  
    }  
}  

   GWT配置:

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='formpanel'>
	<inherits name='com.google.gwt.user.User' />
	<inherits name='com.google.gwt.user.theme.standard.Standard' />
	<entry-point class='org.client.Formpanel' />
	<source path='client' />
	<source path='shared' />
	<servlet class="org.server.MyServlet" path="/myFormHandler" />
</module>

   web.xml配置

<servlet>
		<servlet-name>myServlet</servlet-name>
		<servlet-class>org.server.MyServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>myServlet</servlet-name>
		<url-pattern>/formpanel/myFormHandler</url-pattern>
	</servlet-mapping>
 

     RPC方式 [参考google例子]:需要两个接口一个实现类。

@RemoteServiceRelativePath("greet")//访问路径
public interface GreetingService extends RemoteService {
	String greetServer(String name) throws IllegalArgumentException;
}

 

public interface GreetingServiceAsync {
	void greetServer(String input, AsyncCallback<String> callback)
			throws IllegalArgumentException;
}

 

@SuppressWarnings("serial")
public class GreetingServiceImpl extends RemoteServiceServlet implements
		GreetingService {

	public String greetServer(String input) throws IllegalArgumentException {
		return input;
	}
}
 
//创建形式:
EmployeeServiceAsync employeeService = GWT.create(EmployeeService.class);

//调用形式
employeeService.saveOrUpdateEmployee(employeeId, employeeName, employeeSurname, employeeJobTitle, 
						new AsyncCallback<Void>() {}
 

     RequestBuilder方式后面再介绍.

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值