Flex与Servlet交互

  1. addTime.mxml:  
  2.   
  3. <?xml version="1.0" encoding="utf-8"?>  
  4.   
  5. <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%">  
  6.   
  7.   
  8.   
  9. <!--加载页面时到该URL取值放入<mx:DataGrid>中-->  
  10.   
  11. <mx:Model source="http://localhost:8080/TestServlet/GetTime" id="alltime">    
  12.   
  13. </mx:Model>  
  14.   
  15.   
  16.   
  17. <mx:Script>  
  18.   
  19.     <![CDATA[ 
  20.  
  21.         import mx.rpc.events.ResultEvent; 
  22.  
  23.         import mx.controls.Alert; 
  24.  
  25.          
  26.  
  27.         private function check():void{ 
  28.  
  29.             var start:String=startTime.text; 
  30.  
  31.             var end:String=endTime.text; 
  32.  
  33.             if(start==null || end==null || start=="" || end==""){ 
  34.  
  35.                 Alert.show("请填写完整数据","信息提示"); 
  36.  
  37.             }else{ 
  38.  
  39.                 doSumit(); 
  40.  
  41.             } 
  42.  
  43.         } 
  44.  
  45.          
  46.  
  47.         //点击按钮触发提交事件 
  48.  
  49.         private function doSumit():void{ 
  50.  
  51.             submitButton.enabled=false;//按钮置为不可用 
  52.  
  53.              
  54.  
  55.             //URLVariables:应用程序和服务器之间传输变量 
  56.  
  57.             var params:URLVariables = new URLVariables(); 
  58.  
  59.              
  60.  
  61.             //传向的URL  此处的TestServlet/GetTime为我Tomcat下的工程TestServlet,及servlet映射GetTime 
  62.  
  63.             submitTime.url="http://localhost:8080/TestServlet/GetTime"; 
  64.  
  65.              
  66.  
  67.             //传输方法,经测试默认为get 
  68.  
  69.             submitTime.method="post"; 
  70.  
  71.              
  72.  
  73.             //params.startTime中的startTime是随意起的名称,后台jsp或servlet可用request.getParameter("startTime");来获取值 
  74.  
  75.             //startTime.text中的startTime是下面的<mx:TextInput>组件的id,其text属性为获取其文本内容 
  76.  
  77.             //<mx:TextInput>相当于<input type="text"> 
  78.  
  79.              
  80.  
  81.             params.startTime = startTime.text; 
  82.  
  83.             params.endTime = endTime.text; 
  84.  
  85.              
  86.  
  87.             submitTime.send(params);//发出发送指令 
  88.  
  89.         } 
  90.  
  91.         //HTTPService处理完提交数据后触发事件,有点类似于aJax的处理数据后对象状态为4时的执行处理 
  92.  
  93.         private function sentEnd(res:ResultEvent):void{ 
  94.  
  95.             Alert.show("数据已提交","提示信息");//提示框 
  96.  
  97.             submitButton.enabled=true;//按钮置为可用 
  98.  
  99.             startTime.text=""; 
  100.  
  101.             endTime.text=""; 
  102.  
  103.         } 
  104.  
  105.     ]]>  
  106.   
  107. </mx:Script>  
  108.   
  109.   
  110.   
  111. <!--数据通过HTTPService传输-->  
  112.   
  113.     <mx:HTTPService id="submitTime" result="sentEnd(event)"/>  
  114.   
  115.     <mx:Panel width="100%" height="502" layout="absolute" horizontalCenter="5">  
  116.   
  117.         <mx:HBox width="70%" height="8%" borderColor="#84CAFA" themeColor="#3AA7ED" borderStyle="outset" horizontalCenter="20">  
  118.   
  119.             <mx:Label text="设置批次" width="10%" fontSize="14" color="#275C7B"/>   
  120.   
  121.             <mx:Label text="开始时间:" fontSize="11"/>  
  122.   
  123.             <mx:TextInput id="startTime"/>  
  124.   
  125.             <mx:Label text="结束时间:" fontSize="11"/>  
  126.   
  127.             <mx:TextInput id="endTime"/>  
  128.   
  129.             <mx:Button id="submitButton" label="确定" fontSize="11" click="check()"/>  
  130.   
  131.         </mx:HBox>  
  132.   
  133.           
  134.   
  135.         <!--绑定DataGrid的数据源dataProvider-->  
  136.   
  137.         <mx:DataGrid dataProvider="{alltime.times}" horizontalCenter="4" verticalCenter="24" width="80%" height="80%" fontSize="11">  
  138.   
  139.             <mx:columns>  
  140.   
  141.                 <mx:DataGridColumn headerText="序号" dataField="id"/>  
  142.   
  143.                 <mx:DataGridColumn headerText="批次" dataField="time"/>  
  144.   
  145.                 <mx:DataGridColumn headerText="操作" dataField="act"/>  
  146.   
  147.                 <mx:DataGridColumn headerText="当前批次" dataField="isnow"/>  
  148.   
  149.             </mx:columns>  
  150.   
  151.         </mx:DataGrid>  
  152.   
  153.     </mx:Panel>  
  154.   
  155.       
  156.   
  157. </mx:Module>  
  158. -------------------------------------------------------------------------  
  1. //Servlet :(url)GetTime   
  2.   
  3.   
  4.   
  5. package servlet;  
  6.   
  7.   
  8.   
  9. import java.io.IOException;  
  10.   
  11. import java.io.PrintWriter;  
  12.   
  13.   
  14.   
  15. import javax.servlet.ServletException;  
  16.   
  17. import javax.servlet.http.HttpServlet;  
  18.   
  19. import javax.servlet.http.HttpServletRequest;  
  20.   
  21. import javax.servlet.http.HttpServletResponse;  
  22.   
  23.   
  24.   
  25. public class GetTime extends HttpServlet {  
  26.   
  27.   
  28.   
  29.     /** 
  30.  
  31.      * Constructor of the object. 
  32.  
  33.      */  
  34.   
  35.     public GetTime() {  
  36.   
  37.         super();  
  38.   
  39.     }  
  40.   
  41.   
  42.   
  43.     /** 
  44.  
  45.      * Destruction of the servlet. <br> 
  46.  
  47.      */  
  48.   
  49.     public void destroy() {  
  50.   
  51.         super.destroy(); // Just puts "destroy" string in log  
  52.   
  53.         // Put your code here   
  54.   
  55.     }  
  56.   
  57.   
  58.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  59.   
  60.             throws ServletException, IOException {  
  61.   
  62.   
  63.   
  64.         doPost(request,response);  
  65.   
  66.   
  67.   
  68.     }  
  69.   
  70.   
  71.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  72.   
  73.             throws ServletException, IOException {  
  74.   
  75.         response.setContentType("text/html");  
  76.   
  77.         response.setCharacterEncoding("utf-8");  
  78.   
  79.         PrintWriter out = response.getWriter();  
  80.   
  81.           
  82.   
  83.           
  84.   
  85.         if(request.getParameter("startTime")!=null){  
  86.   
  87.         //接收flex中参数,经不完全测试,只有该转码方式不为乱码  
  88.   
  89.             String startTime = new String(request.getParameter("startTime").getBytes("ISO-8859-1"),"UTF-8");  
  90.   
  91.             String endTime = new String(request.getParameter("endTime").getBytes("ISO-8859-1"),"UTF-8");  
  92.   
  93.           
  94.   
  95.             System.out.println(startTime+"  ***  "+endTime);  
  96.   
  97.         }else{  
  98.   
  99.         /**初始加载flex中addTime.mxml时从本servlet中取出所要在<mx:DataGrid>中显示的数据 
  100.  
  101.          * 目前鄙人只知道能够从xml中获取数据,所以通过servlet做出xml供flex取数据 
  102.  
  103.          * 正式项目时此处可改为从数据库取数据 
  104.  
  105.         **/  
  106.   
  107.             out.println("<?xml version='1.0' encoding='utf-8' ?>");  
  108.   
  109.             out.println("<alltime>");  
  110.   
  111.                 out.println("<times>");  
  112.   
  113.                     out.println("<id>1</id>");  
  114.   
  115.                     out.println("<time>2008-6-24</time>");  
  116.   
  117.                     out.println("<act>删除</act>");  
  118.   
  119.                     out.println("<isnow>是</isnow>");  
  120.   
  121.                 out.println("</times>");  
  122.   
  123.                 out.println("<times>");  
  124.   
  125.                     out.println("<id>2</id>");  
  126.   
  127.                     out.println("<time>2008-5-19</time>");  
  128.   
  129.                     out.println("<act>删除</act>");  
  130.   
  131.                     out.println("<isnow>否</isnow>");  
  132.   
  133.                 out.println("</times>");  
  134.   
  135.                 out.println("<times>");  
  136.   
  137.                     out.println("<id>3</id>");  
  138.   
  139.                     out.println("<time>2008-4-16</time>");  
  140.   
  141.                     out.println("<act>删除</act>");  
  142.   
  143.                     out.println("<isnow>否</isnow>");  
  144.   
  145.                 out.println("</times>");  
  146.   
  147.             out.println("</alltime>");  
  148.   
  149.             out.flush();  
  150.   
  151.             out.close();  
  152.   
  153.         }  
  154.   
  155.   
  156.   
  157.     }  
  158.   
  159.   
  160.   
  161.     /** 
  162.  
  163.      * Initialization of the servlet. <br> 
  164.  
  165.      * 
  166.  
  167.      * @throws ServletException if an error occurs 
  168.  
  169.      */  
  170.   
  171.     public void init() throws ServletException {  
  172.   
  173.         // Put your code here   
  174.   
  175.     }  
  176.   
  177.   
  178.   
  179. }  

相关文章

一:display:flex布局display:flex是一种布局方式。它即可以...
1. flex设置元素垂直居中对齐在之前的一篇文章中记载过如何...
移动端开发知识点pc端软件和移动端apppc端软件是什么,有哪些...
最近挺忙的,准备考试,还有其他的事,没时间研究东西,快周...
display:flex;把容器设置为弹性盒模型(设置为弹性盒模型之后...
我在网页上运行了一个Flex应用程序,我想使用Command←组合键...