这篇文章主要介绍了使用flex中的httpservice方法与java进行交互,需要的朋友可以参考下
地球已经调至震动状态使用flex中的httpservice方法与java进行交互:一、写服务器:1.在myeclipse中建立web项目2.写一个用来打印xml的servlet3.当使用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/javaeehttp://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.0webappsflex_service_HttpService这个文件下5.建立flex项目建好flex项目之后,在项目上右键单击选择属性,在属性中的flex服务器选项中设置flex服务器的地址配置信息如下:文件根目录:D:Tomcat 6.0webappsflex_service_HttpService根URL(U):http://localhost:8089/flex_service_HttpService上下文根目录:/flex_service_HttpService6.配置好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 genderprivate 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 genderprivate 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 buttonprivate 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 的交互工作