Flex与Servlet通信 的简单计算器

说明:
前台供用户输入数字--->传递到后台-->进行计算--->把结果传递到前台。

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://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<mx:HTTPService id="sevlet" resultFormat="e4x" result="resultHandler(event)"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
var com:ArrayCollection = new ArrayCollection(["+","-","*","/"]);


private function calculate():void{
this.submit.enabled=false;
var url:String="http://localhost:8080/myReport/FlexCalculate";
this.sevlet.url=url;
var param:URLVariables=new URLVariables();
if(this.number1.text == "" || this.number2.text == ""){
Alert.show("请输入数字");
return;
}
param.number1=this.number1.text;
param.number2=this.number2.text;
param.opertion=this.myComboBox.text;
param.timestamp=(new Date()).toString();
this.sevlet.send(param);//
}
private function resultHandler(event:ResultEvent):void{
result.text = event.result.user
this.submit.enabled=true;
}
private function clean():void{
this.number1.text = "";
this.number2.text = "";
this.myComboBox.text = "+";
this.result.text = "";
}
]]>
</fx:Script>
<s:Panel width="500" height="300" title="计算器" backgroundColor="#8C7C73" verticalCenter="0" horizontalCenter="0">
<mx:VBox>
<mx:HBox>
<s:TextInput width="150" id="number1"/>
<mx:ComboBox id="myComboBox" x="10" y="10" dataProvider="{com}" width="50"/>
<s:TextInput width="150" id="number2"/>
<s:Button label="=" width="30" id="submit" click="calculate();"/>
<s:TextInput width="50" id="result"/>
</mx:HBox>
<mx:HBox>
<s:Button label="计算" width="230" click="calculate();"/>
<s:Button label="清除" width="230" click="clean();"/>
</mx:HBox>
</mx:VBox>
</s:Panel>
</s:Application>


servlet文件:
package controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FlexCalculate extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("1111");
System.out.println("number1:" + request.getParameter("number1"));
System.out.println("number2:" + request.getParameter("number2"));
System.out.println("opertion:" + request.getParameter("opertion"));
int result = 0;
if(request.getParameter("opertion").equals("+")){
result = Integer.valueOf(request.getParameter("number1")) + Integer.valueOf(request.getParameter("number2"));
}else if(request.getParameter("opertion").equals("-")){
result = Integer.valueOf(request.getParameter("number1")) - Integer.valueOf(request.getParameter("number2"));
}else if(request.getParameter("opertion").equals("*")){
result = Integer.valueOf(request.getParameter("number1")) * Integer.valueOf(request.getParameter("number2"));
}else{
result = Integer.valueOf(request.getParameter("number1")) / Integer.valueOf(request.getParameter("number2"));
}
System.out.println("result1:" + result);

request.setCharacterEncoding("UTF-8"); //flex中隐含为utf-8编码
response.setContentType("text/xml;charset=utf-8");
String para = request.getParameter("username");
PrintWriter out = response.getWriter();
out.println("<zpa>");
out.println("<user>"+result+"</user>");
out.println("</zpa>");
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值