用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();
}
{
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);
}
}
}
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);
%>
<%
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);
%>