收藏 分享(赏)

struts 框架在电视台管理系统中的应用.doc

上传人:cjc2202537 文档编号:1196791 上传时间:2018-06-17 格式:DOC 页数:14 大小:557.50KB
下载 相关 举报
struts 框架在电视台管理系统中的应用.doc_第1页
第1页 / 共14页
struts 框架在电视台管理系统中的应用.doc_第2页
第2页 / 共14页
struts 框架在电视台管理系统中的应用.doc_第3页
第3页 / 共14页
struts 框架在电视台管理系统中的应用.doc_第4页
第4页 / 共14页
struts 框架在电视台管理系统中的应用.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、1Struts 框架在电视台管理系统中的应用【摘要】 Struts 提供了一个非常好的 MVC 框架,在 Web 应用开发中把界面和业务逻辑分离,提高了代码的可重用性和灵活性。文中首先介绍了 Struts 概念和体系 结构,阐述了 Struts 的工作原理。然后介绍了汇博影视有限公司广告业务订单管理系统各个功能模块以及整个系统基于 Struts 的开发流程。最后,通过一个应用示例,详细介绍 了 Struts 框架在系统开发中的 应用。【关键词】 MVC;Struts 框架;Web;电视台广告业务订单管理系统1 引言电视台广告业务订单管理系统是近年来为适应电视台建设和管理而兴起的一种新型产业,它

2、的出现为电视台的现代化管理提供了保障。目前,电视台管理系统的开发方法很多,但多数系统在开发中存在系统结构复杂、代码重用率低、网页设计和软件开发相互制约导致开发效率低下等不尽人意的地方。在系统设计过程中,我们综合考虑系统结构、开发周期以及代码重用等方面,决定采用先进的J2EE 技术来开发这个应用系统,并全面贯彻 MVC(ModelViewController)的开发模式。而Struts 作为一个实现良好的 MVC 框架,很好地将应用逻辑、处理过程和显示逻辑分成不同的组件实现,对大型的复杂的 Web 系统而言,可大大方便代码开发和管理,提高开发效率。正是鉴于此特性,在设计汇博影视有限公司广告业务订

3、单管理系统时,我们采用了基于 Struts 框架的系统构建模式。2 系统概述2.1 Struts 的体系结构 作为一个实现良好的 MVC 框架,Struts 对 Model、View 和 Controller 都提供了对应的实现组件,图 1 所示为 Struts 体系结构图。下面从模型、视图、控制来介绍 Struts 的体系结构 。图 1 Struts 构体系结图 视图(View)就是一系列提交到客户浏览器进行显示的 JSP 文件,是用户看到并与之交互的界面。在这些界面中没有业务逻辑,也没有模型信息,只有标签。 模型(Model)表示应用程序的状态和业2务逻辑,通常由 JavaBean 或 E

4、JB 组件来实现。 控制器(Controller)的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。在 Struts 中 Controller 由ActionServlet 类和 Action 类来实现。ActionServlet 主要负责接受 HTTP 请求信息,Action 类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程。2.2 数据库应用SQL Server 是一个后台数据库管理系统,它功能强大操作简便,日益为广大数据库用户所喜爱。越来越多的开发工具提供了与 SQL Server 的接口。SQL Server 是一个关系数据库管理系统, S

5、QL Server 企业管理器是 SQL Server 的主要管理工具。SQL Server 2000 是 Microsoft 公司推出的 SQL Server 数据库管理系统的最新版本,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。可跨越从运行 Microsoft Windows 98 的膝上型电脑到运行 Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。MS SQL Server 不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事

6、实上,SQL Server 数据库处理的基本结构,采取关系型数据库模式,在 SQL Server 的数据库处理方式,则是使用面向对象的操作方式与精神,也就是说,SQL Server 的所有功能,都可以基于系统已经建立好的一些对象来达成,是相当OO(面向对象)的一个系统结构。2.3 系统运行环境采用 Struts+JSP+SQL Server 的电视台管理系统,既保证了系统的可移植性,又保证了系统运行的性能要求。而 Struts 将模型、视图、控制器分离开来,各个实现,降低了组件之间的藕合性,使后期维护更方便、简单。搭建系统的运行环境,可以按照以下几个步骤实现:(1)首先需要安装 Java 运行

