当前位置: 首页 > news >正文

AS 3.0与jsp通信(5)

这一次,我们做一简单的注册页面,使用flex 和jsp来通信,根据4的做法,flex使用rpc可以返回jsp输出的xml信息。

做一个注册页面:

包括的项有:姓名,密码,性别,年龄,还有邮件

数据项

其次,我们在flex做一个简单的注册页面效果。

注册页面

注册时候,发送数据的函数如何写?根据上次已经封装好的方法。我们只需要调用其方法就行

private function Regdata():void { var para:URLVariables=new URLVariables(); para.userName=userName0.text; para.userPwd=userPwd0.text; para.sex=sex.text; para.age=age.text para.mail=mail.text; con.sendMessage(para,Connect2.regurl);//发送数据 con.addEventListener(ResultEvent.RESULT,resulthander2);//监听返回结果 con.addEventListener(FaultEvent.FAULT,faulthander2);//监听错误结果 } private function resulthander2(event:ResultEvent):void { trace("第二个监听"); // trace(event.result); var myxml2:XML=XML(event.result); trace(myxml2); } private function faulthander2(event:FaultEvent):void { trace("cuowu"); }

客户端要发送的数据包括姓名,密码,性别,年龄,还有邮件

在服务器里面要进行接收客户端发送来的数据:

String myname=request.getParameter("userName"); String mypwd=request.getParameter("userPwd"); String mysex=request.getParameter("sex"); int myage=Integer.parseInt(request.getParameter("age")); String mymail=request.getParameter("mail");

年龄由于是int类型,所以在接收的时候需要进行转换类型。因为request接收的是字符串,因此需要进行这样的操作

接下来,老话题。连接数据库,并插入数据项:

注意:数据库为:Webgame 而插入的表是admin

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %> <% response.setContentType("text/xml"); String myname=request.getParameter("userName"); String mypwd=request.getParameter("userPwd"); String mysex=request.getParameter("sex"); int myage=Integer.parseInt(request.getParameter("age")); String mymail=request.getParameter("mail"); Connection con = null; try{ Class.forName("com.mysql.jdbc.Driver"); String dbUrl = "jdbc:mysql://localhost:3306/Webgame?useUnicode=true&characterEncoding=GB2312"; String dbUser = "root"; String dbPwd = "123"; con = DriverManager.getConnection(dbUrl,dbUser,dbPwd); String sql="INSERT INTO admin(userName,userPwd,sex,age,mail) values('"+myname+"','"+mypwd+"','"+mysex+"','"+myage+"','"+mymail+"')"; Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); stmt.executeUpdate(sql); out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); out.println("<userinfo><ss>success</ss><ss>success2</ss></userinfo>"); } catch(Exception ex) { //out.print("连接失败!!<br>"+ex.toString()); out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); out.println("<userinfo><ss>"+ex.toString()+"</ss><ss>fail</ss></userinfo>"); } %>

成功就会返回成功的信息,相反失败就出错。

下面是客户端的代码:

<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" width="703" height="543"> <mx:Script> <!--[CDATA[ import mx.effects.IAbstractEffect; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import Config.Connect2; private var con:Connect2; private function init():void { con=Connect2.getconnect();//链接网络 reg.addEventListener(MouseEvent.CLICK,regclick); } private function senddata():void { if(userName.text!="" && userPwd.text!="") { var para:URLVariables=new URLVariables(); para.userName=userName.text; para.userPwd=userPwd.text; con.sendMessage(para,Connect2.myurl);//发送数据 con.addEventListener(ResultEvent.RESULT,resulthander);//监听返回结果 con.addEventListener(FaultEvent.FAULT,faulthander);//监听错误结果 } } private function resulthander(event:ResultEvent):void { trace("d"); var myxml:XML=XML(event.result); trace(myxml);//输出xml格式 trace(myxml.child("ss").children()[0]); } private function faulthander(event:FaultEvent):void { trace("cuowu"); } private function regclick(event:MouseEvent):void { view.selectedChild=regpanel; } private function Back():void { view.selectedChild=loginpanel; } private function Regdata():void { var para:URLVariables=new URLVariables(); para.userName=userName0.text; para.userPwd=userPwd0.text; para.sex=sex.text; para.age=age.text para.mail=mail.text; con.sendMessage(para,Connect2.regurl);//发送数据 con.addEventListener(ResultEvent.RESULT,resulthander2);//监听返回结果 con.addEventListener(FaultEvent.FAULT,faulthander2);//监听错误结果 } private function resulthander2(event:ResultEvent):void { trace("第二个监听"); // trace(event.result); var myxml2:XML=XML(event.result); trace(myxml2); } private function faulthander2(event:FaultEvent):void { trace("cuowu"); } ]]--> </mx:Script> <mx:Panel x="107" y="65" width="381" height="303" layout="absolute"> <mx:ViewStack id="view" width="361" height="263"> <mx:Canvas id="loginpanel"> <mx:TextInput id="userName" x="123.5" y="60" width="196"/> <mx:Label x="78.5" y="62" text="Name"/> <mx:TextInput id="userPwd" x="123.5" y="90" width="196"/> <mx:Label x="59.5" y="92" text="Password"/> <mx:Button click="senddata()" label="Login" labelPlacement="left" x="189.5" y="120"/> <mx:Label id="reg" x="159.5" y="187" text="Click here toRegister" width="151"/> <mx:Button x="253.5" y="120" label="Button" width="57"/> </mx:Canvas> <mx:Canvas id="regpanel"> <mx:TextInput id="sex" x="105" y="125" width="196"/> <mx:Label x="60" y="124" text="Sex"/> <mx:Label x="60" y="162" text="E-mail"/> <mx:TextInput id="mail" x="105" y="160" width="196"/> <mx:TextInput id="userName0" x="105" y="36" width="196"/> <mx:Label x="60" y="38" text="Name"/> <mx:TextInput id="userPwd0" x="105" y="66" width="196"/> <mx:Label x="41" y="68" text="Password"/> <mx:Button x="154" y="213" label="Register" click="Regdata()"/> <mx:Button id="Btnback" x="247" y="213" label="Back" click="Back()"/> <mx:Label x="60" y="98" text="Age"/> <mx:TextInput x="105" y="96" width="196" id="age"/> </mx:Canvas> </mx:ViewStack> </mx:Panel> </mx:Application>

注意:这里的注册并没有使用正规表达式来规范输入,所以对于注册信息的准确性还是要提高

其次,在数据库的封装操作还可以使用javabean进行封装,这样看起来就灵活一点

相关文章:

  • 电脑进入BIOS界面就傻了?新版BIOS中英文对照图解
  • 增强WebClient的同步下载功能
  • redis集群以及测试
  • CSS Hack 汇总快查
  • 针对小程序for循环绑定数据,实现toggle切换效果(交流QQ群:604788754)
  • 50分,再求兩個BCB轉delphi的問題,非常感謝!
  • IEnumerable 和 IEnumerator 接口
  • Ionic 入门与实战之第三章:Ionic 项目结构以及路由配置
  • 使用HBuilder编辑器进行真机调试运行时提示Waiting for debugger!
  • 交换机端口安全
  • SQLite入门与分析(四)---Page Cache之事务处理(2)
  • Windows上为Apache配置HTTPS
  • [数据恢复答疑]IBM 的RAID5E和RAID5EE适合我吗?
  • 【LeeCode】Two Sum
  • Alexnet参数解释
  • python3.6+scrapy+mysql 爬虫实战
  • $translatePartialLoader加载失败及解决方式
  • (三)从jvm层面了解线程的启动和停止
  • [deviceone开发]-do_Webview的基本示例
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【Linux系统编程】快速查找errno错误码信息
  • Javascript编码规范
  • mysql中InnoDB引擎中页的概念
  • React-Native - 收藏集 - 掘金
  • spring security oauth2 password授权模式
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • vuex 学习笔记 01
  • Web Storage相关
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 浮动相关
  • 高性能JavaScript阅读简记(三)
  • 基于HAProxy的高性能缓存服务器nuster
  • 类orAPI - 收藏集 - 掘金
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 通过几道题目学习二叉搜索树
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (2)STM32单片机上位机
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)ObjectiveC 深浅拷贝学习
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 指南:抽象化实现的基类
  • .net专家(高海东的专栏)
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [16/N]论得趣
  • [20180224]expdp query 写法问题.txt
  • [Android]How to use FFmpeg to decode Android f...
  • [dts]Device Tree机制
  • [hdu 1247]Hat’s Words [Trie 图]
  • [hdu 3065] 病毒侵袭持续中 [AC自动机] [病毒特征码匹配]