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
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值