zoukankan      html  css  js  c++  java
  • 用HttpService实现简单as3通讯

    as3 code:  

    HttpService.as

    package
    {
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.HTTPStatusEvent;
        import flash.events.IOErrorEvent;
        import flash.events.MouseEvent;
        import flash.events.ProgressEvent;
        import flash.events.SecurityErrorEvent;
        import flash.net.URLLoader;
        import flash.net.URLLoaderDataFormat;
        import flash.net.URLRequest;
        import flash.net.URLRequestMethod;
        import flash.net.URLVariables;
        import flash.net.navigateToURL;
        import flash.text.TextField;
        import flash.text.TextFieldType;
        
        public class HttpService extends Sprite
        {    
            public 
    function HttpService()
            {
                init();
                reuqestServer();
            }
            
            //服务端的http地址字符串
            private 
    var urlStr:String = "http://127.0.0.1:8080/webSange/TestHttpService.jsp";
            private 
    var _y:Number = 20;
            
            private 
    function init():void
            {
                
    //画一个圆 颜色为黑色
                var sprite:Sprite = new Sprite();
                sprite.graphics.beginFill(
    0X000000);
                sprite.graphics.drawCircle(
    300,100,20);
                sprite.graphics.endFill();
                sprite.addEventListener(MouseEvent.CLICK, clickHandler);
                sprite.buttonMode 
    = true;
                
    this.addChild(sprite);
            }
            
            
    //点击圆点将   go to jsp  发送到TestHttpService.jsp,然后显示出来
            private function clickHandler(e:Event):void
            {
                
    var name:String = "go to jsp";
                
    var url:String = urlStr + "?name="+ name;
                navigateToURL(
    new URLRequest(url));
            }
            
            
    //请求服务端
            private function reuqestServer():void
            {
                
    //创建URLLoader对象
                var urlLoader:URLLoader = new URLLoader();                
                
    //设置接收数据方式(文本、原始二进制数据、URL 编码变量);
                urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
                
    //设置传递参数
                var urlVars:URLVariables = new URLVariables();
                urlVars.name 
    = "go 去服务端";
                
    //建立Request访问对象
                var urlRequest:URLRequest = new URLRequest(urlStr);
                
    //设置参数
                urlRequest.data = urlVars;
                
    //设置访问模式(POST,GET)
                urlRequest.method = URLRequestMethod.POST;
                
                
    try
                {
                    urlLoader.load(urlRequest);
                }
                
    catch(error:Error)
                {
                    trace(error)
                }
                
                
    //加载完成
                urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);
                
    //开始访问
                urlLoader.addEventListener(Event.OPEN, urlLoaderOpenHandler);
                
    //加载进度
                urlLoader.addEventListener(ProgressEvent.PROGRESS, urlLoaderProgressHandler);
                
    //跨域访问安全策略
                urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, urlLoaderSecurityErrorHandler);
                
    //Http状态事件
                urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, urlLoaderHttpStatusHandler);    
                
    //访问出错事件
                urlLoader.addEventListener(IOErrorEvent.IO_ERROR, urlLoaderIoErrorHandler);        
            }
            
            
            private 
    function urlLoaderCompleteHandler(e:Event):void
            {            
                
    var txt:TextField = new TextField();
                txt.wordWrap 
    = true;
                txt.width 
    = 300;
                txt.type 
    = TextFieldType.DYNAMIC;
                txt.text 
    = "数据请求完成,返回数据为:" + e.target.data.success;
                txt.y 
    = 40;
                txt.multiline 
    = true;
                
    this.addChild(txt);
            }
            
            private 
    function urlLoaderOpenHandler(e:Event):void
            {
                
    var txt:TextField = new TextField();            
                txt.text 
    = "连接已经打开";
                txt.multiline 
    = true;
                txt.y 
    = 20;
                
    this.addChild(txt);
            }
            
            private 
    function urlLoaderProgressHandler(e:ProgressEvent):void
            {
                
    var num:uint = (e.bytesLoaded / e.bytesTotal) * 100;
                
    var txt:TextField = new TextField();
                txt.text 
    = num + "%";
                txt.y 
    = 0;
                
    this.addChild(txt);            
            }
            
            private 
    function urlLoaderSecurityErrorHandler(e:SecurityErrorEvent):void
            {
                trace(e);
            }
            
            private 
    function urlLoaderHttpStatusHandler(e:HTTPStatusEvent):void
            {
                trace(e);
            }
            
            private 
    function urlLoaderIoErrorHandler(e:IOErrorEvent):void
            {
                trace(e);
            }
        }
    }

    java code:

    TestHttpService.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
    String path 
    = request.getContextPath();
    String basePath 
    = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>

    <%
        request.setCharacterEncoding(
    "utf-8");
        String username
    =request.getParameter("name");
        username 
    += " 去客户端";
        out.clear();
         out.print(
    "success="+ username );
         System.out.print(username);
    %>
  • 相关阅读:
    POJ 2236 Wireless Network(并查集)
    POJ 2010 Moo University
    POJ 3614 Sunscreen(贪心,区间单点匹配)
    POJ 2184 Cow Exhibition(背包)
    POJ 1631 Bridging signals(LIS的等价表述)
    POJ 3181 Dollar Dayz(递推,两个long long)
    POJ 3046 Ant Counting(递推,和号优化)
    POJ 3280 Cheapest Palindrome(区间dp)
    POJ 3616 Milking Time(dp)
    POJ 2385 Apple Catching(01背包)
  • 原文地址:https://www.cnblogs.com/sange/p/1658729.html
Copyright © 2011-2022 走看看