自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Flex與Java Servlet交互實(shí)例淺析

開(kāi)發(fā) 后端
Flex與Java Servlet交互實(shí)例淺析是本文的重點(diǎn),那么這也是Flex與Java Servlet交互學(xué)習(xí)的初步介紹,希望對(duì)你學(xué)習(xí)flex與servlet交互有所幫助。

這是一個(gè)用Flex與后臺(tái)的 Servlet進(jìn)行交互的例子,希望對(duì)一些剛學(xué)習(xí)Flex的新手有所幫助。為了搞清楚Flex是如何與后臺(tái)進(jìn)行通訊,本人在剛開(kāi)始學(xué)Flex前五天可以說(shuō)是碌碌無(wú)為,這個(gè)文章的目的就是為了使初學(xué)者少走彎路。

交互原理:三個(gè)字母---------XML,客戶(hù)端接受從服務(wù)器端發(fā)送過(guò)來(lái)的XML數(shù)據(jù)。

本例工作流程:客戶(hù)端很簡(jiǎn)單就一個(gè)DataGrid組件,用來(lái)顯示服務(wù)器端傳送過(guò)來(lái)的數(shù)據(jù)。對(duì)應(yīng)的mxml文件如下:

XML 代碼

  1. ﹤?xml version="1.0" encoding="UTF-8"?﹥       
  2.  ﹤mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"﹥       
  3.      ﹤mx:Model source="http://localhost:8080/flex/first" id="model"﹥       
  4.                 
  5.     ﹤/mx:Model﹥       
  6.     ﹤mx:Panel title="用戶(hù)信息" width="776" height="281" fontSize="18"﹥       
  7.          ﹤mx:DataGrid dataProvider="{model.user}" width="748" height="231"﹥       
  8.             ﹤mx:columns﹥       
  9.                  ﹤mx:DataGridColumn dataField="name" headerText="用戶(hù)"﹥       
  10.                              
  11.                  ﹤/mx:DataGridColumn﹥       
  12.                  ﹤mx:DataGridColumn dataField="pwd" headerText="密碼"﹥       
  13.                              
  14.                  ﹤/mx:DataGridColumn﹥       
  15.                 ﹤mx:DataGridColumn dataField="school" headerText="現(xiàn)在學(xué)校"﹥       
  16.                             
  17.                 ﹤/mx:DataGridColumn﹥       
  18.              ﹤/mx:columns﹥       
  19.          ﹤/mx:DataGrid﹥       
  20.      ﹤/mx:Panel﹥       
  21.  ﹤/mx:Application﹥     

在此需要注意﹤mx:Model﹥標(biāo)簽,source屬性指定的是一個(gè)servlet映射,這個(gè)servlet的作用是利用response向客戶(hù)端寫(xiě)入XML。

讀取數(shù)據(jù)庫(kù)數(shù)據(jù),生成XML文件由兩個(gè)類(lèi)組成,一個(gè)為FirstServlet.java,一個(gè)為XML.java,其中前者就是一個(gè)普通的servlet,用來(lái)寫(xiě)XML文件,后者專(zhuān)門(mén)用來(lái)生成XML文件,由Java XML API操作完成。廢話(huà)少說(shuō),先看看代碼

FirstServlet代碼摘要:

Java 代碼

  1. try {        
  2.             xml.init() ;        
  3.             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver") ;        
  4.           //*********建立數(shù)據(jù)庫(kù) 名為flex*************//        
  5.             String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=flex" ;        
  6.             //**********換上你自己的用戶(hù)名和密碼信息************//        
  7.             con = DriverManager.getConnection(url, "sa", "135780") ;        
  8.             stmt = con.createStatement() ;        
  9.             //**********里面建表名為USERS  具體SQL語(yǔ)句見(jiàn)附件下載**********//        
  10.             result = stmt.executeQuery("select * from USERS") ;        
  11.         } catch(Exception e) {        
  12.             e.printStackTrace() ;        
  13.         }        
  14.         //重要:設(shè)置響應(yīng)格式為XML格式        
  15.         response.setContentType("text/xml") ;        
  16.         response.setCharacterEncoding("UTF-8") ;        
  17.         PrintWriter out = response.getWriter() ;     

以上為servlet連接數(shù)據(jù)庫(kù)并設(shè)置響應(yīng)格式的代碼,下面是寫(xiě)XML文件的關(guān)鍵代碼:

Java 代碼

  1. while(result.next()) {        
  2.                 String[] strs = new String[3] ;        
  3.                strs[0] = result.getString("name") ;        
  4.                 strs[1] = result.getString("pwd") ;        
  5.                strs[2] = result.getString("school") ;        
  6.                 //*****創(chuàng)建XMLdocument*******//        
  7.              xml.create(strs) ;        
  8.            }        
  9.              result.close() ;        
  10.             stmt.close() ;        
  11.             con.close() ;        
  12.             //*******寫(xiě)XML文件到客戶(hù)端********//        
  13.             xml.output(out) ;     

其中末行的xml是XML.java的一個(gè)實(shí)例,XML的一些重要方法如下:

