`
flash59
  • 浏览: 97731 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

flash+struts的小应用

    博客分类:
  • WEB
阅读更多

前言:原创,实现flash结合struts框架的一个小应用。

============================================================================================

一、开发环境:

1、elcipse3.2+myEclipse5.5;Tomcat5.5;数据库用的是ORACL9i(用什么数据库都可以)

2、flash8+as2.0;struts1.2.9

原理分析:先空着回来补上,今天写不完。。

二、开发步骤:

1、配置环境:在eclipse中先建立一个web projecet,将struts需要的jar文件加入到WEB-INF/lib中

      jar文件的列表:关于这些包的取得,可以到网上查一下,都可轻松找到。

  1. antlr.jar   
  2. commons-beanutils.jar   
  3. commons-digester.jar   
  4. commons-fileupload.jar   
  5. commons-logging.jar   
  6. commons-validator.jar   
  7. jakarta-oro.jar   
  8. jdom.jar   
  9. mysql-connector-java-5.0.3-bin.jar   
  10. ojdbc14.jar   
  11. struts.jar  

2、配置好WEB-INF中web.xml;

  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  3.   <servlet>  
  4.     <servlet-name>actionservlet-name>  
  5.     <servlet-class>org.apache.struts.action.ActionServletservlet-class>  
  6.     <init-param>  
  7.       <param-name>configparam-name>  
  8.       <param-value>/WEB-INF/struts-config.xmlparam-value>  
  9.     init-param>  
  10.     <init-param>  
  11.       <param-name>debugparam-name>  
  12.       <param-value>3param-value>  
  13.     init-param>  
  14.     <init-param>  
  15.       <param-name>detailparam-name>  
  16.       <param-value>3param-value>  
  17.     init-param>  
  18.     <load-on-startup>0load-on-startup>  
  19.   servlet>  
  20.   <servlet-mapping>  
  21.     <servlet-name>actionservlet-name>  
  22.     <url-pattern>*.dourl-pattern>  
  23.   servlet-mapping>  
  24. web-app>  

3、在WEB-INF中创建struts-config.xml

  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <!---->>  
  3.   
  4. <struts-config>  
  5.   <data-sources />  
  6.   <form-beans >  
  7.     <form-bean name="DomainNameAcionForm" type="com.test.actionforms.DomainNameActionForm" />  
  8.   
  9.   form-beans>  
  10.   
  11.   <global-exceptions />  
  12.   <global-forwards />  
  13.   <action-mappings >  
  14.     <action  
  15.       path="/PlaceQueryAction"  
  16.       type="com.test.actions.PlaceQueryAction"  
  17.       validate="false"/>  
  18.     <action  
  19.       path="/Index"  
  20.       type="com.test.actions.Index"  
  21.       validate="false">  
  22.       <forward name="ok" path="/jsps/index.jsp" />  
  23.     action>  
  24.     <action  
  25.       attribute="DomainNameActionForm"  
  26.       input="/jsps/showInfo.jsp"  
  27.       name="DomainNameAcionForm"  
  28.       path="/DomainNameAcion"  
  29.       scope="request"  
  30.       type="com.test.actions.DomainNameAcion"  
  31.       validate="true">  
  32.       <forward name="ok" path="/jsps/showInfo.jsp" />  
  33.     action>  
  34.   
  35.   action-mappings>  
  36.   
  37.   <message-resources parameter="com.test.actions.ApplicationResources" />  
  38. struts-config>  
  39.   

4、依照struts的规则,创建action,还好,应用很小,只是个示例程序,都能看懂。

com.test.actions.PlaceQueryAction代码
  1. package com.test.actions;   
  2. /*  
  3.  * Generated by MyEclipse Struts  
  4.  * Template path: templates/java/JavaClass.vtl  
  5.  */  
  6. import java.io.IOException;   
  7.   
  8. import javax.servlet.http.HttpServletRequest;   
  9. import javax.servlet.http.HttpServletResponse;   
  10. import org.apache.struts.action.Action;   
  11. import org.apache.struts.action.ActionForm;   
  12. import org.apache.struts.action.ActionForward;   
  13. import org.apache.struts.action.ActionMapping;   
  14.   
  15. import com.test.dao.DataAccessDao;   
  16. import com.test.util.Constants;   
  17.   
  18. /**   
  19.  * MyEclipse Struts  
  20.  * Creation date: 07-11-2007  
  21.  *   
  22.  * XDoclet definition:  
  23.  * @struts.action  
  24.  * @struts.action-forward name="ok" path="/jsps/index.jsp" contextRelative="true"  
  25.  */  
  26. public class PlaceQueryAction extends Action {   
  27.     /*  
  28.      * Generated Methods  
  29.      */  
  30.   
  31.     /**   
  32.      * Method execute  
  33.      * @param mapping  
  34.      * @param form  
  35.      * @param request  
  36.      * @param response  
  37.      * @return ActionForward  
  38.      */  
  39.     public ActionForward execute(ActionMapping mapping, ActionForm form,   
  40.             HttpServletRequest request, HttpServletResponse response) {   
  41.            
  42.         //test   
  43.         //System.out.println("PlaceQueryAction**************************************************************************************************");   
  44.            
  45.         // TODO Auto-generated method stub   
  46.         response.setCharacterEncoding("utf-8");   
  47.         response.setContentType("txt/html");   
  48.          //获得查询参数   
  49.         String queryArea = request.getParameter("queryArea");//查询的地区   
  50.         String projectname=request.getContextPath();   
  51.         Constants.projectname=projectname.substring(1, projectname.length());   
  52.         //设置查询条件   
  53.         DataAccessDao dataQuery = new DataAccessDao();   
  54.         if(dataQuery.rebuldData(queryArea))   
  55.         {   
  56.             try{   
  57.                 response.getWriter().write("&OK=0&reason=");//查询成功返回0   
  58.             }catch(IOException e)   
  59.             {   
  60.                 System.err.println("******1response writeback error!******");   
  61.                 e.printStackTrace();   
  62.             }   
  63.         }else  
  64.         {   
  65.             try{   
  66.                 response.getWriter().write("&OK=1&reason=生成XML出错!");//查询失败返回1   
  67.             }catch(IOException e)   
  68.             {   
  69.                 System.err.println("******2response writeback error!******");   
  70.                 e.printStackTrace();   
  71.             }   
  72.         }   
  73.         return null;   
  74.     }   
  75. }  

5、创建actionform,哦对了,不需要,继续...连接数据库。。

DataAccessDao.java 代码
  1. /*需要什么包就自己加,限于篇幅这里没加,SysReportHelper类与本系统没太大关系,就是一个存储数据的对象,这里没有创建,这些代码都能看懂,不用多说了吧。。
  2. */
  3. public class DataAccessDao {   
  4.     /**  
  5.      * @param PlaceData  
  6.      * @return ArrayList  
  7.      */  
  8.     public ArrayList<sysreporthelper></sysreporthelper> getData(String app) {   
  9.         Connection connection =getDBConnection(Constants.MYSQL_DRIVER,Constants.MYSQL_URL,   
  10.                    Constants.MYSQL_USER_NAME,Constants.MYSQL_PASSWORD);   
  11.         Statement statement=null;   
  12.         ArrayList<sysreporthelper></sysreporthelper> pList = new ArrayList<sysreporthelper></sysreporthelper>();   
  13.            
  14.         ResultSet resultSet = null;   
  15.         String sql = null;   
  16.         if (app != null && app.equals(Constants.DIS_APPROVED)) {   
  17.             sql = "SELECT * FROM sysreport";   
  18.         } else if (app != null && app.equals(Constants.APPROVED)) {   
  19.             sql = "SELECT * FROM statreport_p";   
  20.         }   
  21.         try {   
  22.             statement = connection.createStatement();   
  23.             resultSet = statement.executeQuery(sql);   
  24.             // 读出数据   
  25.             while (resultSet.next()) {   
  26.                 data.setZhuhai(resultSet.getString("ZH"));   
  27.                 pList.add(data);   
  28.             }   
  29.                
  30.         } catch (SQLException e) {   
  31.             System.err.print("*****SQLException:query error(执行查询出错)*****");   
  32.             e.printStackTrace();   
  33.         }finally  
  34.         {   
  35.             try{   
  36.                 resultSet.close();   
  37.                 statement.close();   
  38.                 connection.close();   
  39.             }   
  40.             catch(SQLException e)   
  41.             {   
  42.                 e.printStackTrace();   
  43.             }   
  44.         }   
  45.         return pList;   
  46.     }   
  47. /**  
  48.      *   
  49.      * @return Connection  
  50.      */  
  51.     private Connection getDBConnection(String driver,String url,String username,String pwd) {   
  52.         Connection connection = null;   
  53.         // 连接DB   
  54.         try {   
  55.             Class.forName(driver);   
  56.             connection = DriverManager.getConnection(url,username, pwd);   
  57.         } catch (SQLException e) {   
  58.             System.err.println("******unable to connect database!(无法连接数据库)******");   
  59.             e.printStackTrace();   
  60.         } catch (ClassNotFoundException e) {   
  61.             System.err.println("******fail to load JDBC/ODBC(加载JDBC/ODBC失败)*******");   
  62.             e.printStackTrace();   
  63.         }   
  64.         return connection;   
  65.     }   
  66. }  
 6、创建个index.jsp把flash动画嵌进去。。注意代码里面的两个javascript函数,现在用不到,我没有删。
index.jsp代码
  1. <%@ page language="java" pageEncoding="UTF-8"%>    
  2. <%@ page contentType="text/html; charset=UTF-8" %>  
  3. <html>  
  4.   <head>  
  5.     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">  
  6.     <title>Flash page</title>  
  7. </head>  
  8.   <body>  
  9.     <table>  
  10.       <tr>  
  11.         <td>  
  12.           <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="550" height="400">  
  13.             <param name="movie" value="<%=request.getContextPath()%>/swfs/ChinaMap/main.swf">  
  14.                <param name="quality" value="high"/>  
  15.                <embed src="<%=request.getContextPath()%>/swfs/ChinaMap/main.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="550" height="400"></embed>  
  16.           </object>  
  17.         </td>  
  18.         <td>  
  19.            <iframe id="right_ifr" src="<%=request.getContextPath()%>/jsps/showInfo.jsp" frameBorder=0  
  20.                    width=410 scrolling=yes height=500>  
  21.            </iframe>  
  22.           </td>  
  23.       </tr>  
  24.   </table>  
  25.   </body>  
  26. </html>  

7、开始创建flash动画,动画名称要和JSP中的一致,这里取名main.swf,大家可以自己做个按钮和一个textfield做测试即可。在按钮按下时,触发以下动作:

     (由于代码属于一个项目不能全贴出来,只能拿关键部分贴出来,所以有些跳跃,不过思路是正确的。)

ActionScript代码
  1. function loadInfo(queryArea)   
  2. {   
  3.     var loadcom = new LoadVars();   
  4.     //STRUTS 2.0   
  5.     //var temp="com/test/actions/getData.action?queryArea=";   
  6.     //Struts 1.2.9   
  7.     var temp="PlaceQueryAction.do?queryArea=";   
  8.     var queryStr=_root.projecturl+temp+queryArea+"&randNum="+Math.random(1)*100;   
  9.     _root.loadinfos.text="查询...";   
  10.     loadcom.sendAndLoad(queryStr, loadcom, "post");   
  11.     loadcom.onLoad = function(OK) {    
  12.     if (OK)    
  13.     {    
  14.         if(loadcom.OK==0)   
  15.         {   
  16.             if(loadIndata(queryArea))   
  17.             {   
  18.                 _root.Maps.gotoAndPlay("ShowMap");   
  19.             }else  
  20.             {   
  21.                 _root.loadinfos.text="无法加载XML!";   
  22.             }   
  23.         }else if(loadcom.OK==1)   
  24.         {   
  25.             _root.loadinfos.text="内部错误:"+loadcom.reason;   
  26.         }   
  27.     } else {   
  28.     //输出文本内容    
  29.     _root.loadinfos.text="通讯失败:无法连接服务器!";   
  30.     textformat.color=errorcolor;   
  31.     _root.loadinfos.setTextFormat(textformat);   
  32.     }    
  33.   }   
  34. };  

好了,基本上就可以测试了,嘿嘿,写的简单了点。慢慢把条理整清楚。。。

 

分享到:
评论

相关推荐

    java+struts+swfupload文件上传下载

    Java、Struts和SwfUpload是开发Web应用中常见的技术栈,主要用于实现文件上传和下载功能。在这篇文章中,我们将深入探讨如何利用这些技术来构建一个高效、安全的文件管理系统。 首先,Java作为服务器端的主要编程...

    flex+Struts实例

    Flex是一种基于Adobe Flash Player的富互联网应用程序(RIA)框架,主要用于创建动态、交互式的用户界面。而Struts是Java平台上的一个开源MVC(Model-View-Controller)框架,用于构建结构化的Web应用。两者结合可以...

    jquery+uploadify + struts2 + jsp 图片批量上传Demo

    在本文中,我们将深入探讨如何使用jQuery、Uploadify、Struts2和JSP技术实现一个图片批量上传的Demo。这个组合提供了高效、用户友好的文件上传解决方案,特别适合需要处理大量图片的Web应用。 首先,jQuery是一个轻...

    Flex+struts2+hibernate例子

    1. **环境配置**:确保开发环境正确,包括安装Flex Builder或Flash Builder,设置Struts2和Hibernate的开发环境,以及MySQL数据库的配置。 2. **创建Flex界面**:使用MXML和ActionScript定义Flex界面,创建数据网格...

    lib2 flex+struts2+spring+ibatis 完整的jar 需要下载我提供的资源lib1

    1. Flex:Flex是一种基于ActionScript和Flash Player或Adobe AIR的开源框架,用于创建富互联网应用程序(RIA)。它允许开发者创建具有丰富用户体验的交互式用户界面,与后端服务器进行数据交换。在Java后端,Flex...

    swfuplaod+struts2实现多文件上传

    1. **添加依赖**:首先,需要在项目中引入SWFUpload的JavaScript库和Flash对象,以及Struts2的相关依赖。 2. **配置SWFUpload**:在HTML页面中,通过JavaScript调用SWFUpload初始化方法,配置文件选择、文件类型...

    jsp+flash web摄像保存图片到本地

    6. JPEG编码:Flash可以将捕获的视频帧转换为JPEG格式的图像,这使得数据量更小,更适合在网络上传输。然后,这些JPEG图像可以通过NetStream发送到服务器。 7. JSP接收图像:在服务器端,JSP页面需要接收来自Flash...

    图片上传成功实例java+struts1

    Struts1是一个基于MVC(Model-View-Controller)设计模式的Java Web开发框架,用于构建结构化的Web应用程序。在图片上传实例中,Struts1主要负责接收前端发送的文件数据,进行业务逻辑处理,然后将处理结果返回给...

    lib1 flex+spring+struts2+ibatis需要的jar 1 完整的jar 需要下载我提供的资源lib2

    3. **Struts2**:Struts2是Apache软件基金会的一个开源MVC框架,用于构建基于Java EE的Web应用程序。它通过使用模型-视图-控制器(MVC)架构模式,帮助开发者组织代码,提高可维护性和可测试性。Struts2提供了强大的...

    spring2.5+struts2+hibernate3.2=ssh项目框架源码

    SSH是Java开发中非常经典的一种企业级应用框架组合,由Spring、Struts和Hibernate三个开源框架集成而成。这个项目的源码提供了使用Spring 2.5、Struts 2和Hibernate 3.2构建应用程序的实例,这对于学习和理解SSH框架...

    jquery.uploadify+Struts2整合配置

    通过以上步骤,我们可以实现一个基本的jQuery Uploadify与Struts2的整合应用。为了满足自定义需求,可以进一步扩展Uploadify的回调函数,例如在上传开始、进度更新、完成或错误时执行特定逻辑。同时,Struts2 Action...

    JAVA+Struts2+swfupload文件上传下载

    在IT行业中,文件上传下载是Web应用中常见的功能,特别是在涉及到用户交互和数据交换的系统中。本项目基于JAVA、Struts2框架以及swfupload插件,提供了一个完整的文件上传下载解决方案。以下是对这个项目的详细解读...

    swfupload+struts2多文件上传的例子

    在IT行业中,文件上传是网页应用中常见的功能之一,尤其在大数据时代,用户可能需要上传大量的图片、文档或视频。本教程将详细讲解如何利用SWFUpload与Struts2框架来实现多文件上传的示例。 首先,让我们了解...

    Struts2 经典flash上传文件

    Struts2是一个强大的Java web框架,它为开发者提供了构建MVC(模型-视图-控制器)应用程序的结构和工具。在Struts2中,文件上传是常见的功能,尤其是在处理用户表单时,如图片、文档等文件的上传。在本案例中,我们...

    struts应用连接数据库

    在“Struts应用连接数据库”的场景下,我们通常会利用Struts的Action类来处理用户请求,并通过DAO(Data Access Object)设计模式与数据库进行交互,从而实现从数据库读取信息来验证用户的功能。 1. Struts 框架...

    flex+struts

    Flex应用运行在Flash Player或Adobe AIR环境中,提供了跨平台的兼容性。 2. **Struts**: Struts 是一个基于Java Servlet和JSP的开源MVC框架,它的核心目标是帮助开发者构建结构清晰、易于维护的Web应用。通过将业务...

    Struts2+freemarker+flash 采集摄像头头像

    Struts2、Freemarker和Flash的结合使用主要涉及到Web开发中的前端与后端交互,以及用户头像的采集和展示。在这个项目中,开发者可能利用Struts2作为MVC框架处理HTTP请求,Freemarker作为模板引擎动态生成网页内容,...

    Struts2+flash实现的上传和下载

    将Struts2与Flash结合,可以实现动态、富媒体的文件上传和下载功能,这对于用户界面友好、交互性强的Web应用尤其重要。 首先,理解Struts2的Action机制是关键。Action是处理用户请求的核心,它接收表单数据,进行...

    最经典的java+php+flash+Asp集合

    它支持矢量图形、音频、视频和交互式应用程序的开发,尤其在互联网早期,Flash在创建富媒体体验方面发挥了重要作用。然而,随着HTML5的兴起,Flash逐渐被替代,因为HTML5提供了原生的多媒体支持,且在移动设备上的...

Global site tag (gtag.js) - Google Analytics