【个人笔记】基于AMF-RPC实现Flex与JAVA的交互实例【上】
来源:互联网 发布:简易编程软件 编辑:程序博客网 时间:2024/06/18 08:42
(此为本人学习笔记,原创)
说明:此例为flex通过免费的Java EE 服务器端组件-BlazeDS连接到java,并利用java与MySQL交互返回一个ArrayList类集,并再返回到Flex端进行解析。本例代码中省略了大量注释。
1.MyEclipse中新建一个WEB工程“FlexDao”,新建包com.sxy.demo 和2个类。
(注意:)
1. StudentDao类中一定要有Setter&Getter方法!!!(不管用不用得到)
没有的话,Flex端是绝对无法正常解析的。(很奇怪)
2. StudentDao类不一定要implements Serializable。
package com.sxy.demo;public class StudentDao {private int stu_id;private String stu_name;private String stu_sex;private int stu_age;private String stu_class;private String stu_major;private String stu_department;private String stu_type;public StudentDao(int stu_id, String stu_name, String stu_sex, int stu_age,String stu_class, String stu_major, String stu_department,String stu_type) {super();this.stu_id = stu_id;this.stu_name = stu_name;this.stu_sex = stu_sex;this.stu_age = stu_age;this.stu_class = stu_class;this.stu_major = stu_major;this.stu_department = stu_department;this.stu_type = stu_type;}public int getStu_id() {return stu_id;}public void setStu_id(int stu_id) {this.stu_id = stu_id;}public String getStu_name() {return stu_name;}public void setStu_name(String stu_name) {this.stu_name = stu_name;}public String getStu_sex() {return stu_sex;}public void setStu_sex(String stu_sex) {this.stu_sex = stu_sex;}public int getStu_age() {return stu_age;}public void setStu_age(int stu_age) {this.stu_age = stu_age;}public String getStu_class() {return stu_class;}public void setStu_class(String stu_class) {this.stu_class = stu_class;}public String getStu_major() {return stu_major;}public void setStu_major(String stu_major) {this.stu_major = stu_major;}public String getStu_department() {return stu_department;}public void setStu_department(String stu_department) {this.stu_department = stu_department;}public String getStu_type() {return stu_type;}public void setStu_type(String stu_type) {this.stu_type = stu_type;}}
package com.sxy.demo;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class Student {public static final String DBDRIVER = "com.mysql.jdbc.Driver" ;public static final String DBURL = "jdbc:mysql://localhost:3306/sxy" ;public static final String DBUSER = "root" ;public static final String DBPASS = "123" ;public static Connection getConnection(){ Connection conn=null; try{ Class.forName(DBDRIVER); conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS); }catch(Exception e){ System.err.println(e.getMessage()); } return conn; } public List<StudentDao> getInfo(String key){List<StudentDao> list = new ArrayList<StudentDao>(); PreparedStatement stat = null;Connection conn=getConnection();try{ Statement stmt = conn.createStatement(); stat=conn.prepareStatement("select * from STUDENT where STU_ID LIKE ?"); stat.setString(1, "%"+key+"%"); ResultSet rs=stat.executeQuery();while( rs.next()) { list.add(new StudentDao( Integer.parseInt(rs.getString("STU_ID")),rs.getString("STU_NAME"),rs.getString("STU_SEX"),Integer.parseInt(rs.getString("STU_AGE")),rs.getString("STU_CLASS"),rs.getString("STU_MAJOR"),rs.getString("STU_DEPARTMENT"),rs.getString("STU_TYPE"))); } rs.close(); stmt.close(); conn.close(); }catch(Exception e){ }return list;}}
2.解压缩blazeds.war文件,将解压后的WEB-INF目录覆盖WEB工程FlexDao的WebRoot目录下,并在WebRoot\WEB-INF\flex\remoting-config.xml中定义一个远程服务。
3.将该工程部署到Tomcat服务器目录中,并启动。
4.新建Flex项目-FlexDao
5.编写FlexDao.mxml文件
<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:reflect="flex.lang.reflect.*"><fx:Declarations><mx:RemoteObject id="sxy" destination="Student" result="resultHandler(event)" endpoint="/FlexDao/messagebroker/amf"/></fx:Declarations><fx:Script> <![CDATA[ import mx.collections.ArrayCollection;import mx.controls.Alert;import mx.rpc.events.FaultEvent;import mx.rpc.events.ResultEvent; [Bindable]public var arr:ArrayCollection = new ArrayCollection();private function hello():void { sxy.getInfo(t1.text);}private function resultHandler(event:ResultEvent):void { arr = ArrayCollection(event.result)} ]]> </fx:Script> <s:Panel width="1060" height="422" title="学生信息查询" x="144.55" y="123"><s:VGroup x="22" y="14" width="102" height="73" > <s:TextInput id="t1" width="98" height="35"/><s:Button label="查询" id="Button" click="hello()" width="55" height="26"/></s:VGroup> <mx:DataGrid x="139" y="14" width="900" height="344" dataProvider="{arr}" id="datagrid" showDataTips="true" verticalAlign="middle" ><mx:columns><mx:DataGridColumn headerText="学号" dataField="stu_id" resizable="true"/><mx:DataGridColumn headerText="姓名" dataField="stu_name" resizable="true"/><mx:DataGridColumn headerText="性别" dataField="stu_sex" resizable="true"/><mx:DataGridColumn headerText="年龄" dataField="stu_age" resizable="true"/><mx:DataGridColumn headerText="班级" dataField="stu_class" resizable="true"/><mx:DataGridColumn headerText="专业" dataField="stu_major" resizable="true"/><mx:DataGridColumn headerText="院系" dataField="stu_department" resizable="true"/><mx:DataGridColumn headerText="类型" dataField="stu_type" resizable="true"/></mx:columns></mx:DataGrid></s:Panel></s:Application>
6.编译&运行
- 【个人笔记】基于AMF-RPC实现Flex与JAVA的交互实例【上】
- 【个人笔记】基于AMF-RPC实现Flex与JAVA的交互实例【下】
- 基于Java平台的AMF-RPC实现(BlazeDS)
- 基于AMF协议的Flex性能测试
- 基于AMF协议的Flex应用程序
- Flex与Java Servlet交互实例
- Flex与Java的交互
- Java与Flex学习笔记(9)----用ExternalInterface实现Flex与外部容器交互
- 杜鹏的个人博客 Flex使用Blazeds与Java交互及自定义对象转换详解
- Flex与Java之间的AMF通信-BlazeDS框架的使用
- Flex-前段actionScript类与Java类的对应(RemoteObject通信-amf)
- flex 学习笔记 之 flex与RPC
- Flex's HTTPService与JAVA 数据交互实例
- Flex与Java三种交互方式实例
- Flex与Java的交互通信
- FLex与Java不能交互的解决办法
- Flex 与 java交互的方法
- Flex与java简单的交互
- 数字图像基础知识详解
- jsp输出时间
- IMMComposer的静态场景更新问题
- Sap算法模版
- Tomcat中Parameters: Invalid chunk ignored
- 【个人笔记】基于AMF-RPC实现Flex与JAVA的交互实例【上】
- 使用 VMware Server 在 Oracle Enterprise Linux 上安装 Oracle RAC 10g
- Android电话系统之概述篇
- 提升Web应用程序性能的最佳实践
- request_threaded_irq()
- android学习笔记28--------------ListView详解
- 让Web应用程序飞起来的秘诀
- 使用goto的好处
- android 使用AIDL实现进程间通信