- 浏览: 161961 次
- 性别:
- 来自: 西安
文章分类
最新评论
flex中httpservice与java后台交互的两种传值方式
环境: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>
环境: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>
发表评论
-
flex组件
2013-05-19 23:39 0flex组件 -
flex 计算器
2013-05-16 22:50 468flex 计算器 -
flex数据绑定
2013-05-07 23:18 0flex数据绑定 -
flex实例
2013-05-07 23:07 0flex实例 -
flex学习参考
2013-05-06 20:56 0flex学习 -
flex 学习资料
2013-05-06 20:52 0flex 学习资料 -
flex 中文学习资料
2013-05-05 20:47 679flex 中文学习资料 -
freemaker 中文文档
2013-02-28 22:23 532freemarker中文文档 -
ftl模板
2013-02-28 22:09 756ftl模版文件生成静态页面 2012-02-16 15: ...
相关推荐
### Flex与Java通过实体传递数据 #### 背景介绍 在现代Web应用开发中,前端与后端之间的数据交互是必不可少的一部分。Flex作为一种流行的富客户端技术,常用于构建复杂的用户界面;而Java则因其强大的服务器端处理...
例如,你可以创建一个名为`LoginService`的服务,其中包含一个`login`方法,接收用户名和密码作为参数,然后将这些参数传递到Java后台。 3. Java后台处理:在Java端,你需要创建一个对应的Servlet或Spring MVC控制...
3. **调用服务**:在Flex中,通过ActionScript方法调用服务器端的服务,传递参数并接收响应。AMF自动处理序列化和反序列化过程。 4. **处理结果**:接收到Java服务返回的数据后,Flex可以更新UI或其他业务逻辑。 5...
本示例“flex与java交互源码”提供了一个解决方案,尤其在处理参数数量不确定的情况下。 Flex与Java的通信主要依赖于AMF(Action Message Format)协议,这是一种二进制的序列化格式,能够高效地传输数据。Adobe的...
本教程将深入探讨Flex中组件之间的参数传递机制,帮助你更好地理解和掌握这一重要概念。 首先,了解Flex的基本架构。Flex基于MXML和ActionScript,其中MXML用于描述UI组件布局,而ActionScript则是面向对象的编程...
在Flex和Java结合的环境中,实现...综上所述,Flex与Java结合的Excel导出涉及到前端的事件处理、参数传递、样式定义,以及后端的数据获取、Excel文件的生成和返回,整个过程需要良好的前后端交互设计和数据处理策略。
BlazeDS是Adobe公司开发的一个开源项目,它提供了轻量级的消息传递系统,使得Flex客户端能够与Java后端进行实时数据交换。BlazeDS支持AMF(Action Message Format)协议,这是一种高效的二进制数据格式,用于在Flex...
在标题提到的“Flex与Java通讯例子”中,我们可以推测这是一个示例项目,展示了如何在Flex前端和Java后端之间传递参数。下面将详细介绍Flex与Java通信的基本原理和步骤: 1. **AMF通信**:AMF是一种二进制格式,...
通过BlazeDS,Flex应用可以调用Java服务的方法,传递参数并接收返回值。此外,BlazeDS还支持发布和订阅模型,允许实时数据推送,即服务器主动向客户端发送更新。 7. **示例Dome**: 一个简单的示例可能包括一个...
- 数据通常以XML或JSON形式在Flex和Java之间传递,因为这两种格式易于解析和序列化。 4. **AMF(Action Message Format)优化通信** - 虽然HTTPService适用于简单的数据交换,但若数据量大,性能可能会下降。为了...
- Java代码:在FlexJava/src下创建HelloWorldJava类,包含sayHelloWorld方法,接收一个字符串参数并返回一个问候语。 - Flex代码:编辑FlexJava.mxml,使用s:RemoteObject标签定义一个远程对象(myFlex),指定...
在本实例中,我们将深入探讨如何使用Flex与Java进行交互,以便将数据提交到数据库。这个过程通常涉及几个关键步骤,包括设置环境、建立连接、编写ActionScript代码和Java服务器端处理。 1. **环境配置**: - 安装...
BlazeDS是Adobe提供的一个开源工具,它支持Java远程调用(RPC)和Web消息传递,允许Flex客户端与Java服务器之间进行通信。 在Flex和Spring的整合中,关键在于Spring容器管理的Bean如何被Flex客户端访问。Spring社区...
然后,我们可以实例化`WebService`类,并将WSDL URL作为参数传递。最后,通过调用服务方法并监听事件来发送请求和处理响应。 - **通过AMF**:对于更高效的通信,我们可以使用BlazeDS或LCDS(LiveCycle Data ...
在本文中,我们将深入探讨Flex与Java交互的基本步骤和概念。 首先,Flex是一种基于ActionScript的开放源代码框架,主要用于构建具有动态图形和互动体验的Web应用程序。而Java则是一种广泛使用的编程语言,尤其适用...
BlazeDS是Adobe公司推出的一款开源的服务器端技术,它主要负责在Flex客户端与Java后端之间建立数据通信。BlazeDS提供了丰富的消息传递服务,包括Remoting、LiveCycle Data Services (LCDS) 和 Messaging,使得开发...
【Flex + Java简单例子】是关于使用Flex与Java进行跨域数据交互的一个基础教程,主要涉及Flex客户端和Java服务器端的配置与开发。这个例子旨在展示如何通过BlazeDS库在Flex前端和Java后端之间建立通信。 首先,我们...
首先,我们要准备BlazeDS,它是Adobe提供的一个轻量级的服务器端组件,用于实现在Flex客户端与Java后台之间的消息传递。下载BlazeDS的war文件,然后解压缩。接下来,我们需要创建一个新的Web工程,例如名为"flexweb...
Flex 与 Java 之间的通信是开发富互联网应用(RIA)时常见的需求,特别是在构建跨平台、前后端分离的系统中。本篇将介绍在Flex3中如何与Java进行低数据量通信,主要涵盖三种方法:直接返回文本、JSON返回以及XML传输...