AS 3.0与jsp通信(1)

来源:互联网 发布:知乎 吐槽 编辑:程序博客网 时间:2024/06/05 02:08

为了实现as与jsp通信,我们首先先配置好tomcat (这里不多说),在tomcat的Apache Software Foundation/Tomcat 5.5/webapps

创建一个目录

如:J:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/flash

 

在flash目录下 创建一个index.jsp文件。为jsp写上一些代码用于接收客户端发送来的信息

  1. <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  6. <title>无标题文档</title>
  7. </head>
  8. <body>
  9. <p>欢迎来到这里3</p>
  10. <%
  11. String myname=request.getParameter("name");
  12. String pwd=request.getParameter("pwd");
  13. if(myname!=null)
  14. {
  15. out.print(myname);
  16. out.print(pwd);
  17. }
  18. %>
  19. </body>
  20. </html>

这里我们只是接收客户端发送的两个参数 ,一个是name,一个是pwd 。

 

客户端设计:

为了能够连接服务器,我们可以尝试在flash客户端写一个连接类,用于够连接服务器,并可以发送数据到jsp,jsp页面能够处理数据

  1. package 
  2. {
  3.     import flash.net.URLLoader;
  4.     import flash.net.URLRequest;
  5.     import flash.events.*;
  6.     import flash.net.URLVariables;
  7.     import flash.net.URLLoaderDataFormat;
  8.     import flash.net.*;
  9.     public class Connect 
  10.     {    
  11.         private static  var connect:Connect=null;
  12.         //连接的网址
  13.         public static  var myurl:String="http://localhost:8080/flash/index.jsp";
  14.         
  15.         public static function getconnect():Connect
  16.         {
  17.             if (connect == null)
  18.             {
  19.                 connect=new Connect();
  20.             }
  21.             return connect;
  22.         }
  23.         public function sendMessage(para:URLVariables,myurl:String):void
  24.         {//设置发送数据的变量
  25.             //设置发送数据的方式
  26.             var request:URLRequest=new URLRequest();
  27.             request.url=myurl;
  28.             request.method=URLRequestMethod.POST;//发送的方式 post
  29.             request.data=para;
  30.             //发送数据
  31.             var loader:URLLoader=new URLLoader();
  32.             loader.dataFormat=URLLoaderDataFormat.VARIABLES;//发送数据的格式
  33.             loader.addEventListener(Event.COMPLETE,completeHandler);
  34.             loader.addEventListener(IOErrorEvent.IO_ERROR ,IoHandler);
  35.             try
  36.             {
  37.                 loader.load(request);
  38.             }
  39.             catch (e:Error)
  40.             {
  41.                 trace("失败");
  42.             }
  43.         }
  44.         private function completeHandler(e:Event):void
  45.         {
  46.             trace("ok");
  47.         }
  48.         private function IoHandler(e:Event):void
  49.         {
  50.             trace("失败了");
  51.         }
  52.     }
  53. }

测试:用文档类作一个测试,在场景里面创建一个按钮用于发送数据。

  1. package 
  2. {
  3.     import flash.display.Sprite;
  4.     import flash.events.*;
  5.     import flash.display.SimpleButton;
  6.     import flash.text.TextField;
  7.     import flash.net.*;
  8.     public class main extends Sprite
  9.     {
  10.         private var con:Connect;
  11.         public function main()
  12.         {
  13.             con=Connect.getconnect();
  14.             btn.addEventListener(MouseEvent.CLICK,onclick);
  15.         }
  16.         private function onclick(e:MouseEvent):void
  17.         {
  18.             var para:URLVariables=new URLVariables();
  19.             para.name="22222";
  20.             para.pwd="222222";
  21.             con.sendMessage(para,Connect.myurl);
  22.         }
  23.     }
  24. }

当我们按下按钮的时候就能够发送数据到jsp页面里面,jsp页面接收到数据就会显示name 和pwd的字符串内容:

  1.   para.name="22222";
  2.   para.pwd="222222";
  3. String myname=request.getParameter("name");//接收客户端发送的信息
  4. String pwd=request.getParameter("pwd");//接收客户端发送的信息

有了这个连接类之后,我们可以尝试做一些更多交互,如发送数据到服务器里面,服务器返回一些xml或者其他数据给客户端,从而达到通信的效果。

这里只是一个简单的测试。