• Flex与Java通信之HttpService


    flashbuilder4.6、myeclipse10

    参考:http://www.cnblogs.com/lovemoon714/archive/2012/05/25/2517684.html

    1、Flex端代码

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
     3                xmlns:s="library://ns.adobe.com/flex/spark" 
     4                xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
     5                initialize="init()">
     6     <fx:Declarations>
     7         <!-- 将非可视元素(例如服务、值对象)放在此处 -->
     8     </fx:Declarations>
     9     <fx:Script>
    10         <![CDATA[
    11             import mx.controls.Alert;
    12             import mx.rpc.events.FaultEvent;
    13             import mx.rpc.events.ResultEvent;
    14             import mx.rpc.http.HTTPService;
    15             
    16             private function init():void{ 
    17                 
    18                 //加载HTTPService的返回监听
    19                 httpSer.addEventListener(ResultEvent.RESULT,httpSerResultHandler);
    20                 httpSer.addEventListener(FaultEvent.FAULT,httpSerFaultHandler);
    21             }
    22             
    23             private function login():void{
    24                 httpSer.send();
    25             }
    26             
    27             //返回成功事件
    28             private function httpSerResultHandler(event:ResultEvent):void{
    29                 Alert.show(event.result.toString(),"登录提示");
    30             }
    31             //返回失败事件
    32             private function httpSerFaultHandler(event:FaultEvent):void{
    33                 Alert.show(event.fault.message as String,"登录提示"); 
    34             }
    35             
    36         ]]>
    37     </fx:Script>
    38     <fx:Declarations>
    39         <s:HTTPService id="httpSer" url="http://localhost:8080/JavaFlexHttp/FlexLoginServelt1" method="POST">
    40             <s:request>
    41                 <!--需要发送到服务器的参数名,及值,接收参数名时必须一致-->
    42                 <userName>{txt_userName.text}</userName>
    43                 <userPwd>{txt_userPwd.text}</userPwd>
    44             </s:request>
    45         </s:HTTPService>
    46     </fx:Declarations>
    47     <s:Panel x="37" y="40" width="250" height="200">
    48         <s:Label x="37" y="28" text="用户名:"/>
    49         <s:Label x="37" y="61" text="密    码:"/>
    50         <s:TextInput id="txt_userName" x="82" y="24"/>
    51         <s:TextInput id="txt_userPwd" x="83" y="56" displayAsPassword="true"/>
    52         <s:Button x="83" y="115" label="登录" id="btn_login" click="login()"/>
    53     </s:Panel>
    54 </s:Application>

    flex项目结构:

          

    2、Java端代码

     1 package com;
     2 import java.io.IOException;
     3 import java.io.PrintWriter;
     4 
     5 import javax.servlet.ServletException;
     6 import javax.servlet.http.HttpServlet;
     7 import javax.servlet.http.HttpServletRequest;
     8 import javax.servlet.http.HttpServletResponse;
     9 
    10 
    11 public class FlexLoginServelt extends HttpServlet {
    12     public void doPost(HttpServletRequest request, HttpServletResponse response)
    13             throws ServletException, IOException {
    14 
    15         response.setContentType("text/html");
    16         response.setContentType("text/xml;charset=utf-8");
    17         PrintWriter out = response.getWriter();
    18         //接收Flex端传来的参数
    19         String userName=request.getParameter("userName");
    20         String userPwd=request.getParameter("userPwd");
    21         String result="登录失败,用户名或密码错误!";
    22         if("admin".equals(userName) || "".equals(userPwd)){
    23             result="登录成功!";
    24         }
    25         //将登录信息返回给客户端
    26         out.println(result);
    27         out.flush();
    28         out.close();
    29     }
    30 }

    java项目结构:

    3、web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        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_2_5.xsd">
      <display-name></display-name>    
      <servlet>  
            <servlet-name>111</servlet-name>  <!-- 3 可随意取名 要和2一样-->
            <servlet-class>com.FlexLoginServelt</servlet-class>  <!-- 4 文件目录,注意添加包名-->
        </servlet>  
        <servlet-mapping>  
            <servlet-name>111</servlet-name>  <!-- 2 可随意取名 要和3一样-->
            <url-pattern>/FlexLoginServelt1</url-pattern>  <!-- 1 可随意取名-->
        </servlet-mapping>  
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      <!-- 访问顺序为1—>2—>3—>4,其中2和3的值必须相同。
            url-pattern 标签中的值是要在浏览器地址栏中输入的 url,可以自己命名,
            这个 url 访问名为 servlet-name 中值的 servlet,
            两个 servlet-name 标签的值必须相同, 因为通过 servlet 标签中的 servlet-name 标签映射到 servlet-class 标签中的值,
                最终访问 servlet-class 标签中的 class。
            还有,web.xml 的 / 表示的是http://localhost:8080/ + 工程名 
            而.jsp页面的action,加了/表示绝对路径http://localhost:8080/ ,没有加 / 表示的是相对路径 -->
    </web-app>

    结果:

  • 相关阅读:
    http 请求头设置缓存
    手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单
    django如何用邮箱代替用户名登录
    python函数式编程学习之map,reduce,filter,sorted
    python traceback学习(转)
    python logging模块学习(转)
    python pip安装lxml失败(转)
    python下性能提示
    python移植性提示
    python测试与调试提示
  • 原文地址:https://www.cnblogs.com/fangyu19900812/p/4826345.html
Copyright © 2020-2023  润新知