7、环境,即 Java JDK,并配置 Path 和 CLASSPATH。(2)安装 Tomcat 服务器,可实现把 JSP 页面文件编译成一个 Servlet 的 Java 文件。(3)下载 Struts 的二进制文件,将 Struts 目录中 lib 包下的所有.jar 文件复制到 Tomcat 服务器中的 lib 目录下。(4)安装 SQL Server 数据库管理系统,用户名为 SA,密码为 6782.4 系统开发环境本系统采用 Jbuilder X 开发工具,Jbuilder 是贝尔实验室下的一个非常重要且具有竞争力的Java 开发工具,其内置 Tomcat 服务器和 Java 运行环境

8、,具有简单易用,容易调试程序错误等优点。前台页面采用 Dreamweaver 工具,该工具能自动生成代码,是开发 Jsp 应用程序的极佳工具。3 系统功能划分及开发流程3.1 系统功能划分 汇博影视有限公司广告业务订单管理系统是汇博影视有限公司用来对公司客户,广告订单,息,编播,查询等信息进行综合管理的一个信息管理系统。根据用户要求,系统要能对订单,客户等基本信息实现录入、修改、查询和删除等操作,并且还要实现包括客户欠费信息的统计、查询和报表生成。(1)系统登录模块 该模块主要是对用户输入的用户名和密码进行数据库端验证。数据库端有用户的权限标志,以不同的用户名登录,该用户即有相应的系统权限。(

9、2)客户管理模块 该模块完成对新增客户基本信息(单位名称、法人代表、法人电话、代理人、代理人联系方式等)的输入和已有客户信息的修改、查询,是系统最基本的功能。该模块具体又分为客户增加、客户修改、客户查询三个子模块。 (3)订单管理模块 订单管理模块是整个电视台管理系统的核心,该模块实现对电视台广告业务订单(如:小订单、合同、户外广告、专题等)的管理,为各项业务建立信息输入,修改和查询。具体又分为订单登记、订单修改、订单查询和打印订单这四个子模块。3(4)组编管理模块 该模块主要是针对电视台组编人员设计,组编负责电视台每天的有效广告的播出,需要随时查询当日的有效广告,并对系统查询的有效广告和操作

10、员打印的订单进行对比,以检验广告的有效性,该模块主要是一个有效广告查询模块。(5)查询统计模块 该模块主要是针对电视台管理部门大量的信息进行查询统计,对信息有一段时间内的有效的、有用的信息进行查询统计。主要有按时间段查询(广告类型、广告来源、广告模式、客户业务额、营销员、开票情况)、欠款客户查询、业务类型汇总查询(业务汇总查询、金额汇总查询、实收金额汇总查询)、合同广告查询。(6)系统维护模块 系统管理模块是整个电视台管理系统的重要组成部分,在区分不同用户的使用权限、加强软件使用安全性和保证数据安全方面起着关键的作用。具体包括:用户管理、用户授权、更改密码等这几个子模块。管理系统功能模块图如下

11、: 图 2 系统功能模块图 3.2 系统开发流程 采用 B/S 模型的多层框架结构开发的汇博影视有限公司广告业务订单管理系统,MVC 模式主要对应应用服务器的部分,前端响应用户的请求,后端负责与数据库服务器之间的数据变换,中间为应用逻辑层,负责具体业务的处理。现依据 Struts 框架的个基本组成部分:视图、模型和控制器,简要描述系统的设计过程 。(1) 视图设计 应用系统的用户界面通常由 JSP 页面组成。在系统的六个模块中,各类信息的添加、删除修改和浏览都通过 JSP 页面进行表现。系统在处理每个数据表示主要是用两个 JSP 页面进行表示:一个页面用于数据的添加、删除、修改,另一个页面用于

12、数据的浏览。(2)构建模型 Struts 应用框架通常预先为每个应用所需要的输入表单创建一个 ActionForm Bean。如果这些 bean 定义在 ActionMapping 配置文件中,Struts 控制器 Servlet 将自动执行这些预先设定的操作。因此,在系统开发中,首先为每个模块建立相应的 ActionForm Bean,再根据每个模块的实际功能为每个 Bean 定义用户操作状态和视图中所需要显示数据信息的参数,视图可以通过操作状态的不同进行不同的界面表示。(3)构建控制器 在 Struts 应用框架中,中心控制器(ActionServlet)接受所有来自客户端的请求,并根据系

