您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Flex與Java Servlet交互的示例分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
為了搞清楚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) ; } } }
其實說到底,這個例子沒有什么神秘的,只要記住,XML是Flex與后臺進行數據交換的媒介,無論后臺數據怎么千變萬化,出口就有這一個。如果試驗,可以先從簡單開始,不涉及查詢數據庫,直接在servlet寫出XML。
如果大家還有什么疑問,歡迎留言,我也是初學者,讓我們共同進步。。。
程序運行方法:
STEP1: 在SQLServer2000里建一個數據庫flex,然后在查詢分析器導入附件所帶的SQL語句.sql,生成所需表格
STEP2: 把FlexDataService安裝目錄下的flex.war解壓到(比如說D:\a),然后把D:\a\web-inf下的flex整個目錄拷貝到 WEB程序的WEB-INF下,把D:\a\web-inf\lib目錄下的jar包拷貝到對應WEB程序下的lib目錄下。
STEP4: 拷貝工程文件到你所建的MyEclipse工程
因為Flex與Java進行通信涉及到的文件會非常多,如果你以前會部署,那再好不過。一般情況下,根據上述步驟能部署成功。
以上就是Flex與Java Servlet交互的示例分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。