`
endisonlai
  • 浏览: 10723 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
最近访客 更多访客>>
社区版块
存档分类
最新评论

GWT2.0请求方式

    博客分类:
  • GWT
阅读更多

       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方式后面再介绍.

 

 

分享到:
评论

相关推荐

    Ext + Gwt + Struts2.0开发3

    5. **与Struts2.0交互**:为了让Gwt与Struts2.0通信,我们需要定义Action类,处理Gwt发送的请求,并返回JSON或XML数据。在Struts2的配置文件中,定义这些Action的映射。在Gwt端,使用GWT-RPC或RequestBuilder来发起...

    Ext + Gwt + Struts2.0开发5

    总结来说,"Ext + GWT + Struts2.0"的开发模式允许你利用ExtJS的强大UI组件库,GWT的远程服务调用机制,以及Struts2.0的MVC架构,创建一个完整的、高性能的Web应用。这种组合提供了从用户交互、数据处理到服务器端...

    Apress.Pro.Web.2.0.Application.Development.with.GWT.May.2008

    ### GWT与Web 2.0应用开发 #### 核心知识点概述 本书《Pro Web 2.0 Application Development with GWT》由Jeff Dwyer撰写,深入探讨了使用Google Web Toolkit (GWT)进行Web 2.0应用程序开发的专业技术和最佳实践。...

    GWT快速开发.pdf

    此外,GWT还提供了一系列丰富的用户界面组件和工具,使得开发高质量的Web 2.0应用变得简单而高效。 ### GWT下载与安装 #### 下载步骤 - 访问官方下载页面:[http://code.google.com/webtoolkit/]...

    gwt-websockets-1.0.3.zip

    GWT-WebSockets作为一个包装器,为GWT应用提供了一种方便的方式来利用WebSockets技术,而无需直接处理底层的WebSocket API,这通常会涉及到复杂的JavaScript和网络编程。 在标签 "开源项目" 中,我们可以推断出这个...

    gwt-dev-2.6.0-rc4.zip

    3. **开源许可证**:这两个项目都是开源的,这意味着它们遵循特定的开源许可协议,如Apache 2.0或MIT,允许用户自由地使用、修改和分发代码。 4. **Git分支管理**:"common-jawr-master"表明这是Jawr项目在Git版本...

    Pragmatic Ajax A Web2.0 Primer(国外经典)

    在Java环境中,Ajax可以通过诸如Apache Trinidad、DWR(Direct Web Remoting)或Google Web Toolkit (GWT)等库来实现。这些工具允许Java开发者在服务器端使用Java编写业务逻辑,并将结果以Ajax方式传递到客户端。 4...

    GWT学习笔记

    GWT,全称为Google Web Toolkit,是Google推出的一款用于构建高效、跨平台的Web2.0应用程序的开源框架。GWT的核心技术在于它提供了一个编译器,能够将Java代码转换为JavaScript,使得开发者可以使用Java语言来编写...

    Professional Web 2.0 Programming

    书中可能详细解释了Ajax的工作原理、创建Ajax请求的方法以及如何处理响应。 2. **JavaScript框架**:可能涵盖了如jQuery、Prototype等流行的JavaScript库,这些库简化了DOM操作、事件处理和Ajax交互,提高了开发...

    gwt-oauth2:从 code.google.compgwt-oauth2 自动导出

    GWT-OAuth2 是一个基于 Google Web Toolkit (GWT) 的库,用于在 GWT 应用程序中实现 OAuth 2.0 身份验证。OAuth 2.0 是一个授权框架,允许第三方应用安全地访问用户的受保护资源,而无需获取其登录凭据。GWT 是一个...

    Web2.0动态网站开发—JSP技术与应用.rar(书中源码)

    同时,通过使用像Flex或GWT这样的RIA框架,可以在客户端构建复杂的用户界面,减轻服务器端的压力。 在JSP中,表达式语言(EL)和标签库(JSTL)是提高开发效率和可维护性的关键工具。EL简化了访问JavaBean属性,而...

    SD大会精品讲座:运用AJAX开发Web-2.0应用

    ### SD大会精品讲座:运用AJAX开发Web-2.0应用 #### 一、引言 随着互联网技术的快速发展,用户对于网页应用的需求也日益增长。Web 2.0概念的提出标志着网络应用进入了一个全新的阶段,其中AJAX技术成为了推动这一...

    Attacking AJAX Applications

    随着互联网技术的发展,Web 2.0概念应运而生,它不仅改变了人们使用网络的方式,也带来了新的安全威胁。AJAX(Asynchronous JavaScript and XML)作为Web 2.0的核心技术之一,在提高用户体验的同时,也为黑客提供了...

    google app engine开发人员文档

    3. **身份验证和授权**: 探索Google的OAuth2.0和其他身份验证机制,理解如何保护你的应用和数据安全。 4. **性能优化**: 学习如何进行性能监控和优化,如减少读写延迟、正确使用缓存和预热请求。 5. **故障排查**:...

    log4Net详解(共2讲)

    如从2.02版开始为Adobe的RIA技术AIR提供支持,并且为GWT开发了Ext GWT2.0,这些都体现了ExtJs的强大活力和生命力。 在可预见的未来,ExtJs将会甩开对手,大踏步向前。 ExtJs的前景: ExtJS的前景是非常好的,...

    JSF2-Overview

    - Java 6、中级/初级的Servlets/JSP、高级Servlets/JSP、Struts、JSF 1.x & 2.0、Ajax、GWT、Spring、Hibernate、SOAP & RESTful Web Services等。 - Ajax课程可以专注于一个特定的库(如jQuery、Prototype/...

    Web性能测试工具dynaTrace的使用说明

    jQuery、GWT、YUI、DoJo等兴起的框架让构建Web 2.0应用变得更加容易,糟糕的是,随之而来的,定位这些应用的问题也越来越难,尤其是与性能相关的时候。 最让人头疼的浏览器依然是Internet Explorer – 企业级环境也...

    dynaTrace使用分享-基础篇

    随着Web 2.0技术的迅猛发展,诸如jQuery、GWT、YUI、Dojo等前端框架的普及极大地提升了构建复杂Web应用的能力,同时也带来了性能调试上的新挑战。在这样的背景下,dynaTraceAjax作为一种强大的性能分析工具,...

Global site tag (gtag.js) - Google Analytics