13、统的配置文件 Struts-config.xml 制定用户 HTTP 请求到其他 Action 对象的路径。中心控制器是由 Struts 框架本身所提供,在系统开发中我们无须对 ActionServlet 进行再开发,而负责具体业汇博影视有限公司广告业务订单管理系统系统登录模块 查询统计模块 块客户管理模块 组编管理模块 小订单管理模块 系统维护模块4务处理的 Action 类则是系统开发的重点。 在视图、模型、控制器对象设计完成后,需要编辑两个配置文件:web.xml 和 struts-config.xml,通过它们配置 Struts 系统中各个模块之间的交互。映射文件(web.xml)ac

14、tionorg.apache.struts.action.ActionServletaction*.do/WEB-INF/struts-bean.tld/WEB-INF/struts-bean.tld/WEB-INF/struts-html.tld/WEB-INF/struts-html.tld/WEB-INF/struts-logic.tld/WEB-INF/struts-logic.tld/WEB-INF/struts-template.tld/WEB-INF/struts-template.tld/WEB-INF/struts-tiles.tld/WEB-INF/struts-tiles

15、.tld/WEB-INF/struts-nested.tld/WEB-INF/struts-nested.tld4 Struts 框架在系统开发中的应用5汇博影视有限公司广告业务订单管理系统是一个复杂的大型 Web 应用系统,为了能够清楚地描述Struts 在系统开发中的应用,本文将以系统登录模块及客户管理模块中用户成功登入系统并进行数据录入和查询这一应用为例进行较详尽的说明。4.1 分析应用需求 在该应用中,主要事件包括:(1)提供用户登录界面,提示用户输入用户名和密码,并能够对用户在客户端输入的数据进行简单的数据格式验证。若登录成功,转入主操作界面,否则返回本页面信息,重新登录。(2)由主

16、操作界面进入增加新客户界面,用户在表单中输入相关信息(单位名称、法人代表、法人电话、代理人、代理人联系方式),提交表单。若提交表单成功,则转入确认界面,显示操作成功。(3)由主操作界面转入查询修改界面,用户输入相关信息后,查询出该客户的具体信息。用户可以对该客户的资料进行修改。4.2 该应用的具体设计 4.2.1 数据库设计针对该应用,需在数据库中创建两张表: OPERATOR 和 CLIENTINFO,各表结构如下: 表 1 OPERATOR字段 类型 说明OPERATORID VARCHAR(50) 主键OPERATORNAME VARCHAR(50) 记录登录到系统的用户名OPERATO

17、RPSW VARCHAR(50) 记录登录用户的登录密码OPERATORPOWER VARCHAR(50) 用户权限表 2 CLIENTINFO 字段 类型 说明CLIENTINFOID VARCHAR(50) 记录唯一表示每个用户的 IDCLIENTINFONAME VARCHAR(50) 单位名称PRINCIPAL VARCHAR(50) 法人姓名LINKPRINCIPAL VARCHAR(50) 法人联系方式AGENTOR VARCHAR(50) 代理人姓名LINKAGENTOR VARCHAR(50) 代理人联系方式4.2.2 设计模型组件在 Struts 框架中,模型组件负责完成业务

18、逻辑。在该应用中,模型组件包括两个实用类ClientinfoAction、OperatAction 和两 FormBean:ClientinfoForm 和 OperatorForm。实用类OperatAction 负责处理数据库端登录验证,ClientinfoAction 负责处理客户信息的增加、修改、查询。OperatorForm 代表用户信息,包括 UserName 和 Password 这两个属性。ClientinfoForm 代表客户信息,包括 CLIENTINFONAME、PRINCIPAL、 LINKPRINCIPAL、AGENTOR、LINKAGENTOR 等几个属性。这两个F

19、ormBean 提供了相应的 get/set 方法,此外还负责查询以及向数据库中对应的表添加/查询记录。(1)设计 ActionForm 6ActionForm Bean 用于在视图组件和控制器组件之间传递 HTML 表单数据。通常每个 HTML 表单对应一个 ActionForm Bean,每个 ActionForm 的 validate( )方法用于实现对用户输入数据进行格式和语法检查。用户登录(用于表单处理)ActionFormpackage operator;import org.apache.struts.action.*;import javax.servlet.http.*;pu

20、blic class OperatorForm extends ActionForm private String operatorid;private String operatorname;private String operatorpower;private String operatorpsw;public String getOperatorid() return operatorid;public void setOperatorid(String operatorid) this.operatorid = operatorid;public String getOperator

21、name() return operatorname;public void setOperatorname(String operatorname) this.operatorname = operatorname;public String getOperatorpower() return operatorpower;public void setOperatorpower(String operatorpower) this.operatorpower = operatorpower;public String getOperatorpsw() return operatorpsw;p

