贴个Flex-Jsp-Mysql简单结合例子

数据库表
这个sql是用pd生成的,具体内容大家自己看一下好了,很简单,数据也自己填充一下。标题上说是用mysql,其实无所谓用啥数据库了,这里我推荐Postgresql,现在有for win平台了,不用cygwin来模拟unix环境,这个Postgresql一来小巧,二来功能齐全,看起来有点象Oracle,当然速度也很快了。

ExpandedBlockStart.gifContractedBlock.gif/**//*==============================================================*/
ExpandedBlockStart.gifContractedBlock.gif
/**//* Table: tblmobile                                             */
ExpandedBlockStart.gifContractedBlock.gif
/**//*==============================================================*/
None.gif
create table  tblmobile
None.gif(
None.gif   id                             
integer(11)                    not null default 0
,
None.gif   categoryid                     
integer(11
),
None.gif   name                           
varchar(255
),
None.gif   
image                          varchar(255
),
None.gif   price                          
decimal(12,2
),
None.gif   addtime                        
datetime
,
None.gif   
primary key
 (id)
None.gif);
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**//*==============================================================*/

ExpandedBlockStart.gifContractedBlock.gif
/**//* Index: i_tblMobile_categoryid                                */
ExpandedBlockStart.gifContractedBlock.gif
/**//*==============================================================*/
None.gif
create index i_tblMobile_categoryid on  tblmobile
None.gif(
None.gif   categoryid
None.gif);
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**//*==============================================================*/

ExpandedBlockStart.gifContractedBlock.gif
/**//* Index: pk_tblmobile                                          */
ExpandedBlockStart.gifContractedBlock.gif
/**//*==============================================================*/
None.gif
create unique index pk_tblmobile on  tblmobile
None.gif(
None.gif   id
None.gif);
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**//*==============================================================*/

ExpandedBlockStart.gifContractedBlock.gif
/**//* Index: i_tblmobile_addtime                                   */
ExpandedBlockStart.gifContractedBlock.gif
/**//*==============================================================*/
None.gif
create index i_tblmobile_addtime on  tblmobile
None.gif(
None.gif   addtime
None.gif);
None.gif


