前言:原创,实现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,还好,应用很小,只是个示例程序,都能看懂。
- 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,哦对了,不需要,继续...连接数据库。。
- /*需要什么包就自己加,限于篇幅这里没加,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;
- }
- }
7、开始创建flash动画,动画名称要和JSP中的一致,这里取名main.swf,大家可以自己做个按钮和一个textfield做测试即可。在按钮按下时,触发以下动作:
(由于代码属于一个项目不能全贴出来,只能拿关键部分贴出来,所以有些跳跃,不过思路是正确的。)
好了,基本上就可以测试了,嘿嘿,写的简单了点。慢慢把条理整清楚。。。