自从呼叫中心项目开始,不知不觉,学习Flex已经十天有余了!现在已经基本进入状态,今天本人在此班门弄斧,发一个利用Flex与后台的Servlet进行通讯的例子,希望对一些刚学习Flex的新手有所帮助。为了搞清楚Flex是如何与后台进行通讯,本人在刚开始学Flex前五天可以说是碌碌无为,今天发这个帖子的目的就是为了让后面的兄弟少走弯路。
交互原理:三个字母---------XML,客户端接受从服务器端发送过来的XML数据。
本例工作流程:客户端很简单就一个DataGrid组件,用来显示服务器端传送过来的数据。对应的mxml文件如下:
xml 代码
<?xml version="1.0" encoding="UTF-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Model source="http://localhost:8080/flex/first" id="model">
</mx:Model>
<mx:Panel title="用户信息" width="776" height="281" fontSize="18">
<mx:DataGrid dataProvider="{model.user}" width="748" height="231">
<mx:columns>
<mx:DataGridColumn dataField="name" headerText="用户">
</mx:DataGridColumn>
<mx:DataGridColumn dataField="pwd" headerText="密码">
</mx:DataGridColumn>
<mx:DataGridColumn dataField="school" headerText="现在学校">
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Panel>
</mx:Application>
在此需要注意<mx:Model>标签,source属性指定的是一个servlet映射,这个servlet的作用是利用response向客户端写入XML。
读取数据库数据,生成XML文件由两个类组成,一个为FirstServlet.java,一个为XML.java,其中前者就是一个普通的servlet,用来写XML文件,后者专门用来生成XML文件,由Java XML API操作完成。废话少说,先看看代码
FirstServlet代码摘要:
java 代码
try {
xml.init() ;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver") ;
//*********建立数据库 名为flex*************//
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=flex" ;
//**********换上你自己的用户名和密码信息************//
con = DriverManager.getConnection(url, "sa", "135780") ;
stmt = con.createStatement() ;
//**********里面建表名为USERS 具体SQL语句见附件下载**********//
result = stmt.executeQuery("select * from USERS") ;
} catch(Exception e) {
e.printStackTrace() ;
}
//重要:设置响应格式为XML格式
response.setContentType("text/xml") ;
response.setCharacterEncoding("UTF-8") ;
PrintWriter out = response.getWriter() ;
以上为servlet连接数据库并设置响应格式的代码,下面是写XML文件的关键代码:
java 代码
while(result.next()) {
String[] strs = new String[3] ;
strs[0] = result.getString("name") ;
strs[1] = result.getString("pwd") ;
strs[2] = result.getString("school") ;
//*****创建XMLdocument*******//
xml.create(strs) ;
}
result.close() ;
stmt.close() ;
con.close() ;
//*******写XML文件到客户端********//
xml.output(out) ;
其中末行的xml是XML.java的一个实例,XML的一些重要方法如下:
java 代码
/**
* 把XML文档写入到输出流
*
* @param out
* ----指定的输出流
* @throws Exception
*
* 编写者:王景辉 湖南农业大学&湖南爱瑞洁投资管理公司
*/
public void output(Writer writer) throws Exception{
Transformer trans = TransformerFactory.newInstance().newTransformer() ;
trans.setOutputProperty(OutputKeys.ENCODING, "UTF-8") ;
Source source = new DOMSource(document) ;
Result result = new StreamResult(writer) ;
trans.transform(source, result) ;
writer.flush() ;
writer.close() ;
}
java 代码
/**
* 创建XML文档
*
* @param strs
* -------传送过来的姓名和密码和学校参数
*
* 编写者:王景辉 湖南农业大学&湖南爱瑞洁投资管理公司
*/
public void create(String[] strs) {
//******第一级子节点******//
Element first = document.createElement("user") ;
root.appendChild(first) ;
for(int i=0; i<strs.length; i++) {
if(i==0) {
//*******第二级子节点******//
Element name = document.createElement("name") ;
name.appendChild(document.createTextNode(strs[i])) ;
first.appendChild(name) ;
} if(i==1) {
Element pwd = document.createElement("pwd") ;
pwd.appendChild(document.createTextNode(strs[i])) ;
first.appendChild(pwd) ;
} if(i==2) {
Element school = document.createElement("school") ;
school.appendChild(document.createTextNode(strs[i])) ;
first.appendChild(school) ;
}
}
}
分享到:
相关推荐
flex-messaging类包是flex结合JAVA开发通信使用
flex-messaging-core-4.7.3.jar 最新版,下载了好长时间才下载下来,亲测可用!
java-flex-mysql,实现增删改查,用户富客户端Flex,后台java封装list形式,Flex前台ArrayCollection来接受!
noteDao flex-java 测试版本 自己做得
Flex-Java通信word文档………………
java-flex-webroot配置文件和JAVA包
flex-messaging-common.jar
flex-messaging-core.jar
flex-hessian-java实例~~~~~~~~~~~~~
flex框架flex框架 JAVA-FLEXflex框架 JAVA-FLEX
flex-messaging-common-4.5.1.21328.jar包,最新版的应该是4.6.b.23201,但是好像没法下载,我也在maven仓库中没有找到,这个版本也可以,亲测可用!
Flex Spring JAVA BLAZEDS整合,永固整合将flex与Spring整合
关于在Java中嵌入flex项目的配置及研究
web项目添加flex属性.doc java整合flex.doc testflex实例:java和flex相互通信
flex教程一个,简单实现了简单的FLEX java 文件上传, 简单易学
实现了Flex与Java的互操作,包含Flex控件的使用方法,Flex与Java的通讯。
Flex + LCDS +JAVA入门教程,描述了flex通过LCDS与java进行
Flex学习笔记_09 数据绑定_概念、使用 - Java&Flex - JavaEye技术网站 希望对爱好有帮助!!
1 22 跟我StepByStep学FLEX教程------Flex和Java通信之开发方式和工具准备 1 23 跟我StepByStep学FLEX教程------Flex+LCDS(BlazeDS)+Java开发 1 24 跟我StepByStep学FLEX教程------Demo11之HelloJavaFlex 1 25 跟...
Flex连接Java上传资源实例 Flex连接Java上传资源实例 Flex连接Java上传资源实例 Flex连接Java上传资源实例 Flex连接Java上传资源实例 Flex连接Java上传资源实例 Flex连接Java上传资源实例 Flex连接Java上传资源实例 ...