22、ublic void setOperatorpsw(String operatorpsw) this.operatorpsw = operatorpsw;public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) /*todo: finish this method, this is just the skeleton.*/return null;7public void reset(ActionMapping actionMapping, HttpServle

23、tRequest httpServletRequest) (2)设计 Action 和 Action 映射 在 Struts 框架中,Action 实现各个事件的流程控制,Action 映射决定 Action 与其他 web 组件之间的关联关系。表 4 列出了该应用中用到的 Action、每个 Action 的入口(调用 Action 的组件)、传递给 Action 的 ActionForm 以及每个 Action 把请求转发到的目标组件即出口。表 3 该应用中的 Action Action 入口 ActionForm 出口 OperatAction index.jsp operatorFor

24、m menu.jsp InputAction Input.jsp InputForm confirmation.jsp SearchAction search.jsp SearchForm display.jsp LogoffAction mainmenu.jsp 无 index.jsp 客户处理(业务逻辑部分)Actionpackage clientinfo;import org.apache.struts.action.*;import javax.servlet.http.*;import javax.servlet.*;import java.sql.*;import javax.sq

25、l.*;import java.util.*;public class ClientinfoActionextends Action public ActionForward execute(ActionMapping mapping, ActionForm actionForm,HttpServletRequest request,HttpServletResponse response) ServletContext context = servlet.getServletContext();DataSource dataSource = (DataSource) context.getA

26、ttribute(“oracle“);ArrayList al = null;ClientinfoDAO ad = new ClientinfoDAO();ad.getConnection(dataSource);System.out.println(“asdfasdf“);String flag = “;ClientinfoForm clientinfoForm = (ClientinfoForm) actionForm;String sql = “ select clientinfoid,clientname,clienttype,principal,linkprincipal,agent

27、or,linkagentor from clientinfo“;if (request.getParameter(“action“).equals(“que“) System.out.println(“asdfasdf“);al = ad.find(sql);System.out.println(al);8request.setAttribute(“list“, al);flag = “clientinfoque“;if (request.getParameter(“action“).equals(“add“) String clientname = clientinfoForm.getCli

28、entname();String clienttype = clientinfoForm.getClienttype();String principal = clientinfoForm.getPrincipal();String linkprincipal = clientinfoForm.getLinkprincipal();String agentor = clientinfoForm.getAgentor();String linkagentor = clientinfoForm.getLinkagentor();String clientinfoid = IDGenerator.g

29、etID(“zd“);String sql1 = “ insert into clientinfo values(“ + clientinfoid + “,“ +clientname + “,“ + clienttype + “,“ + principal + “,“ +linkprincipal + “,“ + agentor + “,“ + linkagentor + “)“;if (ad.add(sql1, dataSource) != 0) return new ActionForward(“/clientinfo/clientinfo.do?action=que“);if (requ

30、est.getParameter(“action“).equals(“beforemod“) String clientinfoid = request.getParameter(“id“);String sql2 =“select clientinfoid,clientname,clienttype,principal,linkprincipal,agentor,linkagentor from clientinfo where clientinfoid=“ + clientinfoid + “;clientinfoForm = ad.findmod(sql2);request.setAtt

31、ribute(“list“, clientinfoForm);flag = “clientinfomodbefore“;if (request.getParameter(“action“).equals(“modfiyaft“) String clientinfoid = clientinfoForm.getClientinfoid();String clientname = clientinfoForm.getClientname();String principal = clientinfoForm.getPrincipal();String linkprincipal = clienti

32、nfoForm.getLinkprincipal();String agentor = clientinfoForm.getAgentor();String linkagentor = clientinfoForm.getLinkagentor();String clienttype = clientinfoForm.getClienttype();String sql3 = “ update clientinfo set clientname=“ + clientname +“,principal=“ + principal + “,linkprincipal=“ + linkprincip

33、al +“,agentor=“ + agentor + “,linkagentor=“ + linkagentor +“,clienttype=“ + clienttype + “ where clientinfoid=“ + clientinfoid +“;System.out.println(sql3);if (ad.modify(sql3, dataSource) != 0) return new ActionForward(“/clientinfo/clientinfo.do?action=que“);9else System.out.println(“数据库修改失败“);return mapping.findForward(flag);系统配置文件,即 Action 映射文件(struts-config.xml)10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报