使用flex中的httpservice方法与java进行交互_Flex

地球已经调至震动状态使用flex中的httpservice方法与java进行交互:

一、写服务器:
1.在myeclipse中建立web项目
2.写一个用来打印xml的servlet
3.当使用httpservice与java进行交互的时候不用改写remoting-config.xml文件
4.web.xml文件中配置servlet的访问地址(一般不用配置,当一个servlet建好之后myeclipse就会自动配置好web.xml文 件,不用去改动,但是需要注意的是,当你在导入blazeds开发文件的时候他会改动web.xml文件,这时候你一定要将web.xml文件改过来,要 不然flex在访问服务器的时候则反问不到你的servlet)。
5.当你的服务器端的servlet写好之后再去建立flex 项目,并且根据你之前建好的servlet项目在flex项目的属性项中配置flex服务器的访问地址。
6.写flex的mxml文件。

二、一个简单案例:
1.servlet源代码

复制代码 代码如下:

package com.wle.flex.HttpService.java文件源代码

package com.wle.flex;

import java.io.IOException;
import java.io.Writer;

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

public class HttpService01 extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/xml;charset=utf-8");
Writer out = response.getWriter();
out.write("<?xml version='1.0' encoding='utf-8'?>");
out.write("<item>");
out.write("<student name='林冲' age='23' class='水泊梁山一班'/>");
out.write("<student name='李逵' age='24' class='水泊梁山二班'/>");
out.write("<student name='扈三娘' age='23' class='水泊梁山一班'/>");
out.write("<student name='时迁' age='24' class='水泊梁山二班'/>");
out.write("<student name='武松' age='23' class='水泊梁山一班'/>");
out.write("<student name='燕青' age='24' class='水泊梁山二班'/>");
out.write("</item>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}

2.servlet对应的web.xml文件

复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>HttpService01</servlet-name>
<servlet-class>com.wle.flex.HttpService01</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HttpService01</servlet-name>
<url-pattern>/wl/HttpService01</url-pattern>
</servlet-mapping>

</web-app>

3.在webroot目录下导入blazeds文件

4.发布servlet项目
比如讲servlet项目发布到D:\Tomcat 6.0\webapps\flex_service_HttpService这个文件下

5.建立flex项目
建好flex项目之后,在项目上右键单击选择属性,在属性中的flex服务器选项中设置flex服务器的地址
配置信息如下:
文件根目录:D:\Tomcat 6.0\webapps\flex_service_HttpService
根URL(U):http://localhost:8089/flex_service_HttpService
上下文根目录:/flex_service_HttpService
6.配置好flex项目的服务器之后就开始写flex源文件,如下:

复制代码 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
fontSize="12" viewSourceURL="srcview/index.html" xmlns:s="library://ns.adobe.com/flex/spark">

<!--<mx:Style source="DGtoExcel.css"/>-->

<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.events.ItemClickEvent;
import mx.rpc.events.FaultEvent;

[Bindable]
private var myAC:ArrayCollection;

private function faultHandler(event:FaultEvent):void
{
Alert.show(event.fault.faultString, event.fault.message);
}

// Function to filter out all items with gender
private function maleFilterFunc(item:Object):Boolean {
return item.gender == 1;
}

// Function to apply the filter function the ICollectionView.
private function filterMale():void {
myAC.filterFunction = maleFilterFunc;
//Refresh the collection view to apply the filter.
myAC.refresh();
}

// Function to filter out all items with gender
private function femaleFilterFunc(item:Object):Boolean {
return item.gender == 0;
}

// Function to apply the filter function the ICollectionView.
private function filterFemale():void {
myAC.filterFunction = femaleFilterFunc;
//Refresh the collection view to apply the filter.
myAC.refresh();
}

// Function to Reset the view to its original state.
private function resetAC():void {
myAC.filterFunction = null;
//Refresh the collection view.
myAC.refresh();
}

// Event handler function to display the selected button
private function filterHandler(event:ItemClickEvent):void {
switch(event.currentTarget.selectedValue){
case 1:
filterMale();
break;
case 0:
filterFemale();
break;
case 2:
resetAC();
break;
default:
break;
}

}

protected function bt1_clickHandler():void
{
myService.send();
}

]]>
</mx:Script>
<mx:HTTPService id="myService"
showBusyCursor="true"
url="http://localhost:8089/flex_service_HttpService/wl/HttpService01"
result="myAC = event.result.item.student"
fault="faultHandler(event)"
contentType="application/xml"
/>
<mx:HBox>
<mx:RadioButtonGroup id="gendertype" itemClick="filterHandler(event);"/>
<mx:RadioButton groupName="gendertype" id="rbMale" value="1" label="男" />
<mx:RadioButton groupName="gendertype" id="rbFemale" value="0" label="女" />
<mx:RadioButton groupName="gendertype" id="rbAll" value="2" label="所有" />
</mx:HBox>
<mx:DataGrid id="myDG" width="100%" rowCount="20"
dataProvider="{myAC}" >
<mx:columns>
<mx:DataGridColumn headerText="姓名" dataField="name"/>
<mx:DataGridColumn headerText="年龄" dataField="age" />
<mx:DataGridColumn headerText="班级" dataField="class"/>
</mx:columns>
</mx:DataGrid>
<mx:HBox>
<s:Button id="bt1" label="提交" click="bt1_clickHandler()"/>
</mx:HBox>
</mx:Application>

