`
ddh9504
  • 浏览: 111911 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java amf3格式数据的接收与响应

    博客分类:
  • flex
阅读更多

package org.jivesoftware.openfire.plugin.mongodb.file;

 


import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import flex.messaging.io.SerializationContext;
import flex.messaging.io.amf.ASObject;
import flex.messaging.io.amf.Amf3Input;
import flex.messaging.io.amf.Amf3Output;
/**
 * AMF3 handle
 *
 * @author dhdu@qq.com
 *
 */
public class Amf3 {
 private final static Amf3 instance = new Amf3();
 private static SerializationContext serializationContext;

 //
 private Amf3() {
 }

 //
 public static Amf3 getInstance() throws Exception {
  return instance;
 }

 static {
  serializationContext = new SerializationContext();
 }

 public ASObject getASObject(HttpServletRequest request) {
  ASObject aso=null;
  try {
   ServletInputStream in=request.getInputStream();
   Amf3Input aip = new Amf3Input(serializationContext);
   if (in != null) {
    aip.setInputStream(in);
    aso = (ASObject) aip.readObject(); 
    
    //in.close();
    aip.close();
   }
   
  } catch (Exception e) {
   e.printStackTrace();   
  }
  return aso;
 }

 public void writeASObject(HttpServletResponse response,ASObject a){
  Amf3Output amfOut=null;
  try {
   response.setContentType("application/x-gzip-compressed");
   ServletOutputStream os=response.getOutputStream();
   amfOut = new Amf3Output(serializationContext);  
   //ByteArrayOutputStream outStream = new ByteArrayOutputStream();
   //DataOutputStream dataOutStream = new DataOutputStream(outStream);
   amfOut.setOutputStream(os);
   amfOut.writeObject(a);
   
   //byte[] bytes=outStream.toByteArray();
   //os.write(bytes);
   
   os.flush();
   //os.close();
   //outStream.flush();
   //outStream.close();   
   //dataOutStream.flush();
   //dataOutStream.close();   
   amfOut.flush();
   amfOut.close();
   
  }catch(Exception e)
  {
   e.printStackTrace(); 
  }
  
 }
}

分享到:
评论

相关推荐

    java socket amf3 flash game framework

    AMF3(Action Message Format version 3)是Adobe开发的一种二进制数据交换格式,用于在Flash Player和服务器之间高效地传输数据。相比AMF0,AMF3在序列化和反序列化过程中更加节省带宽,提高了数据传输速度,这对于...

    socket+AMF3

    AMF3(Action Message Format version 3)是Adobe公司推出的一种高效的数据序列化格式,主要用于Flash与服务器之间的数据交换。AMF3能够快速地将复杂的数据结构如对象、数组、日期等编码为二进制流,然后在网络中...

    flex使用 RemoteObject 与java进行json格式的数据交互

    本篇文章将深入探讨如何使用`RemoteObject`与Java进行JSON格式的数据交换,以便更好地理解和应用这一技术。 首先,`RemoteObject`是Flex框架中的一个关键组件,它允许Flex应用通过AMF(Action Message Format)协议...

    Android调用AMF

    在Android平台上,虽然AMF不是原生支持的数据格式,但通过特定库和编程技巧,我们可以实现对AMF数据的解析和创建,从而在Android应用中与使用AMF的服务器进行通信。 1. **AMF基础知识** - AMF有AMF0和AMF3两个版本...

    java调用openamf实例,把取回的结果转换成list或bean.

    AMF是一种二进制数据格式,用于在Flex和服务器之间高效地传输数据。它比JSON或XML更快,因为它的解析速度更快,且数据占用的空间更小。OpenAMF实现了AMF3规范,这是AMF的最新版本。 1. **安装和配置OpenAMF** 在...

    Flex与Java使用Json数据交互JAR包

    本资源包“Flex与Java使用Json数据交互JAR包”提供了必要的库,使得Flex客户端可以有效地与Java服务器进行JSON(JavaScript Object Notation)数据格式的交换,这是一种轻量级的数据交换格式,易于人阅读和编写,...

    Flex与Java数据交互

    AMF不仅提高了数据传输速度,还简化了数据格式转换的过程。 为了实现Flex与Java的数据交互,通常需要以下步骤: 1. **设置服务器环境**:首先,你需要在服务器端安装并配置一个支持AMF的服务器,如BlazeDS或LCDS...

    flash获取java后台数据

    在Java中,我们可以使用如Spring的HttpMessageConverter或自定义的处理器来解析接收到的AMF数据,并进行相应的业务逻辑处理。这里,Java主要的任务是连接到MySQL数据库并执行查询。 连接MySQL数据库,Java通常会...

    Flex与java通讯

    AMF是一种二进制数据格式,用于在Flex客户端和Java服务器之间进行高效的数据交换。它将对象序列化为紧凑的字节流,减少了网络传输的开销,提高了性能。AMF支持两种版本,AMF0和AMF3,其中AMF3提供了更好的压缩和...

    flex与java通信的完整demo

    AMF是Flex与Java之间进行数据交换的常用格式,它是一种高效的二进制序列化协议。使用AMF,Flex客户端可以快速地发送和接收数据,大大提高了通信效率。 4. ** BlazeDS和LCDS** BlazeDS和LiveCycle Data Services ...

    Flex与Java通过实体传递数据

    4. **接收响应**:在Java服务器处理完请求后,会返回一个响应,Flex客户端需要监听`ResultEvent`事件来处理响应数据。 ```actionscript private function onLoginResult(event:ResultEvent):void { var response:...

    Flex与java通信源码

    3. AMF(Action Message Format):Flex与Java通信常用的一种协议是AMF,它是一种二进制格式,用于提高数据传输效率。AMF能够将ActionScript对象编码为字节流,然后在Flex客户端和Java服务器之间高效地传输。 4. ...

    flex与java远程传值demo

    BlazeDS是Adobe提供的一个免费服务器端组件,支持AMF(Action Message Format)协议,这是一种高效的数据交换格式,能快速地在Flex客户端和Java服务器之间传输复杂的数据结构。 2. Java Web项目模块: 这个模块是...

    flex与java通信

    Flex与Java通信是Web开发中的一个重要领域,它允许前端用户界面(UI)通过Flex与后端Java服务进行数据交换和功能调用。Flex是一种基于ActionScript的富互联网应用程序(RIA)开发框架,而Java作为服务器端语言,提供...

    flex4与java结合实例

    1. AMF通信:AMF是一种高效的二进制序列化格式,用于Flex与Java之间的数据传输。Adobe的BlazeDS或LCDS(LiveCycle Data Services)提供了AMF通道,使得Flex4应用能够轻松调用Java服务。在Flex中,使用RemoteObject或...

    flex与java的整合

    整合Flex和Java的关键在于使用AMF(Action Message Format),这是一种二进制数据格式,允许Flex客户端高效地与Java服务器进行通信。AMF可以将ActionScript对象序列化为网络传输的数据,Java服务器可以通过解码这些...

    FLASH与JAVA的交互

    综上所述,Flash与Java的交互涉及到多层面的技术和策略,包括客户端和服务器端的通信协议选择、安全配置、数据交换格式以及实际应用的场景。虽然现代Web开发中Flash的应用已不如从前,但理解这种交互对于历史技术的...

    Flex与Java低数据量通信息一:HTTPService

    通过查看源码,开发者可以学习到如何配置和使用HTTPService组件,包括设置URL、方法(GET或POST)、请求参数和数据格式(如XML或AMF)。 **Java后端**通常会实现一个Web服务接口,可能是Servlet、Spring MVC或者...

Global site tag (gtag.js) - Google Analytics