flex4中httpservice与服务器端交互的值传递

来源:互联网 发布:四个字的网络女歌手 编辑:程序博客网 时间:2024/05/18 08:52

 flex中的代码:

<!--定义HttpService发送请求-->        <s:HTTPService id="service"                        url="http://localhost:8080/testhttpservice/testHttpServiceServlet"                        useProxy="false"                        fault="service_faultHandler(event)"                        result="service_resultHandler(event)">            <!--第一种传值方式-->                        <s:request >                <!--参数名称作标签,中间填充参数值-->                <username>{txtusername.text}</username>                <password>{txtpassword.text}</password>            </s:request>                    </s:HTTPService>

 后台接受参数的代码:

//获取flex传递的参数 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");

方式二:第二种传值方式通过send()方法传值send方法中传递参数 ,服务端接受数据采用request.getParmeter("参数名")获取数据.
        示例代码:

   //第二种传值方式 通过send()方法传值 send方法中传递参数                 //定义一object对象                var val:Object=new Object();                //分别将文本框username,password的值传递到后台                //object对象.参数名=值   传值操作                val.username=txtusername.text;                val.password=txtpassword.text;                service.send(val);

 贴出完整的代码:
        服务器端:

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交互参数传递探讨<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");        //设置浏览器输出字符编码        response.setCharacterEncoding("utf-8");        PrintWriter writer=response.getWriter();        //获取flex传递的参数 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");                //构建一个list存放一些数据用来模拟用户是否存在这一功能        List<String> list=new ArrayList<String>();        list.add("张三");        list.add("李四");        list.add("王五");        list.add("曹操");        list.add("孙权");        list.add("刘备");        //检验用户        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;            //调用失败            protected function service_faultHandler(event:FaultEvent):void            {                Alert.show("失败了:"+event.message,"提示");            }            //调用成功            protected function service_resultHandler(event:ResultEvent):void            {                Alert.show("成功了:"+event.result as String,"提示");            }                //调用            protected function button1_clickHandler(event:MouseEvent):void            {                //第一种传值方式                                //service.send();                                //第二种传值方式 通过send()方法传值 send方法中传递参数                 //定义一object对象                var val:Object=new Object();                //分别将文本框username,password的值传递到后台                //object对象.参数名=值   传值操作                val.username=txtusername.text;                val.password=txtpassword.text;                service.send(val);            }        ]]>    </fx:Script>    <fx:Declarations>        <!-- 将非可视元素(例如服务、值对象)放在此处 -->        <!--定义HttpService发送请求-->        <s:HTTPService id="service"                        url="http://localhost:8080/testhttpservice/testHttpServiceServlet"                        useProxy="false"                        fault="service_faultHandler(event)"                        result="service_resultHandler(event)">            <!--第一种传值方式-->                        <s:request >                <!--参数名称作标签,中间填充参数值-->                <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="发送" click="button1_clickHandler(event)"/>    <s:Label x="290" y="206" text="用户名:"/>    <s:Label x="297" y="266" text="密码:"/></s:Application>


原创粉丝点击