这样就实现了flex到javaee 的交互工作

时间: 2024-08-28 06:31:54

使用flex中的httpservice方法与java进行交互_Flex的相关文章

使用flex中的httpservice方法与java进行交互

 这篇文章主要介绍了使用flex中的httpservice方法与java进行交互,需要的朋友可以参考下 地球已经调至震动状态使用flex中的httpservice方法与java进行交互:    一.写服务器:  1.在myeclipse中建立web项目  2.写一个用来打印xml的servlet  3.当使用httpservice与java进行交互的时候不用改写remoting-config.xml文件  4.web.xml文件中配置servlet的访问地址(一般不用配置,当一个servlet建

Flex中如何判断是否在组件之外单击_Flex

昨天在做Flex开发的时候,遇到了这样一种操作,之前也遇到过,那时的办法不是很好,今天又碰上了类似的问题,先看一张图吧!  这是系统界面大概的样子,现在的情况是,红色区域是一个窗口.页面.组件这样的,需要在这个组件之外的地方单击就隐藏这个组件,以前的想法很简单,就是通过坐标判断,但是现在这个红色的区域的结构比较复杂,所以不知道有什么样的方式可以解决,后来遇到了一个网友,给了我一段代码,我觉得还不错,我觉得算是技巧性的东西吧!所以分享一下: 首先,在黑色的区域监听单击事件,然后在单击事件的处理函数

Flex中Array的IndexOf 的作用示例介绍_Flex

Flex中 Array 的IndexOf 的作用 1.说明 indexOf用于在索引中从小到大查找,如果查得到就返回索引值,查不到就返回-1: 2.实例 (1)设计源码 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://n

flex中如何用图像给按钮做皮肤_Flex

复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <s:SparkButtonSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fb="http://ns.adobe.com/flashbuilder/2009

Flex中的HDividedBox和VDividedBox的比较附图_Flex

1.HDividedBox (1)源码 HVD.mxml: 复制代码 代码如下: <?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://n

java中关于dismiss方法的使用

问题描述 java中关于dismiss方法的使用 myDialog.dismiss( )比如这条语句中是关闭一个对话框的意思吗dismiss还有哪些方面的应用 解决方案 看下这个函数的源码上面的注释信息,jdk源码上的英文注释就是很好的参考文档的. 解决方案二: 这和java语言没有关系,这只是dialog对象定义的方法罢了.你也可以写一个类,定义一个叫dismiss的方法. 在英文字面看来,dismiss就是消失的意思. 解决方案三: java中waitnotifynotifyAll的使用方法

关于java多线程中的join方法

问题描述 关于java多线程中的join方法 1.主线程可能在子线程结束之前 结束吗?如果可能的话 举一个例子 2.如何理解join方法, 结合实际应用. 非常感谢非常感谢!!! 解决方案 关于join,参考:http://www.blogjava.net/jnbzwm/articles/330549.html 解决方案二: 主线程可能在子线程结束之前 结束吗 一般来说不可以,但是也不一定,如果子线程在执行finally中的代码,应该会等它执行完了才退出. 晕,join方法和什么"让主线程等子线

java中this作为方法名的时候的问题,不知道我把它看成方法名正步正确

问题描述 java中this作为方法名的时候的问题,不知道我把它看成方法名正步正确 如下代码所示, public MyView(Context context) { this(context null); } //this在这里是方法吗,this是一个方法名吗? 解决方案 this用来调用你这个类中定义的一个构造方法 解决方案二: this不是方法名,而是Java中对当前对象的引用.例如当前对象的引用用this,父类对象的引用用super 解决方案三: 一个类中定义两个构造函数,在一个构造函数中

教你在java中使用dll方法

Java语言本身具有跨平台性,如果通过Java调用DLL的技术方便易用,使用Java开发前台界面可以更快 速,也能带来跨平台性. Java调用C/C写好的DLL库时,由于基本数据类型不同.使用字节序列可能有差异,所以在参数传递过 程中容易出现问题. 使用Java调用DLL动态链接库的方案通常有三种:JNI, Jawin, Jacob. 其中JNI(Java Native Interface)是Java语言本身提供的调用本地已编译的函数库的方法,本身具有跨平台性,可以在不同的机 器上调用不同的本地