Flex 3通过Servlet连接数据库

95 篇文章 3 订阅
21 篇文章 0 订阅
点击这里使用RSS订阅本Blog: title="RSS 2.0" type="application/rss+xml" href="http://feed.feedsky.com/softwave" rel="alternate"> <script language="javascript"> </script> <script language="javascript" src="http://www.feedsky.com/jsout/publishlist_v2.js?burl=softwave&out_html=true"></script>


本文转自【 onlyzhangqin的CSDN Blog http://blog.csdn.net/onlyzhangqin/archive/2008/06/03/2502512.aspx】

本文简单介绍了Flex如何通过servlet连接数据库(Access)。使用的是<mx:HttpService>给后台传递数据的方法。
  本文开发使用的软件:
     Flex3-eclipse plugin
     Tomcat 6.0
     microsoft access 2003
     Eclipse 3.3
  各个软件的安装和使用这里就不介绍了。
  首先用Access建立一个名字叫做songs的table.包含了name,singer,lrc,addURL四个field.具体的可以参考附件中附带的access文件。关于Access部署参考:Java连接access数据库  .
  其次新建一个mxml文件:Hello.mxml 。具体代码如下:
 
Xml代码 复制代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
  3.      creationComplete="feedRequest.send()" >  
  4.    <mx:HTTPService id="feedRequest"  
  5.        url="http://localhost:8080/flexweb/HelloWorld"  
  6.        useProxy="false" />  
  7.     <mx:Panel x="10" y="10" width="475" height="400" layout="absolute"  
  8.         title="{dgPosts.selectedItem.name}" color="#1C06F6" fontSize="16">  
  9.     <mx:DataGrid x="20" y="20" id="dgPosts" width="400" dataProvider="{feedRequest.lastResult.songs.song}" fontFamily="Times New Roman" fontSize="16">  
  10.        <mx:columns>  
  11.          <mx:DataGridColumn headerText="Name" dataField="name"/>  
  12.          <mx:DataGridColumn headerText="Singer" dataField="singer"/>  
  13.          <mx:DataGridColumn headerText="URL" dataField="addrURL"/>  
  14.        </mx:columns>  
  15.     </mx:DataGrid>  
  16.     <mx:LinkButton x="20" y="225" label="下载音乐" click="navigateToURL(new URLRequest(dgPosts.selectedItem.addrURL));" fontFamily="Times New Roman" fontSize="20" color="#0B3C0B"/>  
  17.     <mx:TextArea x="20" y="175" width="400" text="{dgPosts.selectedItem.lrc}" fontFamily="Times New Roman" fontSize="16"/>  
  18.    </mx:Panel>  
  19. </mx:Application>  
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
  3.      creationComplete="feedRequest.send()" >  
  4.    <mx:HTTPService id="feedRequest"  
  5.        url="http://localhost:8080/flexweb/HelloWorld"  
  6.        useProxy="false" />  
  7.     <mx:Panel x="10" y="10" width="475" height="400" layout="absolute"  
  8.         title="{dgPosts.selectedItem.name}" color="#1C06F6" fontSize="16">  
  9.     <mx:DataGrid x="20" y="20" id="dgPosts" width="400" dataProvider="{feedRequest.lastResult.songs.song}" fontFamily="Times New Roman" fontSize="16">  
  10.        <mx:columns>  
  11.          <mx:DataGridColumn headerText="Name" dataField="name"/>  
  12.          <mx:DataGridColumn headerText="Singer" dataField="singer"/>  
  13.          <mx:DataGridColumn headerText="URL" dataField="addrURL"/>  
  14.        </mx:columns>  
  15.     </mx:DataGrid>  
  16.     <mx:LinkButton x="20" y="225" label="下载音乐" click="navigateToURL(new URLRequest(dgPosts.selectedItem.addrURL));" fontFamily="Times New Roman" fontSize="20" color="#0B3C0B"/>  
  17.     <mx:TextArea x="20" y="175" width="400" text="{dgPosts.selectedItem.lrc}" fontFamily="Times New Roman" fontSize="16"/>  
  18.    </mx:Panel>  
  19. </mx:Application>  
 

保存文件,编译执行。此刻由于没有部署本地服务器来执行http://localhost:8080/flexweb/HelloWorld  

所以会出现错误信息,不要紧,我们开始搭建servlet.

servlet的具体代码如下: HelloWorld.java