Java 代碼

  1. /**      
  2.     * 把XML文檔寫(xiě)入到輸出流      
  3.     *       
  4.     * @param out      
  5.     *       ----指定的輸出流      
  6.     * @throws Exception      
  7.     *       
  8.     * 編寫(xiě)者:王景輝 湖南農(nóng)業(yè)大學(xué)&湖南愛(ài)瑞潔投資管理公司      
  9. */       
  10.    public void output(Writer writer) throws Exception{        
  11.        Transformer trans = TransformerFactory.newInstance().newTransformer() ;        
  12.       trans.setOutputProperty(OutputKeys.ENCODING, "UTF-8") ;        
  13.       Source source = new DOMSource(document) ;        
  14.        Result result = new StreamResult(writer) ;        
  15.       trans.transform(source, result) ;        
  16.        writer.flush() ;        
  17.       writer.close() ;        
  18.   }     

Java 代碼

  1. /**      
  2. * 創(chuàng)建XML文檔      
  3. *       
  4. * @param   strs       
  5. *       -------傳送過(guò)來(lái)的姓名和密碼和學(xué)校參數(shù)      
  6. *       
  7. * 編寫(xiě)者:王景輝 湖南農(nóng)業(yè)大學(xué)&湖南愛(ài)瑞潔投資管理公司      
  8. */       
  9. public void create(String[] strs) {        
  10.      //*********級(jí)子節(jié)點(diǎn)******//        
  11.        Element first = document.createElement("user") ;        
  12.        root.appendChild(first) ;        
  13.                 
  14.        for(int i=0; i﹤strs.length; i++) {        
  15.          if(i==0) {        
  16.              //*******第二級(jí)子節(jié)點(diǎn)******//        
  17.              Element name = document.createElement("name") ;        
  18.               name.appendChild(document.createTextNode(strs[i])) ;        
  19.                first.appendChild(name) ;        
  20.            } if(i==1) {        
  21.               Element pwd = document.createElement("pwd") ;        
  22.                  pwd.appendChild(document.createTextNode(strs[i])) ;        
  23.                  first.appendChild(pwd) ;        
  24.             } if(i==2) {        
  25.                 Element school = document.createElement("school") ;        
  26.               school.appendChild(document.createTextNode(strs[i])) ;        
  27.                 first.appendChild(school) ;        
  28.              }        
  29.         }        
  30.     }     

其實(shí)說(shuō)到底,這個(gè)例子沒(méi)有什么神秘的,只要記住,XML是Flex與后臺(tái)進(jìn)行數(shù)據(jù)交換的媒介,無(wú)論后臺(tái)數(shù)據(jù)怎么千變?nèi)f化,出口就有這一個(gè)。如果試驗(yàn),可以先從簡(jiǎn)單開(kāi)始,不涉及查詢(xún)數(shù)據(jù)庫(kù),直接在servlet寫(xiě)出XML。

如果大家還有什么疑問(wèn),歡迎留言,我也是初學(xué)者,讓我們共同進(jìn)步。。。

程序運(yùn)行方法:

STEP1:  在SQLServer2000里建一個(gè)數(shù)據(jù)庫(kù)flex,然后在查詢(xún)分析器導(dǎo)入附件所帶的SQL語(yǔ)句.sql,生成所需表格

STEP2:  把FlexDataService安裝目錄下的flex.war解壓到(比如說(shuō)D:\a),然后把D:\a\web-inf下的flex整個(gè)目錄拷貝到 WEB程序的WEB-INF下,把D:\a\web-inf\lib目錄下的jar包拷貝到對(duì)應(yīng)WEB程序下的lib目錄下。

STEP4:  拷貝工程文件到你所建的MyEclipse工程

因?yàn)镕lex與Java進(jìn)行通信涉及到的文件會(huì)非常多,如果你以前會(huì)部署,那再好不過(guò)。一般情況下,根據(jù)上述步驟能部署成功。

Flex與Java Servlet交互實(shí)例淺析就到這里告一段落了,不知道你的感覺(jué)如何?

【編輯推薦】

  1. 什么是Servlet以及常用Servlet API有哪些
  2. JSP+JavaBean+Servlet結(jié)構(gòu)工作原理淺析
  3. JSP Servlet開(kāi)發(fā)最初那點(diǎn)事
  4. Java Servlet API文檔實(shí)用說(shuō)明
  5. Tomcat下JSP、Servlet和Bean的配置
責(zé)任編輯:仲衡 來(lái)源: JavaEye
相關(guān)推薦

2011-08-17 09:27:55

FlexJava

2010-08-10 17:01:48

FlexJavaScript

2010-08-10 10:44:22

Flex開(kāi)發(fā)

2009-07-07 17:51:50

Java Servle

2010-07-30 12:56:02

Flex調(diào)用JavaS

2009-07-09 13:45:06

Servlet基本結(jié)構(gòu)

2011-08-17 09:14:03

FlexJava

2009-07-09 15:05:45

Servlet實(shí)例

2021-07-05 15:22:03

Servlet過(guò)濾器客戶(hù)端

2010-02-23 09:33:39

Hibernate批量Hibernate批量

2010-08-10 09:40:23

Flex與瀏覽器交互

2010-08-02 09:43:00

Flex應(yīng)用

2010-08-06 13:59:00

Flex和Html交互

2009-07-06 09:23:51

Servlet定義

2009-07-08 10:02:41

Servlet 3.0

2009-08-14 10:11:47

C#允許服務(wù)與桌面交互

2009-07-07 09:51:49

Servlet實(shí)例

2010-07-29 11:03:53

Flex代碼格式化

2009-09-16 10:53:50

Flex界面

2009-07-06 17:11:38

Servlet文件上傳
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)