- 浏览: 97695 次
- 性别:
- 来自: 北京
最新评论
-
南星_JAVA:
看似很简单,一琢磨深藏奥秘!
java数组的深度思考【转】 -
sujun7758:
好!
java 日期API的应用 -
shuchaoo:
三星你也去啊?
三星数据(中国)研发中心面试经历。。 -
Alrale:
quiii 写道rubylover 写道初始是电话面试吗?对好 ...
三星数据(中国)研发中心面试经历。。 -
quiii:
rubylover 写道初始是电话面试吗?对好像必须过四级。
...
三星数据(中国)研发中心面试经历。。
前言:原创,实现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文件的列表:关于这些包的取得,可以到网上查一下,都可轻松找到。
- antlr.jar
- commons-beanutils.jar
- commons-digester.jar
- commons-fileupload.jar
- commons-logging.jar
- commons-validator.jar
- jakarta-oro.jar
- jdom.jar
- mysql-connector-java-5.0.3-bin.jar
- ojdbc14.jar
- struts.jar
2、配置好WEB-INF中web.xml;
- <!---->xml version="1.0" encoding="UTF-8"?>
- <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">
- <servlet>
- <servlet-name>actionservlet-name>
- <servlet-class>org.apache.struts.action.ActionServletservlet-class>
- <init-param>
- <param-name>configparam-name>
- <param-value>/WEB-INF/struts-config.xmlparam-value>
- init-param>
- <init-param>
- <param-name>debugparam-name>
- <param-value>3param-value>
- init-param>
- <init-param>
- <param-name>detailparam-name>
- <param-value>3param-value>
- init-param>
- <load-on-startup>0load-on-startup>
- servlet>
- <servlet-mapping>
- <servlet-name>actionservlet-name>
- <url-pattern>*.dourl-pattern>
- servlet-mapping>
- web-app>
3、在WEB-INF中创建struts-config.xml
- <!---->xml version="1.0" encoding="UTF-8"?>
- <!---->>
- <struts-config>
- <data-sources />
- <form-beans >
- <form-bean name="DomainNameAcionForm" type="com.test.actionforms.DomainNameActionForm" />
- form-beans>
- <global-exceptions />
- <global-forwards />
- <action-mappings >
- <action
- path="/PlaceQueryAction"
- type="com.test.actions.PlaceQueryAction"
- validate="false"/>
- <action
- path="/Index"
- type="com.test.actions.Index"
- validate="false">
- <forward name="ok" path="/jsps/index.jsp" />
- action>
- <action
- attribute="DomainNameActionForm"
- input="/jsps/showInfo.jsp"
- name="DomainNameAcionForm"
- path="/DomainNameAcion"
- scope="request"
- type="com.test.actions.DomainNameAcion"
- validate="true">
- <forward name="ok" path="/jsps/showInfo.jsp" />
- action>
- action-mappings>
- <message-resources parameter="com.test.actions.ApplicationResources" />
- struts-config>
4、依照struts的规则,创建action,还好,应用很小,只是个示例程序,都能看懂。
com.test.actions.PlaceQueryAction代码
- package com.test.actions;
- /*
- * Generated by MyEclipse Struts
- * Template path: templates/java/JavaClass.vtl
- */
- import java.io.IOException;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.struts.action.Action;
- import org.apache.struts.action.ActionForm;
- import org.apache.struts.action.ActionForward;
- import org.apache.struts.action.ActionMapping;
- import com.test.dao.DataAccessDao;
- import com.test.util.Constants;
- /**
- * MyEclipse Struts
- * Creation date: 07-11-2007
- *
- * XDoclet definition:
- * @struts.action
- * @struts.action-forward name="ok" path="/jsps/index.jsp" contextRelative="true"
- */
- public class PlaceQueryAction extends Action {
- /*
- * Generated Methods
- */
- /**
- * Method execute
- * @param mapping
- * @param form
- * @param request
- * @param response
- * @return ActionForward
- */
- public ActionForward execute(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) {
- //test
- //System.out.println("PlaceQueryAction**************************************************************************************************");
- // TODO Auto-generated method stub
- response.setCharacterEncoding("utf-8");
- response.setContentType("txt/html");
- //获得查询参数
- String queryArea = request.getParameter("queryArea");//查询的地区
- String projectname=request.getContextPath();
- Constants.projectname=projectname.substring(1, projectname.length());
- //设置查询条件
- DataAccessDao dataQuery = new DataAccessDao();
- if(dataQuery.rebuldData(queryArea))
- {
- try{
- response.getWriter().write("&OK=0&reason=");//查询成功返回0
- }catch(IOException e)
- {
- System.err.println("******1response writeback error!******");
- e.printStackTrace();
- }
- }else
- {
- try{
- response.getWriter().write("&OK=1&reason=生成XML出错!");//查询失败返回1
- }catch(IOException e)
- {
- System.err.println("******2response writeback error!******");
- e.printStackTrace();
- }
- }
- return null;
- }
- }
5、创建actionform,哦对了,不需要,继续...连接数据库。。
DataAccessDao.java 代码
- /*需要什么包就自己加,限于篇幅这里没加,SysReportHelper类与本系统没太大关系,就是一个存储数据的对象,这里没有创建,这些代码都能看懂,不用多说了吧。。
- */
- public class DataAccessDao {
- /**
- * @param PlaceData
- * @return ArrayList
- */
- public ArrayList<sysreporthelper></sysreporthelper> getData(String app) {
- Connection connection =getDBConnection(Constants.MYSQL_DRIVER,Constants.MYSQL_URL,
- Constants.MYSQL_USER_NAME,Constants.MYSQL_PASSWORD);
- Statement statement=null;
- ArrayList<sysreporthelper></sysreporthelper> pList = new ArrayList<sysreporthelper></sysreporthelper>();
- ResultSet resultSet = null;
- String sql = null;
- if (app != null && app.equals(Constants.DIS_APPROVED)) {
- sql = "SELECT * FROM sysreport";
- } else if (app != null && app.equals(Constants.APPROVED)) {
- sql = "SELECT * FROM statreport_p";
- }
- try {
- statement = connection.createStatement();
- resultSet = statement.executeQuery(sql);
- // 读出数据
- while (resultSet.next()) {
- data.setZhuhai(resultSet.getString("ZH"));
- pList.add(data);
- }
- } catch (SQLException e) {
- System.err.print("*****SQLException:query error(执行查询出错)*****");
- e.printStackTrace();
- }finally
- {
- try{
- resultSet.close();
- statement.close();
- connection.close();
- }
- catch(SQLException e)
- {
- e.printStackTrace();
- }
- }
- return pList;
- }
- /**
- *
- * @return Connection
- */
- private Connection getDBConnection(String driver,String url,String username,String pwd) {
- Connection connection = null;
- // 连接DB
- try {
- Class.forName(driver);
- connection = DriverManager.getConnection(url,username, pwd);
- } catch (SQLException e) {
- System.err.println("******unable to connect database!(无法连接数据库)******");
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- System.err.println("******fail to load JDBC/ODBC(加载JDBC/ODBC失败)*******");
- e.printStackTrace();
- }
- return connection;
- }
- }
6、创建个index.jsp把flash动画嵌进去。。注意代码里面的两个javascript函数,现在用不到,我没有删。
index.jsp代码
- <%@ page language="java" pageEncoding="UTF-8"%>
- <%@ page contentType="text/html; charset=UTF-8" %>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <title>Flash page</title>
- </head>
- <body>
- <table>
- <tr>
- <td>
- <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">
- <param name="movie" value="<%=request.getContextPath()%>/swfs/ChinaMap/main.swf">
- <param name="quality" value="high"/>
- <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>
- </object>
- </td>
- <td>
- <iframe id="right_ifr" src="<%=request.getContextPath()%>/jsps/showInfo.jsp" frameBorder=0
- width=410 scrolling=yes height=500>
- </iframe>
- </td>
- </tr>
- </table>
- </body>
- </html>
7、开始创建flash动画,动画名称要和JSP中的一致,这里取名main.swf,大家可以自己做个按钮和一个textfield做测试即可。在按钮按下时,触发以下动作:
(由于代码属于一个项目不能全贴出来,只能拿关键部分贴出来,所以有些跳跃,不过思路是正确的。)
ActionScript代码
- function loadInfo(queryArea)
- {
- var loadcom = new LoadVars();
- //STRUTS 2.0
- //var temp="com/test/actions/getData.action?queryArea=";
- //Struts 1.2.9
- var temp="PlaceQueryAction.do?queryArea=";
- var queryStr=_root.projecturl+temp+queryArea+"&randNum="+Math.random(1)*100;
- _root.loadinfos.text="查询...";
- loadcom.sendAndLoad(queryStr, loadcom, "post");
- loadcom.onLoad = function(OK) {
- if (OK)
- {
- if(loadcom.OK==0)
- {
- if(loadIndata(queryArea))
- {
- _root.Maps.gotoAndPlay("ShowMap");
- }else
- {
- _root.loadinfos.text="无法加载XML!";
- }
- }else if(loadcom.OK==1)
- {
- _root.loadinfos.text="内部错误:"+loadcom.reason;
- }
- } else {
- //输出文本内容
- _root.loadinfos.text="通讯失败:无法连接服务器!";
- textformat.color=errorcolor;
- _root.loadinfos.setTextFormat(textformat);
- }
- }
- };
好了,基本上就可以测试了,嘿嘿,写的简单了点。慢慢把条理整清楚。。。
发表评论
-
IE6以后版本,去除页面控件的虚线框的方法
2008-04-18 09:54 1753新版本的IE,用户不能直接与 APPLET、EMBED 或 O ... -
eclipse3.3中使用CXF开发HelloWorld程序
2008-01-10 18:54 6395开发环境的配置: 1、下载并安装eclipse3.3或更高版本 ... -
异步入门小程序
2007-12-11 19:03 1122重新做个省市关联的小程序,修正一下思路,自己参看JS的DOC和 ... -
jsp页面中打印出用,能取得的各种路径
2007-07-23 21:33 1875在registerNetinfo.jsp页面中输入这些东东: ... -
ajax基础
2007-07-16 20:37 963前言:讲得很不错,不过贴到这上面,代码就乱了,所以记下地址,以 ... -
用java向一个Web站点发送POST请求
2007-07-16 20:17 1847向一个Web站点发送POST请求只需要简单的几步: 首先要和 ... -
Ajax 编写的用户注册实例及技术小节
2007-07-16 19:59 1404我所举的这个例子是一个企业用户注册时的一个应用,当用户注册时检 ... -
用eclipse配置struts,手写的action无效?
2007-07-11 18:48 2123前言:昨天搭建struts环境时遇到一个蹊跷的事情:所有最简需 ... -
javascript调用xmlhttp不刷新取得数据
2007-07-06 09:49 1682js 代码 <script lang ... -
struts 2.08 的HelloWorld配置错误
2007-07-04 16:09 3213在Eclipse3.2+MyEclipse5.5+Tomcat ...
相关推荐
Java、Struts和SwfUpload是开发Web应用中常见的技术栈,主要用于实现文件上传和下载功能。在这篇文章中,我们将深入探讨如何利用这些技术来构建一个高效、安全的文件管理系统。 首先,Java作为服务器端的主要编程...
Flex是一种基于Adobe Flash Player的富互联网应用程序(RIA)框架,主要用于创建动态、交互式的用户界面。而Struts是Java平台上的一个开源MVC(Model-View-Controller)框架,用于构建结构化的Web应用。两者结合可以...
在本文中,我们将深入探讨如何使用jQuery、Uploadify、Struts2和JSP技术实现一个图片批量上传的Demo。这个组合提供了高效、用户友好的文件上传解决方案,特别适合需要处理大量图片的Web应用。 首先,jQuery是一个轻...
1. **环境配置**:确保开发环境正确,包括安装Flex Builder或Flash Builder,设置Struts2和Hibernate的开发环境,以及MySQL数据库的配置。 2. **创建Flex界面**:使用MXML和ActionScript定义Flex界面,创建数据网格...
1. Flex:Flex是一种基于ActionScript和Flash Player或Adobe AIR的开源框架,用于创建富互联网应用程序(RIA)。它允许开发者创建具有丰富用户体验的交互式用户界面,与后端服务器进行数据交换。在Java后端,Flex...
1. **添加依赖**:首先,需要在项目中引入SWFUpload的JavaScript库和Flash对象,以及Struts2的相关依赖。 2. **配置SWFUpload**:在HTML页面中,通过JavaScript调用SWFUpload初始化方法,配置文件选择、文件类型...
6. JPEG编码:Flash可以将捕获的视频帧转换为JPEG格式的图像,这使得数据量更小,更适合在网络上传输。然后,这些JPEG图像可以通过NetStream发送到服务器。 7. JSP接收图像:在服务器端,JSP页面需要接收来自Flash...
Struts1是一个基于MVC(Model-View-Controller)设计模式的Java Web开发框架,用于构建结构化的Web应用程序。在图片上传实例中,Struts1主要负责接收前端发送的文件数据,进行业务逻辑处理,然后将处理结果返回给...
3. **Struts2**:Struts2是Apache软件基金会的一个开源MVC框架,用于构建基于Java EE的Web应用程序。它通过使用模型-视图-控制器(MVC)架构模式,帮助开发者组织代码,提高可维护性和可测试性。Struts2提供了强大的...
SSH是Java开发中非常经典的一种企业级应用框架组合,由Spring、Struts和Hibernate三个开源框架集成而成。这个项目的源码提供了使用Spring 2.5、Struts 2和Hibernate 3.2构建应用程序的实例,这对于学习和理解SSH框架...
通过以上步骤,我们可以实现一个基本的jQuery Uploadify与Struts2的整合应用。为了满足自定义需求,可以进一步扩展Uploadify的回调函数,例如在上传开始、进度更新、完成或错误时执行特定逻辑。同时,Struts2 Action...
在IT行业中,文件上传下载是Web应用中常见的功能,特别是在涉及到用户交互和数据交换的系统中。本项目基于JAVA、Struts2框架以及swfupload插件,提供了一个完整的文件上传下载解决方案。以下是对这个项目的详细解读...
在IT行业中,文件上传是网页应用中常见的功能之一,尤其在大数据时代,用户可能需要上传大量的图片、文档或视频。本教程将详细讲解如何利用SWFUpload与Struts2框架来实现多文件上传的示例。 首先,让我们了解...
Struts2是一个强大的Java web框架,它为开发者提供了构建MVC(模型-视图-控制器)应用程序的结构和工具。在Struts2中,文件上传是常见的功能,尤其是在处理用户表单时,如图片、文档等文件的上传。在本案例中,我们...
在“Struts应用连接数据库”的场景下,我们通常会利用Struts的Action类来处理用户请求,并通过DAO(Data Access Object)设计模式与数据库进行交互,从而实现从数据库读取信息来验证用户的功能。 1. Struts 框架...
Flex应用运行在Flash Player或Adobe AIR环境中,提供了跨平台的兼容性。 2. **Struts**: Struts 是一个基于Java Servlet和JSP的开源MVC框架,它的核心目标是帮助开发者构建结构清晰、易于维护的Web应用。通过将业务...
Struts2、Freemarker和Flash的结合使用主要涉及到Web开发中的前端与后端交互,以及用户头像的采集和展示。在这个项目中,开发者可能利用Struts2作为MVC框架处理HTTP请求,Freemarker作为模板引擎动态生成网页内容,...
将Struts2与Flash结合,可以实现动态、富媒体的文件上传和下载功能,这对于用户界面友好、交互性强的Web应用尤其重要。 首先,理解Struts2的Action机制是关键。Action是处理用户请求的核心,它接收表单数据,进行...
它支持矢量图形、音频、视频和交互式应用程序的开发,尤其在互联网早期,Flash在创建富媒体体验方面发挥了重要作用。然而,随着HTML5的兴起,Flash逐渐被替代,因为HTML5提供了原生的多媒体支持,且在移动设备上的...