phonselist.jsp
Jsp服务器用的是 Tomcat,顺便做 flex的服务器,版本没啥大关系,我现在用的是5.0.28,Jsp功能是按手机分类id从 mysql数据库获取手机列表,这里为方便起见直接在jsp页面里进行数据库访问,正确的做法应该由 javabean来分工,其后总jsp生成的是一个xml文件。
None.gif < ?xml version = " 1.0 "  encoding = " utf-8 " ? >
None.gif
< %@ page contentType = " text/html;charset=utf-8 " % >
None.gif
< %@ page import = " java.sql.* " % >
None.gif
< phonelist >
None.gif
< %
None.gif    
String  sql  =   "" ;
None.gif    
String  url  =   "" ;
None.gif
None.gif    
String  categoryID  =  request.getParameter( " categoryID " );
None.gif
None.gif    
try  {
ExpandedBlockStart.gifContractedBlock.gif        
Class . Class.forName("com.mysql.jdbc.Driver").newInstance();
InBlock.gif        url 
= "jdbc:mysql://localhost/web?user=flex&password=flex&useUnicode=true&characterEncoding=gb2312";
InBlock.gif        Connection conn 
= DriverManager.getConnection(url);
InBlock.gif        Statement stmt 
= conn.createStatement();
InBlock.gif
InBlock.gif        sql 
= "select id, name, price, image from tblMobile where categoryid=" + categoryID;
InBlock.gif        ResultSet rs 
= stmt.executeQuery(sql);
InBlock.gif
InBlock.gif        
while (rs.next()){
InBlock.gif            out.println(
"<phone id=\"" + rs.getString(1) + "\">");
InBlock.gif            out.println(
"<id>" + rs.getString(1+ "</id>");
InBlock.gif            out.println(
"<name>" + rs.getString(2+ "</name>");
InBlock.gif            out.println(
"<price>" + rs.getString(3+ "</price>");
InBlock.gif            out.println(
"<image>" + rs.getString(4+ "</image>");
InBlock.gif            out.println(
"</phone>");
InBlock.gif        }
InBlock.gif
InBlock.gif        rs.close();
InBlock.gif        stmt.close();
InBlock.gif        conn.close();
InBlock.gif
InBlock.gif    } 
catch (Exception e) {
InBlock.gif        out.println(e);
InBlock.gif    }
InBlock.gif%
>
InBlock.gif
</phonelist>
InBlock.gif

mobile.mxml
这里要注意一下 <mx:HTTPService>中的 resultFormat="xml"的设置,在这里应该把这个取掉(我原来是用来做Tree用的)。phonelisg.jsp和mobile.mxml放在相同的目录下,当然你也可以修改 url的路径。
None.gif <? xml version="1.0" encoding="utf-8" ?>
None.gif
None.gif
< mx:Application  xmlns:mx ="http://www.macromedia.com/2003/mxml"
None.gif    verticalGap
="10"
None.gif    backgroundColor
="#FFFFFF"
None.gif    pageTitle
="手机"
None.gif    initialize
="initApp()" >
None.gif    
None.gif    
< mx:Style  source ="main.css" />
None.gif
None.gif    
< mx:HTTPService  id ="phoneService"  url ="phonelist.jsp"  resultFormat ="xml" >
None.gif        
< mx:request >
None.gif            
< categoryID > {categoryId} </ categoryID >
None.gif        
</ mx:request >
None.gif    
</ mx:HTTPService >
None.gif
None.gif    
< mx:Model  id ="phonelist" >
None.gif        {phoneService.result.phonelist.phone}
None.gif    
</ mx:Model >
None.gif
None.gif
None.gif    
< mx:Script >
None.gif        
<![CDATA[
None.gif
None.gif        var categoryId = 2;
None.gif        var categoryName = "Moto";
None.gif    
None.gif        function initApp() {
None.gif            phoneService.send();
None.gif        }
None.gif
None.gif        
]]>
None.gif    
</ mx:Script >
None.gif
None.gif    
< mx:HBox >
None.gif        
< mx:LinkBar  styleName ="title"  width ="500"  click =""   >
None.gif            
< mx:dataProvider >
None.gif                
< mx:Array >
None.gif                    
< mx:Object  label ="首 页"  link ="main" />
None.gif                    
< mx:Object  label ="手机分类"  link ="catagory" />
None.gif                    
< mx:Object  label ="论 坛"  link ="forum" />
None.gif                    
< mx:Object  label ="关 于"  link ="about" />
None.gif                
</ mx:Array >
None.gif            
</ mx:dataProvider >
None.gif        
</ mx:LinkBar >
None.gif        
< mx:Label  text ="搜索" />
None.gif        
< mx:TextInput  id ="key"  width ="120" />
None.gif        
< mx:Button  label ="Go" />
None.gif    
</ mx:HBox >
None.gif    
None.gif    
< mx:HBox >
None.gif        
< mx:Image  source ="images/qd_2.jpg" />
None.gif        
< mx:Label  id ="debug"  text ="123" />
None.gif    
</ mx:HBox >
None.gif
None.gif    
< mx:Effect >
None.gif        
< mx:Zoom  name ="zoomBig"  zoomTo ="107"  duration ="100" />
None.gif        
< mx:Zoom  name ="zoomSmall"  zoomTo ="100"  duration ="100" />
None.gif    
</ mx:Effect >
None.gif
None.gif    
< mx:HBox >
None.gif        
< mx:Panel  id ="main"  title =""  height ="360" >             
None.gif                
< mx:Tile  width ="520" >
None.gif                    
< mx:Repeater  id ="plist"  dataProvider ="{phonelist}"  startingIndex =""  count ="" >
None.gif                        
< mx:VBox  id ="itemBox"  verticalGap ="0"  horizontalAlign ="center"  mouseUp ="" >
None.gif                            
< mx:Canvas  width ="100"  height ="100"  clipContent ="false" >
None.gif                                
< mx:Image  width ="90"  height ="90"  source ="{plist.currentItem.image}"  toolTip ="RMB {plist.currentItem.price}"  mouseOverEffect ="zoomBig"  mouseOutEffect ="zoomSmall"  visible ="false"  complete ="event.target.visible=true;" />
None.gif                            
</ mx:Canvas >
None.gif                            
< mx:Label  id ="itemName"  text ="{plist.currentItem.name}" />
None.gif                            
< mx:Label  id ="itemPrice"  text ="RMB{plist.currentItem.price}" />
None.gif                        
</ mx:VBox >
None.gif                    
</ mx:Repeater >
None.gif                
</ mx:Tile >
None.gif            
< mx:ControlBar >
None.gif                
< mx:Button  label ="上一页"  click ="" />
None.gif                
< mx:Button  label ="下一页"  click ="" />
None.gif                
< mx:Button  label ="refresh"  click ="initApp()" />
None.gif            
</ mx:ControlBar >
None.gif        
</ mx:Panel >
None.gif    
</ mx:HBox >
None.gif
None.gif
None.gif    
< mx:HBox  horizontalAlign ="center" >
None.gif        
< mx:Label  text ="Copy Right 2004  dannyr's Studio " />
None.gif    
</ mx:HBox >
None.gif
</ mx:Application >
None.gif

 

最后:配置Flex服务器
flex-config.xml

None.gif < http-service-proxy >   
None.gif    
< whitelist >  
None.gif            
< unnamed >             
None.gif                
< url > http://{localserver}/flex/phonelist.jsp </ url >
None.gif            
</ unnamed >
None.gif    
</ whitelist >
None.gif         dot.gifdot.gifdot.gifdot.gif
None.gif         dot.gifdot.gifdot.gifdot.gif
None.gif      
</ http-service-proxy >
None.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值