加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex中httpservice与java后台交互的两种传值方式

发布时间:2020-12-15 03:40:02 所属栏目:百科 来源:网络整理
导读:? 文章转自 http://www.blogjava.net/sxyx2008/非常感谢 ????????????环境:myeclipse8.5+flex4+blazeds ????????????描述:flex4中httpservice与服务器端交互的值传递问题 ????????????方式一:通过s:request/标签进行交互,在该标签内部以要传递的参数名作
?
文章转自 http://www.blogjava.net/sxyx2008/非常感谢
????????????环境:myeclipse8.5+flex4+blazeds
????????????描述:flex4中httpservice与服务器端交互的值传递问题
????????????方式一:通过<s:request/>标签进行交互,在该标签内部以要传递的参数名作为该标签内的子标签,值作为内容进行传递,服务端接受数据采用request.getParmeter("参数名")获取数据.
????????????示例代码:
????????????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 >

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读