`
zhangrui840121
  • 浏览: 5779 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
最近访客 更多访客>>
社区版块
存档分类
最新评论

Flex与java服务端通信 URLRequest

    博客分类:
  • flex
 
阅读更多
URLRequest类
     记录请求服务端的URL信息, 给URLLoader进行发送操作.

URLVariables类
     保存向服务端请求所需的参数, 一般用于POST方式传输,GET方式传输不需要使用.

URLRequestMethod类
     该类只有两个静态常量值, 一个是POST, 一个是GET, 可以把它当作是一个枚举类型, 用于指定URL请求时使用POST方式或是GET方式.

URLLoader类
     真正与服务端打交道的类, 通过load方法把一个Reuqest发送给服务端, 在load之前必须给该对象添加一个Complete事件的监听器,接收服务器返回的信息. 传输过程中有可能产生IO错误, 有必要时可以为该对象添加IOError监听器.

例子:
   var request: URLRequest = new URLRequest("http://localhost");

   //默认为URLRequestMethod.GET, 若使用GET方式可以不指定
   request.method = URLRequestMethod.POST;

   //创建一个参数变量对象,用于保存所有向服务发送的参数数据, GET方式可以不使用
   var vars: URLVariables = new URLVariables ();
   vars["varName"] = varValue; //把参数键,值对放到vars对象中.
   vars["var2Name"] = var2Value;
   request.data = vars;  //把参数对象放进Request对象中作为参数

   // 通过request对象创建一个loader,
   var loader: URLLoader = new URLLoader(request);

   事件及返回值的处理

   loader.addEventListener( //给loader对象添加完成时的监听器.
   Event.COMPLETE,
   function(e: Event):void  //临时定义一个监听器
    {
     //服务端返回的数据是保存在loader的data里,通过以下语句可以得到
     trace(URLLoader(e.target).data );//在监听器里处理服务端返回的数据
     //complete
    // process the data;
    }
   );

   loader.addEventListener( //IOError监听器
    IOErrorEvent.IO_ERROR,
    //临时监听器,IO错误的处理在该函数中处理
    function(e: IOErrorEvent): void {/* process the err;*/}
   
    loader.load(request);//把request对象发送到服务端.当请求完成,则会自动触发COMPLETE事件。

下面写一个具体的代码示例
<SPAN style="FONT-SIZE: medium"><?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			import mx.utils.URLUtil;
			protected function myFlex_resultHandler(event:ResultEvent):void
			{
				var name:String=event.result as String;
				Alert.show(name);
			}
			
//			protected function btnSend_clickHandler(event:MouseEvent):void
//			{
//				
//				myFlex.sayHello(txtName.text);
//			}

			protected function button1_clickHandler(event:MouseEvent):void
			{
				var v:URLVariables = new URLVariables("name=jacky&age=35&address=HongKong China");  
				/* 
				也可以是这种方式
				var vars: URLVariables = new URLVariables ();
				vars["varName"] = varValue;	//把参数键,值对放到vars对象中.
				vars["var2Name"] = var2Value; 
				*/	
				var r:URLRequest = new URLRequest();  
				r.url = "http://localhost:8080/Flex4BlazeDSWeb/test.do";  
				r.method = URLRequestMethod.POST;  
				r.data = v;  
		
				var l:URLLoader = new URLLoader();  		
				l.load(r);  
					
				l.addEventListener(Event.COMPLETE,txtCompleteHandler); //注册请求完成后 响应获取数据事件方法  
				//labMsg.alpha = 1;  
			}
			
			private function txtCompleteHandler(e:Event):void  
			{  

				var l:URLLoader = URLLoader(e.target);  
				/* URLUtil的stringToObject方法解释
				从字符串返回对象。字符串包含 name=value 对,它们成为返回对象的动态属性。这些属性对由指定的 separator 分隔。该方法可转换数字、布尔值、数组(由“[]”定义)以及子类(由“{}”定义)。默认情况下,%XX 格式的 URL 模式将转换为相应的字符串字符。 
				例如: 
				var s:String = "name=Alex;age=21";
				var o:Object = URLUtil.stringToObject(s, ";", true);		
				返回对象:{ name: "Alex", age: 21 }。
				*/
				//直接获取返回值内容:  URLLoader(e.target).data
				Alert.show(l.data);
				var o:Object = URLUtil.stringToObject(l.data,";",true); //使用URLUtil对将数据进行反序列化以方便使用  
				
				txtName.text = o.name;  
				txtAge.text = o.age;  
				txtAddress.text = o.address;  
				//labMsg.alpha = 0;  
			}  

		]]>
	</fx:Script>
	<fx:Declarations>
		<!--请把不可视的组件元素例如服务的,值对象的放在声明里面  Place non-visual elements (e.g., services, value objects) here 
		<s:RemoteObject id="myFlex" destination="mytest" result="myFlex_resultHandler(event)"  />-->
	</fx:Declarations>
	<s:Panel x="77" y="35" width="198" height="231" title="www.accptecg.com flex4">
		<s:TextInput x="47" y="102" id="txtAddress"/>
		<s:TextInput x="47" y="72" id="txtAge"/>
		<s:TextInput x="47" y="37" id="txtName"/>
		<!--<s:Button x="168" y="38" label="发送" id="btnSend" click="btnSend_clickHandler(event)"/>-->
		<s:Button x="47" y="154" label="按钮" click="button1_clickHandler(event)"/>
		<s:Label x="0" y="47" text="Name"/>
		<s:Label x="4" y="81" text="Age" height="13"/>
		<s:Label x="4" y="115" text="Address" height="13"/>
	</s:Panel>
</s:Application>
</SPAN>


转载自
http://javacrazyer.iteye.com/blog/702813
分享到:
评论

相关推荐

    Flex使用JSON格式与Java通信

    标题中的“Flex使用JSON格式与Java通信”是指在开发富互联网应用程序(Rich Internet Application, RIA)时,采用Adobe Flex作为前端技术,通过JSON(JavaScript Object Notation)数据交换格式与后端Java服务器进行...

    flex与java通讯,URL,HTTPService,Socket

    Flex与Java之间的通信是开发跨平台应用程序时的关键技术,它允许客户端(通常为Flex应用程序)与服务器端(通常是Java应用程序)进行数据交换。本篇将深入探讨几种主要的通信方式:URLLoader,HTTPService和Socket。...

    Flex与Java低数据量通信息二:URLLoader及非视图组件的事件发布订阅

    “工具”标签可能意味着文章中提到了一些辅助工具或库,用于简化Flex与Java间的通信,例如使用Apache CXF、 BlazeDS 或 GraniteDS等服务端框架,它们可以提供AMF(Action Message Format)或其他序列化协议,提高...

    flex3 java 文件上传源码

    4. **HTTPService或WebService**:Flex与Java服务器通信通常通过HTTPService或WebService。文件上传通常涉及POST请求,将FileReference对象的数据作为请求体发送。 5. **URLVariables和URLRequest**:配置上传请求...

    flex3+java文件上传

    导入这个项目后,可以直接运行并测试文件上传功能,这对于学习和理解Flex3与Java之间的文件上传交互非常有帮助。在实际应用中,可以根据具体需求进行相应的定制和优化,比如添加多文件上传、断点续传等功能。

    Flex 向 java服务器 上传文件

    总结起来,本示例介绍了如何使用Flex客户端与Java服务器配合实现文件上传功能。在Flex中,通过FileReference类选择和上传文件;在Java端,使用Spring MVC的MultipartFile接口接收并处理上传的文件。这个过程涉及到...

    Flex与Web服务的交互

    Flex与Web服务的交互是构建富互联网应用程序(RIA)中不可或缺的一部分,它允许客户端的Flex应用与服务端进行数据交换,实现动态功能和实时更新。本文将深入探讨Flex与Web服务交互的三种主要方式:基本的HTTP交互...

    Flex+Java Servlet文件上传实例

    在本文中,我们将深入探讨如何实现一个Flex与Java Servlet结合的文件上传实例。这个实例将指导你通过Adobe Flex客户端向服务器端的Java Servlet发送文件,使用Apache Commons FileUpload库处理文件上传过程。 首先...

    flex_java文件上传(一)

    在本文中,我们将探讨"flex_java文件上传(一)"这一主题,主要关注使用Flex作为前端和Java作为后端实现文件上传的过程。 Flex是一种开源的富互联网应用程序(RIA)开发框架,主要用于构建具有交互性和动态效果的...

    Flex拍照并上传到java后台——未调试成功

    6. **与Java后端交互**:Java后端通常会提供一个RESTful API或者基于HTTP的文件上传接口,接收Flex客户端发送的图片数据。这部分涉及HTTP协议、Multipart/form-data编码以及Java的文件处理和网络编程。 7. **错误...

    Flex与.NET互操作

    Flex与.NET互操作是指在Flex客户端与.NET后端之间建立高效的通信机制。这种互操作性对于构建实时应用、数据交换密集型系统至关重要。通过有效的互操作策略,开发者能够充分利用Flex的富互联网应用程序(RIA)能力与...

    flex通过URL获取request参数

    在Flex开发中,我们经常需要从URL中获取请求参数,以便在应用程序中使用这些数据进行交互。本篇文章将深入探讨如何在Flex应用中通过URL获取`request`参数,并结合提供的文件列表来阐述实际操作步骤。 标题中的"flex...

    Flex在myeclipse下如何配置以及用serverlet的交互

    2. **Flex客户端与Servlet通信**: Flex客户端通过HTTP服务与Servlet交互,主要使用`URLRequest`类发送HTTP请求,`URLLoader`类加载响应数据。HTTP方法通常是POST或GET,数据格式可以是XML、JSON或自定义格式。 3. *...

    flex与servlet 结合学习

    通过Flex,开发者可以创建美观、响应式的用户界面,并利用ActionScript与服务器进行数据通信。 Servlet是Java平台上的一个标准,用于扩展Web服务器的功能。它是一个Java类,可以处理HTTP请求并返回HTTP响应。...

    flex上传下载 并解决中文乱码

    Flex作为一个富客户端的开发框架,提供了强大的用户界面创建能力,同时支持与服务器之间的数据传输。在本主题中,我们将深入探讨如何使用Flex进行文件上传和下载,并解决过程中可能出现的中文乱码问题。 一、Flex...

    java spring +flex实现文件上传

    在Java Spring和Flex框架下实现文件上传功能是一个常见的需求,特别是在构建富互联网应用程序(RIA)时。Spring框架提供了强大的后端支持,而Flex则作为前端交互界面,为用户提供丰富的用户体验。下面将详细介绍如何...

    AS3 中使用 URLRequest 和 URLLoader 与服务器交互

    在Adobe Flash Professional CS5或更新版本的环境中,ActionScript 3(AS3)提供了一套强大的网络通信工具,包括`URLRequest`、`URLLoader`等类,这些类替代了早期版本中的`LoadVars`方法,使得与服务器的交互更加...

    Flash_cs3、Flex与asp、php通信总结(包含数据库)

    Flash 与 ASP 的通信方式 在早期的Web开发中,Flash 和 ASP 经常被用来构建动态且交互丰富的网站应用。Flash 能够通过 `URLLoader` 类来发送 HTTP 请求到服务器端的 ASP 文件。这种通信方式主要涉及以下几个步骤:...

    flex .net互操作

    【Flex .NET 互操作】是指在Adobe Flex应用程序与Microsoft .NET框架之间进行通信和数据交换的技术。在Flex中创建的用户界面可以调用.NET编写的Web服务或直接与.NET应用进行交互,实现数据的加载和传输。这种互操作...

Global site tag (gtag.js) - Google Analytics