flash要使用jsp页面request对象中的数组怎么办??

解决方案 »

  1.   

    比较标准的通信方法:jsp端:
    <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%
    String var1=request.getParameter("var1");
    String var2=request.getParameter("var2");
    System.out.println(var1);
    System.out.println(var2);
    out.clear();
    out.println("a="+var1+"&b=2&c=3&name=中国");
    %>
    我们用flash传递两个变量给jsp服务端,分别为var1,var2,值分别为hello 和 hi ; 程序代码import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLVariables;
    import flash.events.Event;
    import flash.events.HTTPStatusEvent;
    import flash.events.IOErrorEvent;
    import flash.events.ProgressEvent;
    import flash.events.SecurityErrorEvent;var myRequest:URLRequest = new URLRequest("http://localhost:8088/jspforflash.jsp");
    var myLoader:URLLoader = new URLLoader();
    var myVariables:URLVariables = new URLVariables();
    myLoader.addEventListener(Event.COMPLETE, loadSuccessful);
    myLoader.addEventListener(IOErrorEvent.IO_ERROR, loadError);myVariables.var1 = "hello";
    myVariables.var2 = "hi";myRequest.method = URLRequestMethod.POST;
    myRequest.data = myVariables;
    myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
    myLoader.load(myRequest);function loadSuccessful(evt:Event):void
    {
    trace("参数已发送");
    trace(myLoader.data);
    trace(myLoader.data.a);
    trace(myLoader.data.b);
    trace(myLoader.data.c);
    atxt.text=myLoader.data.a;
    btxt.text=myLoader.data.b;
    ctxt.text=myLoader.data.c;
    nametxt.text=myLoader.data.name;
    stop();
    }function loadError(evt:IOErrorEvent):void
    {trace("发送失败.");
    }
    这种方法能自动完成请求加载监听,当请求成功,数据加载完毕时,系统自动执行指定的方法 loadSuccessful,而系统返回的变量则以myLoader.data.变量名的形式进行访问.注意: 服务端的数据是以变量名/值组的形式返回的,如果要flash端能正确解析返回的数据,必须预先定义类型:
    myLoader.dataFormat = URLLoaderDataFormat.VARIABLESout.clear();也是很重要的,直接输出很容易导致获取的第一个变量值为undefined;
      

  2.   

    我的数据是var1和var2是数组类型的