欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-21 23:27:28
地球已经调至震动状态使用flex中的httpservice方法与java进行交互: 一、写服务器: 1.在myeclipse中建立web项目 2.写一个用来打印xml的se...
地球已经调至震动状态使用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 的交互工作
相关标签: 交互 HttpService