Xml代码 复制代码
  1. package test;   
  2. import java.io.*;   
  3. import java.sql.Connection;   
  4. import java.sql.DriverManager;   
  5. import java.sql.ResultSet;   
  6. import java.sql.SQLException;   
  7. import java.sql.Statement;   
  8.   
  9. import javax.servlet.*;   
  10. import javax.servlet.http.*;   
  11.   
  12. public class HelloWorld extends HttpServlet {   
  13.     public static String dbDriver ="sun.jdbc.odbc.JdbcOdbcDriver";   
  14.     public String connStr ="jdbc:odbc:songs";   
  15.     public ResultSet rs =null;   
  16.     public Connection con=null;   
  17.     public Statement st=null;   
  18.     public void doGet(HttpServletRequest request, HttpServletResponse response)   
  19.             throws ServletException, IOException{   
  20.   
  21.         response.setContentType("text/xml;charset=utf-8");   
  22.         response.setHeader("Cache-Control", "no-cache");   
  23.         String content = "";   
  24.         String name="";   
  25.         String singer="";   
  26.         String lrc="";   
  27.         String addrURL="";   
  28.         try{   
  29.         Connection condb = getConnection();   
  30.         st = condb.createStatement();   
  31.         rs=st.executeQuery("select * from songs");   
  32.         while(rs.next()){   
  33.             name = rs.getString("name");   
  34.             singer = rs.getString("singer");   
  35.             lrc = rs.getString("lrc");   
  36.             addrURL = rs.getString("url");   
  37.             content+="<song><name>"+name+"</name><singer>"+singer+"</singer><lrc>"+   
  38.              lrc+"</lrc><addrURL>"+addrURL+"</addrURL></song>";   
  39.         }   
  40.         }catch(ClassNotFoundException e){   
  41.             e.printStackTrace();   
  42.         }catch( SQLException e1){   
  43.             e1.printStackTrace();   
  44.         }   
  45.         content="<?xml version=/"1.0/" encoding=/"utf-8/"?><songs>"+content;   
  46.         content+="</songs>";   
  47.   
  48.         System.out.println(content);   
  49.         response.getWriter().write(content);   
  50.     }   
  51.     public Connection getConnection() throws ClassNotFoundException{   
  52.         try{   
  53.             Class.forName(dbDriver);   
  54.             System.out.println("Connect to db successfuly!");   
  55.             con = DriverManager.getConnection(connStr);   
  56.                
  57.         }catch(SQLException e){   
  58.             con=null;   
  59.             System.err.println(e.getMessage());   
  60.         }   
  61.         return con;   
  62.     }   
  63. }  
  1. package test;   
  2. import java.io.*;   
  3. import java.sql.Connection;   
  4. import java.sql.DriverManager;   
  5. import java.sql.ResultSet;   
  6. import java.sql.SQLException;   
  7. import java.sql.Statement;   
  8.   
  9. import javax.servlet.*;   
  10. import javax.servlet.http.*;   
  11.   
  12. public class HelloWorld extends HttpServlet {   
  13.     public static String dbDriver ="sun.jdbc.odbc.JdbcOdbcDriver";   
  14.     public String connStr ="jdbc:odbc:songs";   
  15.     public ResultSet rs =null;   
  16.     public Connection con=null;   
  17.     public Statement st=null;   
  18.     public void doGet(HttpServletRequest request, HttpServletResponse response)   
  19.             throws ServletException, IOException{   
  20.   
  21.         response.setContentType("text/xml;charset=utf-8");   
  22.         response.setHeader("Cache-Control", "no-cache");   
  23.         String content = "";   
  24.         String name="";   
  25.         String singer="";   
  26.         String lrc="";   
  27.         String addrURL="";   
  28.         try{   
  29.         Connection condb = getConnection();   
  30.         st = condb.createStatement();   
  31.         rs=st.executeQuery("select * from songs");   
  32.         while(rs.next()){   
  33.             name = rs.getString("name");   
  34.             singer = rs.getString("singer");   
  35.             lrc = rs.getString("lrc");   
  36.             addrURL = rs.getString("url");   
  37.             content+="<song><name>"+name+"</name><singer>"+singer+"</singer><lrc>"+   
  38.              lrc+"</lrc><addrURL>"+addrURL+"</addrURL></song>";   
  39.         }   
  40.         }catch(ClassNotFoundException e){   
  41.             e.printStackTrace();   
  42.         }catch( SQLException e1){   
  43.             e1.printStackTrace();   
  44.         }   
  45.         content="<?xml version=/"1.0/" encoding=/"utf-8/"?><songs>"+content;   
  46.         content+="</songs>";   
  47.   
  48.         <A title=system href="http://www.alimama.com/membersvc/buyadzone/buy_ad_zone.htm?adzoneid=892989 " target=_blank>system</A>.out.println(content);   
  49.         response.getWriter().write(content);   
  50.     }   
  51.     public Connection getConnection() throws ClassNotFoundException{   
  52.         try{   
  53.             Class.forName(dbDriver);   
  54.             <A title=system href="http://www.alimama.com/membersvc/buyadzone/buy_ad_zone.htm?adzoneid=892989 " target=_blank>system</A>.out.println("Connect to db successfuly!");   
  55.             con = DriverManager.getConnection(connStr);   
  56.                
  57.         }catch(SQLException e){   
  58.             con=null;   
  59.             <A title=system href="http://www.alimama.com/membersvc/buyadzone/buy_ad_zone.htm?adzoneid=892989 " target=_blank>system</A>.err.println(e.getMessage());   
  60.         }   
  61.         return con;   
  62.     }   
  63. }  
  关于如何利用Tomcat搭建可执行的servlet程序参考:Servlet平台搭建  这里就不介绍了。上面的servlet程序连接access数据库,取出数据后然后生成XML文件,然后在传给Flex应用程序,显示在GUI界面中。截图:

如果部署程序有问题的话,可以留言交流。

附件下载:Flex3通过Servlet连接数据库


<script type="text/javascript" src="http://www.google.com/reader/ui/publisher.js"></script> <script type="text/javascript" src="http://www.google.com/reader/public/javascript/user/00697638153916680411/state/com.google/broadcast?n=5&callback=GRC_p%28%7Bc%3A%22green%22%2Ct%3A%22%5Cu8FD9%5Cu4E9B%5Cu6587%5Cu7AE0%5Cu4E5F%5Cu503C%5Cu5F97%5Cu4E00%5Cu770B%22%2Cs%3A%22false%22%7D%29%3Bnew%20GRC"></script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值