日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flash与jsp通信类封装

發布時間:2023/12/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flash与jsp通信类封装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天寫了一個通信類,可以實現和JSp進行數據交互。粘貼在一起,有興趣可以嘗試一下

package { //用于與網頁通信的東西 import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.*; import flash.net.URLVariables; import flash.net.URLLoaderDataFormat; import flash.net.*; public class Connection extends EventDispatcher { public function Connection() { } public function sendMessage(para:URLVariables,Myurl:String,type:String="post",format:String="VARIABLES"):void {//設置發送數據的變量 //設置發送數據的方式 var request:URLRequest=new URLRequest(); request.data=para; request.url=Myurl; switch (type) { case "post" : request.method=URLRequestMethod.POST;//發送的方式 break; case "get" : request.method=URLRequestMethod.GET;//發送的方式 break; } //發送數據 var loader:URLLoader=new URLLoader(); switch (format) { case "VARIABLES" : loader.dataFormat=URLLoaderDataFormat.VARIABLES;//發送數據的格式 break; case "BIN" : loader.dataFormat=URLLoaderDataFormat.BINARY;//發送數據的格式 break; case "TEXT" : loader.dataFormat=URLLoaderDataFormat.TEXT;//發送數據的格式 break; } loader.addEventListener(Event.COMPLETE,completeHandler); loader.addEventListener(IOErrorEvent.IO_ERROR ,IoHandler); try { loader.load(request); } catch (e:Error) { trace("失敗"); } } private function completeHandler(e:Event):void { //處理返回的結果,如果插入數據庫成功那么就可以 var evt:ConnectionEvent=new ConnectionEvent(ConnectionEvent.COMPLETE); evt.data=URLLoader(e.target); this.dispatchEvent(evt); } private function IoHandler(e:Event):void { this.dispatchEvent(new ConnectionEvent(ConnectionEvent.WRONG)); } } }

里面一個事件類。

package { import flash.events.Event; import flash.net.*; public class ConnectionEvent extends Event { public static const COMPLETE:String="complete"; public var data:URLLoader; public static const WRONG:String="wrong"; public function ConnectionEvent(type:String,bubbles:Boolean=false,cancelable:Boolean=false) { super(type,false,false); } override public function clone():Event { return new ConnectionEvent(LoadEvent.LOADXML); } } }

用法:下面是一個簡單的留言板功能。可以發送信息給jsp文件。通過jsp文件和mysql進行數據插入。

package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.text.*; import flash.utils.ByteArray; public class Liuyan extends MovieClip { private var para:URLVariables; private var conn:Connection; public function Liuyan() { SendBtn.addEventListener(MouseEvent.MOUSE_DOWN,onDown); CancelBtn.addEventListener(MouseEvent.MOUSE_DOWN,onCancel); } private function onCancel(event:MouseEvent):void { Name.text=""; Sex.text="" ; Mail.text="" ; Telephone.text=""; Msg.text=""; } private function onDown(event:MouseEvent):void { Send(); } private function Send():void { if (Name.text!="" && Sex.text!="" && Mail.text!="" && Telephone.text!="" && Msg.text!="") { var para:URLVariables=new URLVariables(); para.name=Name.text; para.sex=Sex.text; para.mail=Mail.text; para.telephone=Telephone.text; para.msg=Msg.text; conn=new Connection(); conn.addEventListener(ConnectionEvent.COMPLETE,completeHander); conn.addEventListener(ConnectionEvent.WRONG,wrongHandler); conn.sendMessage(para,ConnectionUrl.Liuyanurl); } else { var worngMsg:TextField=new TextField(); worngMsg.text="對不起,信息錯誤"; worngMsg.x=400; worngMsg.y=190; worngMsg.textColor=0xffffff; addChild(worngMsg); } } private function completeHander(event:ConnectionEvent):void { var para:URLLoader=event.data;//返回的信息處理 trace(para.data); trace(para.data.success); } private function wrongHandler(event:ConnectionEvent):void { throw new Error("cuowu"); } } }

<%@ page language="java" pageEncoding="UTF-8" import="java.sql.*"%> <%@ page contentType="text/html; charset=UTF-8"%> <jsp:useBean id="bean" class="com.ConnectServer"></jsp:useBean> <% Connection conn=bean.getConnection(); String name=request.getParameter("name"); String sex=request.getParameter("sex"); String mail=request.getParameter("mail"); String telephone=request.getParameter("telephone"); String msg=request.getParameter("msg"); System.out.println(name); String sql="insert into liuyan2(name,sex,mail,telephone,msg) values('"+name+"','"+sex+"','"+mail+"','"+telephone+"','"+msg+"')"; int cout= bean.executeUpdate(sql); if(cout>0) { out.clear(); out.print("success="+"ok"); } else { out.print("success="+"fail"); } %>

這里要注意一個地方:out.clear();
??? out.print("success="+"ok");

我們希望通過返回jsp輸出內容讓flash player 獲取到,但是如果沒有out.clear()這一行我們會經常出現變量為undefine

這個讓我困惑了很久,在網上找到一個關于flash 獲取jsp返回變量出現undefine的情況。我按照它的做法,可以解決到我的問題。但是至于為什么,這真的是很迷惑。

下面是一個java 的javabean 封裝,我使用的開發平臺是myeclise。數據庫為mysql 。通過下面的修改,可以進行減少很多開發時間。

package com; import java.sql.*; public class ConnectServer { private Connection con; private ResultSet rs; private static String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GB2312"; private static String usernamer="root"; private static String password="123"; private static String diver="com.mysql.jdbc.Driver";//加載mysql的驅動 public static Connection getConnection() throws SQLException{ try { Class.forName(diver); } catch(ClassNotFoundException e) { e.printStackTrace(); return null; } return DriverManager.getConnection(url,usernamer,password); } public ResultSet executeQuery(String sql){ try { con=ConnectServer.getConnection(); Statement statement=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=statement.executeQuery(sql); } catch(SQLException e) { e.printStackTrace(); } return rs; } public int executeUpdate(String sql){ int count=0; Statement statement=null; try { con=ConnectServer.getConnection(); statement=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); count=statement.executeUpdate(sql); } catch(SQLException e) { e.printStackTrace(); } finally { try { if(statement!=null) statement.close(); if(con!=null) con.close(); } catch(SQLException ex) { ex.printStackTrace(); } } return count; } public void freeRset(ResultSet rset){ try { if(rs!=null) { rs.close(); con.close(); } } catch(Exception e) { e.printStackTrace(); } } }

總結

以上是生活随笔為你收集整理的Flash与jsp通信类封装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。