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();
}
}
}
分享到:
相关推荐
AMF3(Action Message Format version 3)是Adobe开发的一种二进制数据交换格式,用于在Flash Player和服务器之间高效地传输数据。相比AMF0,AMF3在序列化和反序列化过程中更加节省带宽,提高了数据传输速度,这对于...
AMF3(Action Message Format version 3)是Adobe公司推出的一种高效的数据序列化格式,主要用于Flash与服务器之间的数据交换。AMF3能够快速地将复杂的数据结构如对象、数组、日期等编码为二进制流,然后在网络中...
本篇文章将深入探讨如何使用`RemoteObject`与Java进行JSON格式的数据交换,以便更好地理解和应用这一技术。 首先,`RemoteObject`是Flex框架中的一个关键组件,它允许Flex应用通过AMF(Action Message Format)协议...
在Android平台上,虽然AMF不是原生支持的数据格式,但通过特定库和编程技巧,我们可以实现对AMF数据的解析和创建,从而在Android应用中与使用AMF的服务器进行通信。 1. **AMF基础知识** - AMF有AMF0和AMF3两个版本...
AMF是一种二进制数据格式,用于在Flex和服务器之间高效地传输数据。它比JSON或XML更快,因为它的解析速度更快,且数据占用的空间更小。OpenAMF实现了AMF3规范,这是AMF的最新版本。 1. **安装和配置OpenAMF** 在...
本资源包“Flex与Java使用Json数据交互JAR包”提供了必要的库,使得Flex客户端可以有效地与Java服务器进行JSON(JavaScript Object Notation)数据格式的交换,这是一种轻量级的数据交换格式,易于人阅读和编写,...
AMF不仅提高了数据传输速度,还简化了数据格式转换的过程。 为了实现Flex与Java的数据交互,通常需要以下步骤: 1. **设置服务器环境**:首先,你需要在服务器端安装并配置一个支持AMF的服务器,如BlazeDS或LCDS...
在Java中,我们可以使用如Spring的HttpMessageConverter或自定义的处理器来解析接收到的AMF数据,并进行相应的业务逻辑处理。这里,Java主要的任务是连接到MySQL数据库并执行查询。 连接MySQL数据库,Java通常会...
AMF是一种二进制数据格式,用于在Flex客户端和Java服务器之间进行高效的数据交换。它将对象序列化为紧凑的字节流,减少了网络传输的开销,提高了性能。AMF支持两种版本,AMF0和AMF3,其中AMF3提供了更好的压缩和...
AMF是Flex与Java之间进行数据交换的常用格式,它是一种高效的二进制序列化协议。使用AMF,Flex客户端可以快速地发送和接收数据,大大提高了通信效率。 4. ** BlazeDS和LCDS** BlazeDS和LiveCycle Data Services ...
4. **接收响应**:在Java服务器处理完请求后,会返回一个响应,Flex客户端需要监听`ResultEvent`事件来处理响应数据。 ```actionscript private function onLoginResult(event:ResultEvent):void { var response:...
3. AMF(Action Message Format):Flex与Java通信常用的一种协议是AMF,它是一种二进制格式,用于提高数据传输效率。AMF能够将ActionScript对象编码为字节流,然后在Flex客户端和Java服务器之间高效地传输。 4. ...
BlazeDS是Adobe提供的一个免费服务器端组件,支持AMF(Action Message Format)协议,这是一种高效的数据交换格式,能快速地在Flex客户端和Java服务器之间传输复杂的数据结构。 2. Java Web项目模块: 这个模块是...
Flex与Java通信是Web开发中的一个重要领域,它允许前端用户界面(UI)通过Flex与后端Java服务进行数据交换和功能调用。Flex是一种基于ActionScript的富互联网应用程序(RIA)开发框架,而Java作为服务器端语言,提供...
1. AMF通信:AMF是一种高效的二进制序列化格式,用于Flex与Java之间的数据传输。Adobe的BlazeDS或LCDS(LiveCycle Data Services)提供了AMF通道,使得Flex4应用能够轻松调用Java服务。在Flex中,使用RemoteObject或...
整合Flex和Java的关键在于使用AMF(Action Message Format),这是一种二进制数据格式,允许Flex客户端高效地与Java服务器进行通信。AMF可以将ActionScript对象序列化为网络传输的数据,Java服务器可以通过解码这些...
综上所述,Flash与Java的交互涉及到多层面的技术和策略,包括客户端和服务器端的通信协议选择、安全配置、数据交换格式以及实际应用的场景。虽然现代Web开发中Flash的应用已不如从前,但理解这种交互对于历史技术的...
通过查看源码,开发者可以学习到如何配置和使用HTTPService组件,包括设置URL、方法(GET或POST)、请求参数和数据格式(如XML或AMF)。 **Java后端**通常会实现一个Web服务接口,可能是Servlet、Spring MVC或者...