`

在javaweb项目中使用flex

    博客分类:
  • Flex
阅读更多
这里项目主要是以java web为例,在传统B/S项目中使用flex主要就是其通信方式,下面介绍几种思路:

第一种是HttpService方式,实例开路:helloworld太单调,以一个完整的登陆为例吧。
首先是Flex客户端代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
 layout="absolute" 
 backgroundGradientAlphas="[1.0, 1.0]" 
 backgroundGradientColors="[#11E3E6, #EBF9F8]">

//ActionScpipt代码 

<mx:Script>
 <![CDATA[
  import mx.rpc.events.FaultEvent;
  import mx.rpc.events.ResultEvent;
  import mx.controls.Alert;

//登陆成功进入的方法 

  public function handlePlain(event:ResultEvent):void{
   var str:String = event.result as String;//获得服务端返回结果
   success.text=str;
  } 
  //登陆失败触发的方法
  public function handleFault(event:FaultEvent):void{
   Alert.show(event.fault.faultString, "Error");
  }
  //前台验证(有了下面的flex自带验证框架,这里显得多余。。。。。。)
  public function login():void{
   if(""==username.text){
    trace(username.text.toString());//trace()方法调试时很有用,类似System.out.println()
    nameinfo.text="用户名不能为空";
   }else
   if(""==password.text){
    passwordinfo.text="密码不能为空";
   }else{
    testHttp.send();
   }
  }
 ]]>
</mx:Script>

//这里已post方式提交,至于传递参数主要有两种方式,第一种是URL后面加参数,如*.do?param1=**,个人倾向于第二种,就是下面这种,使用<mx:request>,showBusyCursor="true"表示等待时鼠标形状为等待状态
 <mx:HTTPService id="testHttp" method="pOST" url="http://localhost:8888/szsygl/login.do" showBusyCursor="true" result="handlePlain(event);" fault="handleFault(event);" >
  <mx:request xmlns="">
   <username>
    {username.text}
   </username>
   <password>
    {password.text}
   </password>
  </mx:request>
 </mx:HTTPService>

//Flex验证框架,很强大,还有PhoneNumberValidator,EmailValidator等等
 <mx:Validator id="pnV" source="{username}" property="text" 
 trigger="{btn}" triggerEvent="click" 
 requiredFieldError="用户名必填" /> 
    <mx:Validator id="checkpassword" source="{password}" property="text" 
 trigger="{btn}" triggerEvent="click"
 requiredFieldError="密码必填" /> 

//下面是组件,这里是随意界面拖拉排的版,不规范,flex的css有待提高,layout有三种属性,分别代表横向纵向及绝对定位,这里是绝对定位,panel组件给人感觉类似于html的div
 <mx:panel x="203.5" y="93" width="761" height="381" layout="absolute">
  <mx:Button x="324" y="169" id="btn" label="登陆" width="54" fontSize="12" click="login()" />
  <mx:TextInput x="324" y="106" id="password" fontSize="12" displayAsPassword="true"/>
  <mx:Button x="432" y="169" label="重置" fontSize="12"/>
  <mx:TextInput x="324" y="49" id="username" fontSize="12"/>
  <mx:Text x="239" y="48" text="用户名:" width="77" fontSize="16" height="49"/>
  <mx:Text x="239" y="105" text="密码:" fontSize="16" />
  <mx:Text x="492" y="49" text="" id="nameinfo"  width="156" height="24" fontSize="14" color="#F50F0A"/>
  <mx:Text x="492" y="106" text="" id="passwordinfo" width="156" height="24" fontSize="14" color="#F50F0A"/>
  <mx:Text x="324" y="10" id="success" text="" width="160" height="31" fontSize="15" color="#F50F0A"/>
 </mx:panel>
</mx:Application>

客户端代码就这么多了,很简单的几个组件及函数

服务端代码,简单起见,所有业务逻辑就在控制层完成吧

package cn.tohot.szsygl.flextest;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import cn.tohot.szsygl.common.BaseDao;
import cn.tohot.util.security.SecurityUtils;

/**
 *flex测试类
 * @version 1.0 2009-1-14
 * @author  zhanglu
 * @since   JDK 1.5.0_8
 */
public class FlexTestServlet extends HttpServlet{
 
 /**
  * 
  */
 private static final long serialVersionUID = 1L;
 
 private static final String LOAD_YH_DM = "from Yhxx where yhdm=?";
 private static final String LOAD_YH_MM = "from Yhxx where yhdm=? and yhmm=?";
 
 private BaseDao dao;
 
 
 //从spring工厂里面得到初始化数据库操作接口
 @Override
 public void init() throws ServletException {
  ApplicationContext  ctx  =  WebApplicationContextUtils.getWebApplicationContext(getServletContext()); 
  dao = (BaseDao)ctx.getBean("dao"); 
 }


 public void doGet(HttpServletRequest request,HttpServletResponse response){
  
 }
 
 
 public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {
  String name = request.getParameter("username");
  String password = request.getParameter("password");
  response.setCharacterEncoding("utf-8");
  printWriter writer = response.getWriter();
  if(null==name||"".equals(name)||!checkname(name)){
   writer.write("用户名不正确");
  }else if(null==password||"".equals(password)||!checkpassword(name,password)){
   writer.write("密码不正确");
  }else{
   writer.write("成功登陆");
  }
  writer.flush();
  writer.close();
 }
 //验证用户名 
 private boolean checkname(String name){
  List<?> list = dao.getHibernateTemplate().find(LOAD_YH_DM, name);
  if(list.isEmpty()){
   return false;
  }else{
   return true;
  }
 }
 //验证密码
 private boolean checkpassword(String name,String password){
  Object[] values= {name,SecurityUtils.md5Digest(password)};
  List<?> list = dao.getHibernateTemplate().find(LOAD_YH_MM, values);
  if(list.isEmpty()){
   return false;
  }else{
   return true;
  }
 }
}


还有些配置文件就不写了,这里传的是Sting,如果是复杂对象,如存放Map的List,可以用XML传输,flex对XML的支持是相当强大啊。

分享到:
评论
1 楼 ln987604356 2014-03-07  

相关推荐

    通过MyEclpise整合JAVA与FLEX进行通讯(通过将Flex工程加到Java web工程中)

    4. **配置Flex项目**:在Flex项目的属性设置中,需要配置Flex Build Path,确保其输出目录指向Java Web工程的WebContent/WEB-INF/flex目录,以便Flex编译后的SWF文件能被Java Web工程识别。 5. **编写Flex代码**:...

    Flex 和JAVAWEB整合文档

    在Flex客户端,使用`RemoteObject`或`HTTPService`组件来调用JavaWeb服务。`RemoteObject`适用于AMF通信,直接映射Java方法,而`HTTPService`则用于处理HTTP请求。在服务器端,需要配置相应的服务接口和实现,以处理...

    flex + java web 整合

    - 在Flex中通过Flex Remoting配置连接到Java服务。 6. **部署与测试**: - 将Flex项目生成的SWF文件和相应的配置文件部署到Web应用的Web-INF/flex目录下。 - 将Java Web项目打包成WAR文件,然后部署到Tomcat...

    构建全栈式Flex、BlazeDS和Spring集成解决方案

    3. **配置BlazeDS**:在Java项目中集成BlazeDS,配置相应的web.xml文件以启用BlazeDS服务,并在Flex项目中配置services-config.xml来指定与后端服务的连接。 4. **创建Spring服务**:使用Spring的注解或XML配置方式...

    创建Flex4和JavaWeb应用程序.pdf

    在服务器端,JavaWeb应用程序通常在Servlet容器(如Apache Tomcat)中运行。Java的强项在于其企业级功能,如Java档案文件(JAR)、Java Servlets和Java Persistence API(JPA)。JAR文件用于打包Java类和资源,而...

    javaweb表格宽度

    如果项目中使用了Bootstrap,可以通过其栅格系统来调整表格宽度。Bootstrap的列(Column)类可以用来创建响应式布局,通过`.col-*`类来定义不同屏幕尺寸下的宽度。 3. **JavaScript/jQuery动态调整** 当需要根据...

    Flex与Servlet之间数据的交互

    Flex与Servlet之间的数据交互是JavaWeb开发中的一个重要环节,它涉及到客户端富互联网应用程序(RIA)与服务器端数据处理的协同工作。Flex作为一个基于Adobe Flash Player的前端开发框架,主要用于创建具有丰富用户...

    flex于java web通信方式,总结文本文件

    在Flex中,`RemoteObject`组件是实现AMF通信的核心组件之一。它提供了一种简单的方式与远程服务器上的服务进行交互。通过配置`RemoteObject`,可以指定连接信息、服务路径等参数,从而实现调用后端的服务方法。 ###...

    Flex+Java开发拓扑图

    在本项目中,Flex被用来设计和实现拓扑图的显示部分,提供良好的可视化效果和用户交互体验。 ActionScript是Adobe Flash Player和Adobe AIR支持的脚本语言,它为Flex提供了编程能力。在这个拓扑图项目中,...

    基于javaWeb的点餐系统源码.zip

    前后端分离项目,后端使用javaWeb原生的Servlet编写,前端使用Vue2,结合Element-UI 和Vant-UI进行编写,目前只上传了后端代码,前端代码还在整理 数据库是Mysql8、使用了Redis和JWT用于实现认证授权以及单点登录,...

    小游戏FLEX+JAVA

    在Flex中,我们可以使用MXML来定义用户界面,包括按钮(代表游戏的三个选项:石头、剪刀、布)和显示结果的文本或图像。ActionScript用于处理用户交互,比如监听按钮点击事件,调用Java后端进行游戏逻辑计算。 在...

    Flex 整合java基础资料

    5. **添加JavaWeb组件**:为了实现Flex与Java的交互,你需要将JavaWeb组件引入到项目中,这通常包括Servlet、JSP等。 6. **取消创建web.xml**:在配置过程中,应取消创建web.xml的默认设置,转而手动配置适合项目...

    BlazeDS 整合 Flex HelloWorld 示例

    BlazeDS 整合 Flex HelloWorld 示例是一个初学者入门教程,主要介绍了如何在JavaEE环境中集成BlazeDS和Flex,创建一个简单的远程调用服务。BlazeDS是一个开源项目,提供了与Adobe Flex之间的实时数据交互,使得Flex...

    flex+java(包含工程的搭建说明、blazeds.war及源码)

    这些服务需要实现特定的接口,这些接口将在Flex中通过AMF调用。 总的来说,这个压缩包提供了从头开始构建Flex和Java集成应用的资源。通过阅读提供的文档,理解AMF通信机制,配置BlazeDS,以及编写和部署Java服务,...

    Java在WEB开发领域的革新

    例如,使用Adobe Flash为基础的RIA解决方案,如Flex或ActionScript,可以构建出无需服务器端View层的应用,同时避免了session信息的处理。这使得JavaWeb框架有机会简化其结构,专注于业务逻辑和服务的实现,而不再是...

    flex_oa项目完全能运行

    目前网站中很少有flex与java集成的项目,这个项目做的比较详细,非常好,对于大家学习真的很有帮助,如果没帮助的话,你们可以拍我...我自己也在学习研究中,希望对大家有帮助,大家共同进步...其他废话我也不多说了...

    基于Java web的水费缴纳管理系统.doc

    在系统设计上,选择了Eclipse作为开发平台,其强大的集成开发环境为项目的实施提供了便利。系统通过Flex与J2EE服务器的Web Service交互,实现了数据的动态传递。Flex作为一个富互联网应用程序(RIA)框架,使得用户...

    Javaweb前传(html,javascript,css)

    在压缩包中的`javascript_src`目录,可能包含了JavaScript的基础教程、示例代码或相关项目的源码,学习者可以通过这些材料理解变量、函数、对象、事件、DOM操作等概念,并逐步掌握JavaScript的编程技巧。 `css+div_...

Global site tag (gtag.js) - Google Analytics