使用flex中的httpservice方法與java進(jìn)行交互
更新時(shí)間:2014年02月13日 17:13:35 作者:
這篇文章主要介紹了使用flex中的httpservice方法與java進(jìn)行交互,需要的朋友可以參考下
地球已經(jīng)調(diào)至震動(dòng)狀態(tài)使用flex中的httpservice方法與java進(jìn)行交互:
一、寫服務(wù)器:
1.在myeclipse中建立web項(xiàng)目
2.寫一個(gè)用來打印xml的servlet
3.當(dāng)使用httpservice與java進(jìn)行交互的時(shí)候不用改寫remoting-config.xml文件
4.web.xml文件中配置servlet的訪問地址(一般不用配置,當(dāng)一個(gè)servlet建好之后myeclipse就會(huì)自動(dòng)配置好web.xml文 件,不用去改動(dòng),但是需要注意的是,當(dāng)你在導(dǎo)入blazeds開發(fā)文件的時(shí)候他會(huì)改動(dòng)web.xml文件,這時(shí)候你一定要將web.xml文件改過來,要 不然flex在訪問服務(wù)器的時(shí)候則反問不到你的servlet)。
5.當(dāng)你的服務(wù)器端的servlet寫好之后再去建立flex 項(xiàng)目,并且根據(jù)你之前建好的servlet項(xiàng)目在flex項(xiàng)目的屬性項(xiàng)中配置flex服務(wù)器的訪問地址。
6.寫flex的mxml文件。
二、一個(gè)簡(jiǎn)單案例:
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='時(shí)遷' 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對(duì)應(yīng)的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目錄下導(dǎo)入blazeds文件
4.發(fā)布servlet項(xiàng)目
比如講servlet項(xiàng)目發(fā)布到D:\Tomcat 6.0\webapps\flex_service_HttpService這個(gè)文件下
5.建立flex項(xiàng)目
建好flex項(xiàng)目之后,在項(xiàng)目上右鍵單擊選擇屬性,在屬性中的flex服務(wù)器選項(xiàng)中設(shè)置flex服務(wù)器的地址
配置信息如下:
文件根目錄:D:\Tomcat 6.0\webapps\flex_service_HttpService
根URL(U):http://localhost:8089/flex_service_HttpService
上下文根目錄:/flex_service_HttpService
6.配置好flex項(xiàng)目的服務(wù)器之后就開始寫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="班級(jí)" dataField="class"/>
</mx:columns>
</mx:DataGrid>
<mx:HBox>
<s:Button id="bt1" label="提交" click="bt1_clickHandler()"/>
</mx:HBox>
</mx:Application>
這樣就實(shí)現(xiàn)了flex到j(luò)avaee 的交互工作
一、寫服務(wù)器:
1.在myeclipse中建立web項(xiàng)目
2.寫一個(gè)用來打印xml的servlet
3.當(dāng)使用httpservice與java進(jìn)行交互的時(shí)候不用改寫remoting-config.xml文件
4.web.xml文件中配置servlet的訪問地址(一般不用配置,當(dāng)一個(gè)servlet建好之后myeclipse就會(huì)自動(dòng)配置好web.xml文 件,不用去改動(dòng),但是需要注意的是,當(dāng)你在導(dǎo)入blazeds開發(fā)文件的時(shí)候他會(huì)改動(dòng)web.xml文件,這時(shí)候你一定要將web.xml文件改過來,要 不然flex在訪問服務(wù)器的時(shí)候則反問不到你的servlet)。
5.當(dāng)你的服務(wù)器端的servlet寫好之后再去建立flex 項(xiàng)目,并且根據(jù)你之前建好的servlet項(xiàng)目在flex項(xiàng)目的屬性項(xiàng)中配置flex服務(wù)器的訪問地址。
6.寫flex的mxml文件。
二、一個(gè)簡(jiǎn)單案例:
1.servlet源代碼
復(fù)制代碼 代碼如下:
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='時(shí)遷' 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對(duì)應(yīng)的web.xml文件
復(fù)制代碼 代碼如下:
<?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目錄下導(dǎo)入blazeds文件
4.發(fā)布servlet項(xiàng)目
比如講servlet項(xiàng)目發(fā)布到D:\Tomcat 6.0\webapps\flex_service_HttpService這個(gè)文件下
5.建立flex項(xiàng)目
建好flex項(xiàng)目之后,在項(xiàng)目上右鍵單擊選擇屬性,在屬性中的flex服務(wù)器選項(xiàng)中設(shè)置flex服務(wù)器的地址
配置信息如下:
文件根目錄:D:\Tomcat 6.0\webapps\flex_service_HttpService
根URL(U):http://localhost:8089/flex_service_HttpService
上下文根目錄:/flex_service_HttpService
6.配置好flex項(xiàng)目的服務(wù)器之后就開始寫flex源文件,如下:
復(fù)制代碼 代碼如下:
<?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="班級(jí)" dataField="class"/>
</mx:columns>
</mx:DataGrid>
<mx:HBox>
<s:Button id="bt1" label="提交" click="bt1_clickHandler()"/>
</mx:HBox>
</mx:Application>
這樣就實(shí)現(xiàn)了flex到j(luò)avaee 的交互工作
您可能感興趣的文章:
- 使用Java開發(fā)實(shí)現(xiàn)OAuth安全認(rèn)證的應(yīng)用
- Java中HttpServletResponse響應(yīng)中文出現(xiàn)亂碼問題
- java使用HttpSession實(shí)現(xiàn)QQ訪問記錄
- 使用httpclient無需證書調(diào)用https的示例(java調(diào)用https)
- 使用asx3m與xstream配合解決flex與java利用httpservice傳遞xml數(shù)據(jù)問題
- java struts2學(xué)習(xí)筆記之線程安全
- JSP學(xué)習(xí)之Java Web中的安全控制實(shí)例詳解
- Java線程安全中的單例模式
- java編譯時(shí)出現(xiàn)使用了未經(jīng)檢查或不安全的操作解決方法
- 深入理解:Java是類型安全的語言,而C++是非類型安全的語言
- Java實(shí)現(xiàn)SSL雙向認(rèn)證的方法
相關(guān)文章
Flex中的HDividedBox和VDividedBox的比較附圖
學(xué)習(xí)Flex的朋友對(duì)HDividedBox和VDividedBox并不陌生吧,下面是兩者的簡(jiǎn)單比較,感興趣的朋友可以參考下2013-10-10Flex 基于數(shù)據(jù)源的Menu Tree實(shí)現(xiàn)代碼
由外部參數(shù)flashvars指定數(shù)據(jù)源的文件位置或render鏈接,在源數(shù)據(jù)上加href和target屬性來控制打開窗口,可自定義父節(jié)點(diǎn)和子節(jié)點(diǎn)圖標(biāo),不設(shè)置采用系統(tǒng)默認(rèn),感興趣的你可以了解下啊,或許對(duì)你有所幫助2013-01-01獲取到AdvancedDataGrid選中行的全部數(shù)據(jù)
通過AdvancedDataGrid的id來獲取selectedItem和selectedItems屬性,下面有個(gè)不不錯(cuò)的示例大家可以參考下2014-02-02Flex4 使用itemRenderer 為Tree加線具體實(shí)現(xiàn)
本文為大家詳細(xì)介紹下Flex4如何使用itemRenderer 為Tree加線,感興趣的朋友可以參考下2013-12-12flex實(shí)現(xiàn)股票行情走勢(shì)圖示例代碼
股票行情走勢(shì)圖在flex中也可以實(shí)現(xiàn)了,具體步驟及代碼如下,感興趣的朋友可以參考下,或許有所幫助2013-10-10FLEX 獲取DataGrid行號(hào)和列號(hào)示例代碼
獲取DataGrid行號(hào)和列號(hào)在使用過程中還是蠻實(shí)用的,下面為大家詳細(xì)介紹下FLEX是如何做到的,感興趣的朋友可以了解下2013-09-09