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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神琪宝贝

团队名称&#xff1a;神琪宝贝团队人员&#xff1a; 姓名&#xff1a;温广琪&#xff08;组长&#xff09;学号&#xff1a;1600802130博客&#xff1a;http://www.cnblogs.com/wenwenwgq/技术&#xff1a;C&#xff0c;Java&#xff0c;python&#xff0c;网站兴趣&#xff1a…

android性能测试工具之dumpsys

补记: MAT(memory analyzer tool )是google 推荐的进行内存使用量分析的工具. 功能全面而强大!!! 首先看一下dumpsys有哪些功能&#xff1a; dumpsys 用来给出手机中所有应用程序的信息&#xff0c;并且也会给出现在手机的状态。 dumpsys [Option] meminfo 显示内存信息 cpuin…

QT —— 应用程序发布

QT应用程序的发布 将QT应用程序打包给其他人使用&#xff0c;需要一些dll动态链接库&#xff1b;在QT的安装目录下&#xff0c;如&#xff1a;D:\QT\4.8.5\bin中寻找&#xff1b;&#xff08;发布的时候选择release版本的可执行程序&#xff09;。 步骤&#xff1a; 1、在桌面新…

Raspbian 中国软件源

花了些时间整理了目前最新的树莓派中国大陆地区的软件源&#xff0c;记下来&#xff0c;希望对大家有帮助。 中国科学技术大学Raspbian http://mirrors.ustc.edu.cn/raspbian/raspbian/ 阿里云Raspbian http://mirrors.aliyun.com/raspbian/raspbian/ 清华大学Raspbian http://…

一经度等于多少千米

一经度等于多少千米&#xff0c;数值是不确定的&#xff0c;不过&#xff0c;该数值的范围为&#xff1a;0km—111km。 经度等于多少千米&#xff0c;是和纬度有密切关系的&#xff0c;经度会随着纬度的变化而变化&#xff0c;其可以根据公式来计算&#xff0c;计算公式为&…

汇顶科技2021秋招笔试

来源于读者投稿&#xff0c;作者Angel。笔试时间&#xff1a;2020.08.24&#xff0c;20&#xff1a;00-21&#xff1a;00提醒&#xff1a;很多大公司秋招在七八月份就要投递简历&#xff0c;九月已经晚了。题型&#xff1a;通用部分单选10道 不定项选择题2道 填空题2道 开放题目…

创业版上市与SAP管理软件系统的关系

最近一直在忙于公司的业务&#xff0c;也有一些偷懒的心理&#xff0c;正在调整自已的心态&#xff0c;所以一段时间没有在自已的BLOG上留下痕迹了。由于客户提及企业目标是创业板上市的话题比较多&#xff0c;因此我一直在关注创业板上市这个内容。由于不是业内的专业人士&…

QT——设置可执行文件图标

QT设置可执行文件图标 软件编译出来的默认的可执行程序的图标是真的丑&#xff0c;建议还是换成漂亮一点的图标。&#xff08;在公司的话&#xff0c;就用公司的logo&#xff0c;需要后缀是ico的&#xff09;。如工程名为&#xff1a;mytest.pro 步骤&#xff1a; 1、创建ico…

安装opencv 、opencv_contrib的方法

安装opencv 、opencv_contrib的方法 opencv4.x版本都可以 opencv 、opencv_contrib内网下载&#xff1a; https://www.raoyunsoft.com/opencv 安装方法&#xff1a; https://copyfuture.com/blogs-details/202211191221591932 官网安装方法&#xff1a; https://docs.opencv.o…

科大讯飞2021笔试题

来源于读者投稿&#xff0c;作者Angel笔试时间&#xff1a;2020.09.12,19&#xff1a;00——21&#xff1a;00岗位&#xff1a;嵌入式软件开发题型&#xff1a;四道编程题&#xff0c;4*1040分题目1、定义一个n*m矩阵&#xff0c;找到两个不在同一行同一列的数字&#xff0c;使…

跨交换机VLAN配置

CCNP实验之&#xff08;跨交换机VLAN&#xff09;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />跨交换机设置原则:存在一台VLAN服务器&#xff0c;可以存在多台vlan客户端&#xff0c;那么需要配置VTP域。交换机的连接需干线&…

QT——label

QT —— label 1、纯文本&#xff1a;使用setText()设置一个QString QLabel *label new QLabel(this);label->setText("label");label->setStyleSheet("color: red");// label->text(); // 获取文本 2、静态图像&#xff1a;使用setPixmap()设置…

在64位Ubuntu上编译32位程序常见错误

问 题1&#xff1a; 找不到头文件 asm/errno.h 解决办法 &#xff1a; 【/usr/lib/gcc$ 】sudo ln -s x86_64-linux-gnu/asm asm 问题2&#xff1a;找不到gcc静态库&#xff0c;错误描述如下 ~/tools/dnn-offline-htk-32/HTKTools$ gcc -o HBuild -m32 -ansi -D_SVID_SOU…

详细记录丨Realtek RTL8188FU WiFi 驱动移植

1 参考资料 1、芯片数据手册&#xff1a;TL8188FCA.pdf2、驱动移植手册&#xff1a;Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf3、【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.3.pdf4、Linux 添加 WiFi 驱动&#xff1a;https://blog.csdn.net/sbddbfm/…

我在Freebsd下安装帝国CMS系统整合Discuz的服务器环境配置

编译MYSQL选项&#xff1a;./configure --prefix/home/mysql --enable-assembler --with-charsetgbk --with-extra-charsetsgbk编译完成安装以后&#xff0c;需要对相应的MYSQL目录设置权限&#xff1a;chown -R root:mysql /home/mysqlchown -R mysql:mysql /home/mysql/varch…

C小项目 —— 学生信息管理系统

C小项目 —— 学生信息管理系统实现功能&#xff1a;1. 录入学生信息 2. 显示所有学生信息 3. 按学号查询学生信息 4. 按姓名查询学生信息&#xff08;支持模糊查询&#xff09; 5. 按年龄查询学生信息 6. 修改学生信息 7. 删除学生信息 8. 保存学生信息到文件 9. 从文件载入学…

拆解1968年的美国军用电脑,真的怀疑是“穿越”啊!

来源&#xff1a;数码之家文 | 禅哥这台机器在本人的eBay收藏夹里呆了很久&#xff0c;某日无意间扫了一眼收藏夹&#xff0c;突然发现卖家大降价&#xff0c;只要15刀&#xff0c;还有best offer选项。15刀你买不了吃亏&#xff0c;15刀你买不了上当。事不宜迟果断下手。根据非…

ZJOI2018 Round2 游记

day0 高铁上颓了一部电影,然后闭上眼睛就到了 醒来之后发现被绑了艹,袖子被打了个结,搞了 \(20\) 分钟才解开,真想把绑我的人吊起来 \(xxx\) 公交车上碰到一位长者,被教育了一顿 长者:"你们大学生呐,戴着一副眼镜,肯定不是读书读出来的,玩游戏玩多了吧?" 我:".…

暂无标题

最近感觉好无聊&#xff0c;天天堕落&#xff0c;没事可干。上网也感觉越来越无聊了&#xff0c;除了聊天还是聊天&#xff0c;根本就没有什么事干&#xff0c;时间就这么一点一点的过去。大学有所谓的真感情吗&#xff1f;感觉有又感觉没有&#xff0c;没有的人实在是太多了&a…

使用PWM实现语音播放

本文转自ARM中文社区&#xff0c;作者&#xff1a;Xiaoya链接&#xff1a;https://community.arm.com/cn/b/blog/posts/nucleof429-2-pwm事实上大部分MCU都可以实现语音播放下面是一段音频数据的波形局部放大图&#xff1a;以一定的速度采样&#xff08;ADC&#xff09;这些波形…