| 地球已经调至震动状态使用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 age='23'/>");
 out.write("<student age='24'/>");
 out.write("<student age='23'/>");
 out.write("<student age='24'/>");
 out.write("<student age='23'/>");
 out.write("<student age='24'/>");
 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
 ">
 <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)::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
 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 itemClick="filterHandler(event);"/>
 <mx:RadioButton groupName="gendertype" value="1" label="男" />
 <mx:RadioButton groupName="gendertype" value="0" label="女" />
 <mx:RadioButton groupName="gendertype" value="2" label="所有" />
 </mx:HBox>
 <mx:DataGrid 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 label="提交"/>
 </mx:HBox>
 </mx:Application>
 
 这样就实现了flex到javaee 的交互工作
 (编辑:锡盟站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |