溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
                      環(huán)境:myeclipse8.5+flex4+blazeds
                      描述:flex4中httpservice與服務(wù)器端交互的值傳遞問(wèn)題
                      方式一:通過(guò)<s:request/>標(biāo)簽進(jìn)行交互,在該標(biāo)簽內(nèi)部以要傳遞的參數(shù)名作為該標(biāo)簽內(nèi)的子標(biāo)簽,值作為內(nèi)容進(jìn)行傳遞,服務(wù)端接受數(shù)據(jù)采用request.getParmeter("參數(shù)名")獲取數(shù)據(jù).
                      示例代碼:
                      flex中的代碼:
          <!--定義HttpService發(fā)送請(qǐng)求-->
                  
          <s:HTTPService id="service" 
                                 url
          ="http://localhost:8080/testhttpservice/testHttpServiceServlet" 
                                 useProxy
          ="false" 
                                 fault
          ="service_faultHandler(event)" 
                                 result
          ="service_resultHandler(event)">
                      
          <!--第一種傳值方式-->
                      
                      
          <s:request >
                          
          <!--參數(shù)名稱作標(biāo)簽,中間填充參數(shù)值-->
                          
          <username>{txtusername.text}</username>
                          
          <password>{txtpassword.text}</password>
                      
          </s:request>
                      
                  
          </s:HTTPService>
                  后臺(tái)接受參數(shù)的代碼:
                  //獲取flex傳遞的參數(shù) username password
                  String username=request.getParameter("username");
                  
          //get方式處理亂碼
                  
          //username=new String(username.getBytes("ISO-8859-1"),"utf-8");
                  String password=request.getParameter("password");
                  
          //password=new String(password.getBytes("ISO-8859-1"),"utf-8");
                  方式二:第二種傳值方式通過(guò)send()方法傳值send方法中傳遞參數(shù) ,服務(wù)端接受數(shù)據(jù)采用request.getParmeter("參數(shù)名")獲取數(shù)據(jù).
                  示例代碼:
                          //第二種傳值方式 通過(guò)send()方法傳值 send方法中傳遞參數(shù) 
                          //定義一object對(duì)象
                          var val:Object=new Object();
                          //分別將文本框username,password的值傳遞到后臺(tái)
                          //object對(duì)象.參數(shù)名=值   傳值操作
                          val.username=txtusername.text;
                          val.password=txtpassword.text;
                          service.send(val);
                  貼出完整的代碼:
                  服務(wù)器端:
          package com.servlet;

          import java.io.IOException;
          import java.io.PrintWriter;
          import java.util.ArrayList;
          import java.util.List;

          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;

          /**
           * 功能描述:flex httpservice與java交互參數(shù)傳遞探討<br>
           * 
          @author sxyx2008<br>
           * @date 2010-07-19
           *
           
          */

          @SuppressWarnings(
          "serial")
          public class TestHttpServiceServlet extends HttpServlet {
              
              @Override
              
          protected void service(HttpServletRequest request, HttpServletResponse response)
                      
          throws ServletException, IOException {
                  
          //處理post方式亂碼
                  request.setCharacterEncoding("utf-8");
                  
          //設(shè)置瀏覽器輸出字符編碼
                  response.setCharacterEncoding("utf-8");
                  PrintWriter writer
          =response.getWriter();
                  
          //獲取flex傳遞的參數(shù) username password
                  String username=request.getParameter("username");
                  
          //get方式處理亂碼
                  
                  
          //username=new String(username.getBytes("ISO-8859-1"),"utf-8");
                  String password=request.getParameter("password");
                  
          //password=new String(password.getBytes("ISO-8859-1"),"utf-8");
                  
                  
          //構(gòu)建一個(gè)list存放一些數(shù)據(jù)用來(lái)模擬用戶是否存在這一功能
                  List<String> list=new ArrayList<String>();
                  list.add(
          "張三");
                  list.add(
          "李四");
                  list.add(
          "王五");
                  list.add(
          "曹操");
                  list.add(
          "孫權(quán)");
                  list.add(
          "劉備");
                  
          //檢驗(yàn)用戶
                  if(list.contains(username)){
                      writer.print(
          "存在:"+username+"客戶端傳遞的密碼是:"+password);
                  }
          else{
                      writer.print(
          "找不到:"+username+"客戶端傳遞的密碼是:"+password);
                  }

                  
              }

          }

                  flex代碼:
          <?xml version="1.0" encoding="utf-8"?>
          <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
                         xmlns:s
          ="library://ns.adobe.com/flex/spark" 
                         xmlns:mx
          ="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
              
          <fx:Script>
                  
          <![CDATA[
                      import mx.controls.Alert;
                      import mx.rpc.events.FaultEvent;
                      import mx.rpc.events.ResultEvent;

                      //調(diào)用失敗
                      protected function service_faultHandler(event:FaultEvent):void
                      {
                          Alert.show("失敗了:"+event.message,"提示");
                      }

                      //調(diào)用成功
                      protected function service_resultHandler(event:ResultEvent):void
                      {
                          Alert.show("成功了:"+event.result as String,"提示");
                      }
              
                      //調(diào)用
                      protected function button1_clickHandler(event:MouseEvent):void
                      {
                          //第一種傳值方式                
                          //service.send();
                          
                          //第二種傳值方式 通過(guò)send()方法傳值 send方法中傳遞參數(shù) 
                          //定義一object對(duì)象
                          var val:Object=new Object();
                          //分別將文本框username,password的值傳遞到后臺(tái)
                          //object對(duì)象.參數(shù)名=值   傳值操作
                          val.username=txtusername.text;
                          val.password=txtpassword.text;
                          service.send(val);
                      }

                  
          ]]>
              
          </fx:Script>
              
          <fx:Declarations>
                  
          <!-- 將非可視元素(例如服務(wù)、值對(duì)象)放在此處 -->
                  
          <!--定義HttpService發(fā)送請(qǐng)求-->
                  
          <s:HTTPService id="service" 
                                 url
          ="http://localhost:8080/testhttpservice/testHttpServiceServlet" 
                                 useProxy
          ="false" 
                                 fault
          ="service_faultHandler(event)" 
                                 result
          ="service_resultHandler(event)">
                      
          <!--第一種傳值方式-->
                      
                      
          <s:request >
                          
          <!--參數(shù)名稱作標(biāo)簽,中間填充參數(shù)值-->
                          
          <username>{txtusername.text}</username>
                          
          <password>{txtpassword.text}</password>
                      
          </s:request>
                      
                  
          </s:HTTPService>
                  
                  
              
          </fx:Declarations>
              
          <s:TextInput x="332" y="196" id="txtusername"/>
              
          <s:TextInput x="332" y="256" id="txtpassword" displayAsPassword="true"/>
              
          <s:Button x="357" y="311" label="發(fā)送" click="button1_clickHandler(event)"/>
              
          <s:Label x="290" y="206" text="用戶名:"/>
              
          <s:Label x="297" y="266" text="密碼:"/>
          </s:Application>
                  工程文件:
                  點(diǎn)我下載工程文件
          posted on 2010-07-19 17:31 雪山飛鵠 閱讀(11489) 評(píng)論(10)  編輯  收藏 所屬分類: flex

          Feedback

          # re: flex中httpservice與java后臺(tái)交互的兩種傳值方式[未登錄](méi) 2010-07-20 20:02 小宇
          師父,這個(gè)寫得好啊~httpservice與JAVA傳數(shù)值,我自己研究了一天都沒(méi)弄明白~這個(gè)日志寫得很到位啊~~  回復(fù)  更多評(píng)論
            

          # re: flex中httpservice與java后臺(tái)交互的兩種傳值方式[未登錄](méi) 2010-07-20 20:12 小宇
          師父,我想問(wèn)個(gè)問(wèn)題,現(xiàn)在我想用httpservice方式向struts2傳遞數(shù)據(jù)給action,并用action控制跳轉(zhuǎn),這個(gè)目前是個(gè)很大的問(wèn)題。搜了很多資料,自己解決不了。謝謝高手,謝謝師父了。  回復(fù)  更多評(píng)論
            

          # re: flex中httpservice與java后臺(tái)交互的兩種傳值方式 2010-09-04 17:16 實(shí)施
          燕雀安知鴻鵠之志哉,哈哈哈,妙哉  回復(fù)  更多評(píng)論
            

          # re: flex中httpservice與java后臺(tái)交互的兩種傳值方式 2010-09-29 16:29 雪山飛鵠
          @實(shí)施
          伯樂(lè)啊  回復(fù)  更多評(píng)論
            

          # re: flex中httpservice與java后臺(tái)交互的兩種傳值方式 2011-04-18 10:00
          一般般吧...
          重點(diǎn)沒(méi)有講出來(lái)...  回復(fù)  更多評(píng)論
            

          # re: flex中httpservice與java后臺(tái)交互的兩種傳值方式 2011-05-13 11:21
          在mxml中怎么取到j(luò)ava端得值的?不會(huì)給DataGrid賦值~怎么辦,有沒(méi)有在完整點(diǎn)的?謝了  回復(fù)  更多評(píng)論
            

          # re: flex中httpservice與java后臺(tái)交互的兩種傳值方式 2011-09-07 12:27 huanqi_dou
          版主,跪求《跟我學(xué)Flex教程》
          郵箱地址:huanbao.2008.cool@163.com  回復(fù)  更多評(píng)論
            

          # re: flex中httpservice與java后臺(tái)交互的兩種傳值方式 2012-08-01 16:48 法國(guó)警方的客觀
          對(duì)方的司法所發(fā)啊啊啊飛飛飛飛飛飛fffaaaff  回復(fù)  更多評(píng)論
            

          # re: flex中httpservice與java后臺(tái)交互的兩種傳值方式 2013-01-04 13:59 sqj
          你好!我做的項(xiàng)目用的也是httpservice,我希望通過(guò)action類輸出的值判斷登錄是否成功,但是httpservice的result的方法沒(méi)有被執(zhí)行,也就獲取不到后臺(tái)的輸出數(shù)據(jù)怎么解決啊?跪求!  回復(fù)  更多評(píng)論
            

          # re: flex中httpservice與java后臺(tái)交互的兩種傳值方式 2013-01-15 09:35 sd
          求粉《跟我學(xué)FLEX教程》 謝謝了  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 志丹县| 年辖:市辖区| 邢台县| 巴塘县| 通山县| 侯马市| 清水县| 钦州市| 井冈山市| 军事| 南阳市| 广南县| 东辽县| 山阴县| 绍兴市| 红安县| 丹巴县| 吉木萨尔县| 麻栗坡县| 石泉县| 彩票| 岚皋县| 名山县| 乐清市| 日照市| 安丘市| 武平县| 宁城县| 班戈县| 湘乡市| 内乡县| 嘉义县| 韩城市| 永川市| 政和县| 宝鸡市| 巴林右旗| 佛冈县| 汽车| 辽阳县| 大荔县|