2019独角兽企业重金招聘Python工程师标准>>>

Flex用RemoteObject方式与Java通信是最常用的方式,这是一种最直观的方式。当然Flex也可以用HttpService与服务器类如servlet通信,这也是本次学习的重点。

这次学习是在上节的基础上进行的。本节学习用到的LoginEvent.as,LoginModule.sa文件代码如上节所示。

好了,新建一个servlet类LoginServlet.java,代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.it161.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
publicclass LoginServlet extends HttpServlet {
@Override
protectedvoid service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generatedmethod stub
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
PrintWriter out=resp.getWriter();
String username=req.getParameter("username");
String passworld=req.getParameter("passworld");
//System.out.println(username+":"+passworld);
if(username.equals("admin")&&passworld.equals("123")){
out.print(true);
}else{
out.print(false);
}
}
}

这个servlet在web.xml中的配置如下所示:

1
2
3
4
5
6
7
8
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.yqsn.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>

将MyEclipse切换到flash视图,新建一个application文件HttpServiceDemo.mxml,代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?xmlversion="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 com.flex.ases.LoginEvent;
import com.flex.ases.LoginMess;
import com.flex.module.LoginModule;
import mx.controls.Alert;
import mx.managers.PopUpManager;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
privatevar loginModule:LoginModule=new LoginModule();
[Bindable]
private var username:String;
[Bindable]
private varpassworld:String;
protectedfunction login_clickHandler(event:MouseEvent):void
{
// TODOAuto-generated method stub
PopUpManager.addPopUp(loginModule,this,true);
PopUpManager.centerPopUp(this.loginModule);
loginModule.addEventListener(LoginEvent.LOGIN_EVENT,loginHander);
}
publicfunction loginHander(event:LoginEvent):void{
//varobj:Object=event.loginMess as Object;
username=event.loginMess['username'];
passworld=event.loginMess['passworld'];
httpServiceSend.send();
}
protectedfunction httpServiceSend_faultHandler(event:FaultEvent):void
{
// TODOAuto-generated method stub
Alert.show(event.fault.message as String,"提示");
}
protectedfunction httpServiceSend_resultHandler(event:ResultEvent):void
{
// TODOAuto-generated method stub
var result:Boolean=event.result as Boolean;
if(result==true){
Alert.show(username+",欢迎您回来!","提示");
aaa.text=username+",欢迎您回来!";
login.label="";
bbb.text="";
}else{
Alert.show("对不起,用户名或密码不存在!","提示");
}
//Alert.show("成功了!");
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visualelements (e.g., services, value objects) here -->
<s:HTTPService id="httpServiceSend"  url=" http://localhost:8000/JavaAndFlexDemo/LoginServlet" useProxy="false"fault="httpServiceSend_faultHandler(event)"result="httpServiceSend_resultHandler(event)" >
<s:request>
<username>{username}</username>
<passworld>{passworld}</passworld>
</s:request>
</s:HTTPService>
</fx:Declarations>
<s:Label x="200" y="150" width="182" height="27" fontSize="18" id="aaa" text="您还没有登陆,现在就" verticalAlign="middle"/>
<mx:LinkButton x="393"  y="150" width="57"  height="27" label="登陆" id="login" fontSize="18"click="login_clickHandler(event)"/>
<s:Label x="459" y="150" width="37" height="27" id="bbb" fontSize="18" text="吧!" verticalAlign="middle"/>
</s:Application>

从代码中我们可以看出,我们先定义一个HttpServlet发送请求httpServiceSend,然后通过下面这种方式存值:

1
2
3
4
<s:request >
<username>{username}</username>
<passworld>{passworld}</passworld>
</s:request>

这种方式很简单,我们在后台通过request. getParameter(“参数名”)取值就可以了,当然我们也可以在loginHander(event:LoginEvent)函数中通过下面方式存值并发送请求:

1
2
3
4
5
6
7
8
9
public functionloginHander(event:LoginEvent):void{
//varobj:Object=event.loginMess as Object;
username=event.loginMess['username'];
passworld=event.loginMess['passworld'];
var obj:Object=new Object;
obj.username=username;
obj.passworld=passworld;
httpServiceSend.send(obj);
}

运行结果是一样的,你可以试试。

好了,程序算是完成了,现在开始验收结果。

打开服务器并部署项目,运行felx页面RemoteObjectDemo.mxml,如下所示:

当我们点击“登陆”按钮后,弹出module页面,如下所示:

当我们输入的用户名和密码都正确时则提示你登陆正确:

输入错误则提示你输入不正确:

可以看出,我们输入的用户名与密码已经用httpservice方式发送到后台并且成功接受了并将结果返回给前台了。

好了,就学习这么多,下节将学习WebService方式。

原创文章,转载请注明出处:http://www.it161.com/article/webDetail?articleid=140111230433

更多原创内容,请访问:http://www.it161.com/

转载于:https://my.oschina.net/dianfusoft/blog/192298

Flex与Java通信之HttpService方式相关推荐

  1. java与flex通信_Flex与Java通信教程

    Flex与Java通信教程 Flex与Java通信框架搭建的步骤: 1. 新建web项目,并启动tomcat运行,检查一切是否正常(必须): 2. 导入所需的jar包(我已给出),将需要用的四个XML ...

  2. flex 与java项目_flex为前端的java项目

    如下图: BlazeDS:它是基于服务器的java远程调用(Remote)和web消息(Message)的通讯技术,使得运行在后台的java应用程序和运行 在前端的flex应用程序间能够相互互相... ...

  3. flex blazeds java_Flex+BlazeDS+java通信详细笔记

    整了很长时间的通信,还是一直有一点问题.现在搞定了,记录一下,也跟有需求的同学们共享. 我重新把所有的过程再做一遍. 1新建Flex+BlazeDS+JAVA项目 右键.新建Flex项目 其中blaz ...

  4. Flex与ASP.NET通过Remoting方式交互说明文档

    本文是关于Flex与ASP.NET通过Remoting方式进行通讯的内容, 本文将通过一个示例来介绍Flex与ASP进行数据交互的服务端和客户端所需的配置情况,以及二者通信的过程. 1. 软件 1.F ...

  5. Flex与ASP.NET通过Remoting方式进行通讯

    前两天研究了一下Flex与.NET如何进行数据交互,并写了一个文档,后面叙述得还不是很详细,还可以再研究深一点.本文是关于Flex与ASP.NET通过Remoting方式进行通讯的内容,过段时间有空还 ...

  6. flash java 通信_FLASH与服务器通讯 (JAVA)

    1.FLASH 通过URL地址获得服务器数据. 这种方式最为简单,就像在浏览器的地址栏里面敲一样. 先建立一个URLRequest,然后用URLLoader载入就行了. 下面这个是载入一个图片,htm ...

  7. php java 通信_PHP与Java进行通信的实现方法

    缘起: 最近做了一个电商平台与网银整合的小东西,程序是开源的 Ecmall的,网银的接口也很规范,给出的文档很全,唯一的小问题是,网银使用的签名和验签的lib是只有java和c的,对java还熟悉一些 ...

  8. Flex通过Java读取Excel(详细流程)----Excel在客户端(DataGrid动态根据Excel生成)

    2011-03-06 23:57:00|  分类: flex/flash |  标签:excel  flex  java  客户端  as3xls   |字号大中小  订阅 在网上查了很久的资料,就是 ...

  9. java qq通信,Java通信-仿QQ聊天项目

    前后历时一个多月的Java实现聊天通信项目-仿QQ聊天室基本告一段落,期间面对了很多问题,也有不同的解决方案,重写了几次核心代码,等等问题.现在在项目的结束之时,给自己做一个总结,算是一个回顾,算是一 ...

最新文章

  1. Wiew 像写 Android UI 一样写小游戏布局
  2. python3 字符串截取
  3. Linux下python升级安装步骤
  4. 蓝桥杯 算法训练 最大最小公倍数
  5. win10系统要求配置_Windows 10最低系统配置要求
  6. Android总结篇系列:Activity中几个主要函数详解
  7. 错题集 HDLBits Exams/ece241 2013 q7 JK触发器
  8. 如何保证战略落地_如何真正让企业战略规划体系落地
  9. 来自Google的围棋AlphaGo
  10. HDU 1998奇数阶魔方
  11. 信创办公--基于WPS的Word最佳实践系列(汇总目录)
  12. JetBrains.ReSharper 字典
  13. 腾讯文档自动填写工具(工具)
  14. Windows搭建ngrok服务器、Linux搭建ngrok服务器、支持用户管理
  15. 深度学习中的特征(feature)指的是什么?
  16. laravel 发邮件 qq配置
  17. 计算机函数sun怎么用,手把手演示sumif函数怎么用【处置步骤】
  18. Thinkphp 5.1 PC和手机端加载不同路径下的模板~功能实现
  19. 电商图片采集-免费批量电商图片采集软件
  20. 合肥市专精特新中小企业申报汇总,申报奖励、认定条件、材料流程时间

热门文章

  1. C++(STL):16---deque之常规用法
  2. MYSQL增量备份和全量备份脚本
  3. 机器学习问题总结(03)
  4. STL源码剖析 set集合
  5. C++对于文件的相关操作 创建、读写、删除代码
  6. 顶级投资者的21条箴言(组图)
  7. 宏块帧内预测的具体过程
  8. jQuery基本使用
  9. mysql 备份脚本
  10. 破解mysql数据库的密码