资源描述
S2SH投票管理系统摘 要网上投票系统凭借其方便快捷等特点已经成为统计收集信息不可或缺的工具,随着网络技术的发展网上投票系统的作用将会越来越大。在积极建立科学管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,管理部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。投票管理者的决策只能依据手工表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的管理思想就成为了一个可望而不可及的目标。投票非常急需一套既有先进管理思想的系统,作为实现目标和提高现有投票管理水平的一种重要手段。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,在先进的计算机技术、通信技术、控制技术及IC卡技术基础上,采用系统集成方法,逐步建立一个智能化的投票系统。本论文就建立一套完善的网上投票系统进行了详细全面的论述。访问本系统的用户分为会员和管理员两种角色。会员的主要功能有:查看投票内容,网上投票,查看系统公告,在线注册会员模块。系统中的管理员的主要功能有:投票内容管理,公告管理,会员的管理。关键字: 网上投票系统;JSP;S2SHS2SH Voting Management SystemAbstractThe online voting system by virtue of its convenience, has become an indispensable tool of statistical information collection, along with the development of network technology, the online voting system will play a more important role.Actively establish a scientific management system of today, only by the original manual management or simple single management, management department of information, cant efficiently extracted from one of the important part, and make the corresponding judgment and handling. The managers decision to vote only on the basis of the table data by hand, unable to do real-time monitoring in waste a lot of manpower, material resources and at the same time, it is difficult to ensure the accuracy and timeliness of data. Therefore, the advanced management thought becomes a miles away goals. System of voting is in urgent need of an already to have the advanced management concept, as a goal and an important means to improve the management level of the existing voting. With the continuous improvement of science and technology, computer science increasingly mature, its powerful features for people to have a profound understanding, it has entered the human society in various fields and is playing an increasingly important role. As a part of computer application, the advanced computer technology, communication technology, control technology and IC card technology basis, a systems integration approach, and gradually establish a intelligent voting system.In this paper, we establish a set of perfect online voting system in detail. Users to access the system is divided into two kinds of role membership and administrator. The main function of membership are: online voting poll, content, view the system announcement, online registration module. The main function of the system administrator: voting content management, bulletin management, membership management.Key Words: online voting system; JSP; S2SHII目 录摘 要IAbstractII1 绪 论11.1 课题来源及意义11.2 国内外发展状况21.3 研究目标、内容21.3.1 前台模块31.3.2 后台模块:32 系统概述与技术介绍42.1 BS结构介绍42.2 SQL Server数据库42.3 MyEclipse介绍42.4 JavaScrip语言52.5 JSP技术52.6 MVC模式62.7 SSH框架82.7.1 Struts框架92.7.2 Spring框架92.7.3 Hibernate框架103 需求分析113.1 开发环境113.2 需求分析113.3 可行性分析113.3.1 经济性113.3.2 技术性123.3.3 操作性123.3.4 法律性123.4 问题分析123.5 分析模型134 系统概要设计144.1 系统设计概述144.2 系统用例图144.3 系统流程图154.4 系统功能分析175 系统功能设计185.1系统功能模块的设计185.1.1 用户投票模块:185.1.2 管理员登录模块195.1.3 管理员添加投票项目模块205.1.4 管理员删除投票项目模块:206 数据库设计与实现216.1 数据库结构设计216.1.1 表概要说明216.1.2 数据表的结构217 系统的实现247.1 前台首页设计247.2 网站导航设计247.3 投票信息展示模块257.4 用户注册模块设计267.5 网站公告展示277.6 后台登录页面277.7 投票信息管理307.8 公告信息管理337.9 退出后台管理358 系统测试368.1 测试方法368.2 测试原理、策略368.3 测试过程368.4 系统测试结果37总 结38致谢39参考文献40附录41附录A 外文文献 JSP application frameworks41附录B 中文翻译 JSP 应用框架5031 绪 论1.1 课题来源及意义 网上投票调系统是一种在网站上提出投票题目,由用户在线投票并对调查投票的统计结果直接显示的调查工具。网站管理方可以通过网上调查并对投票结果自动进行系统分析后得出有用信息,如浏览用户对某产品或服务的看法等,是企业利用网站低成本进行市场调查的重要手段。Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的,易于被人们所接受的信息检索手段,World Wide Web(简称WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。如今,网络技术已经渗入到人们日常生活的每个角落,随处都可以看到网络的存在,随处都可以享受到网络给我们带来的方便。网络,不仅仅代表着一项技术、一种应用,更代表着一个时代、一种时尚。随着Internet的发展,Web技术日新月异,人们已经不再满足于静态HTML技术,更多的是要求动态、交互的网络技术。然而,在计算机网络中,任何方便实用的技术都必须建立在信息安全这块基石上。一项网络技术的安全性,也是决定着想技术成败的关键性的性质。而具有动态验证的网上投票系统既能使信息的保密性得到保证,又能确认投票者身份的有效性与唯一性,这样才能保证统计结果的真实有效。网上投票对象只能来源于网络的使用者,而目前这部分使用者具有一定的特殊性,特别是在中国。据CNNIC 2006年9月公布的调查结果显示,我国互联网继续保持持续、稳定的增长态势。其中网民数、上网计算机数分别达到了11000万人、4950万台,与上年同期相比分别增长了18.1%和19.0%。在网民的特征结构方面,男性、未婚、30岁以下、大学本科以下、月收入在2000元及以下(含无收入)网民的比例依然在网民各特征数据中占据主要地位,所占比例分别为58.7%、57.9%、82.6%、70.8%、70.9%,其中未婚、30岁以上网民的比例与上年同期相比都有所上升,但男性网民比例、大学本科以下、月收入在2000元及以下(含无收入)网民所占比例与上年同期相比有所下降;在职业方面,学生所占比例超过了总网民的三分之一,达到了35.1%,其次是企业单位工作人员,占总数的29.6%,排在第三位的是学校教师及行政人员,所占比例为7.3%,国家机关、党群组织工作人员所占比例为6.6%,事业单位工作人员所占比例为6.5%,其他职业的网民所占比例都在5.0%以下。随着Internet网正在向全世界各大洲延伸和扩散,Internet是一个国际性的通信网络集合体,它集现代通信技术和现代计算机技术于一体, 是计算机之间进行国际信息交流和实现资源共享的良好手段。Internet也是人类历史发展中的一个伟大的里程碑,它是未来信息高速公路的雏形,人类正由此进入一个前所未有的信息化社会。人们用各种名称来称呼Internet,如国际互联网络、因特网、交互网络、网际网等等,已经成为世界上覆盖面最广、规模最大、信息资源最丰富的计算机信息网络。近年来,借助着Internet的蓬勃发展,伴随着信息化建设的推进,电子商务迅速崛起,其市场范围在全球急剧扩大,各发达国家都把发展电子商务作为拓展全球市场的有效手段,积极地参与协商和合作。当今社会作为一个飞速发展的社会,网络已渗入人们的生活,网络已成为信息传播的一大媒介,可以说网络资源的获取已逐步改变了人们以往的生活方式,网络已经成为人们日常工作,休闲的主要工具之一。从娱乐网站到官方网站,各种网上投票系统随处可见,意见调查,用户信息统计,经营情况调查等都可以作为投票的内容,网上投票系统凭借其方便快捷等特点,已经成为互联网资源中不可缺少的一部分,并且,随着网络技术的发展,网上投票系统的作用将会越来越大。并且在投票的过程中网上投票系统对网络的要求也越来越高。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。网上投票系统可以快速,真实的反应出你的投票结果和他人的投票结果,而不必等待最终结果。完全的真实性,每个人都可以看见自己的或者他人的投票的增加,防止了以往的暗箱操作。网络投票系统应具有的独特的功能其一,方便的操作。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,网络投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。 其二,友好的界面。友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。其三,强大的功能,能够满足学校教学需要,快速简单的统计教学任务,提高教学质量。1.2 国内外发展状况随着计算机技术的飞速发展,尤其是网络技术的超速发展,带动了信息的广泛交流,人们每天需要大量的信息来充实自己,传统的投票和调查方式已经不能满足我们的需要,针对这种情况,网上投票系统应运而生。网上投票系统除了能够完成传统的功能之外,更具有时效高和范围广的优点,更符合现代社会的需要。从国际互联网到校园网,企业局域网,各种网上投票系统随处可见,意见调查,用户信息统计,经营情况调查都可以作为投票的内容,网上投票系统凭借其方便快捷等特点,已经成为互联网资源中不可缺少的一部分,并且,随着网络技术的发展,网上投票系统的作用将会越来越大。据新闻报道,日本政府正投资10亿日元开发电子投票系统用于选举,荷兰、比利时和巴西等国家已经开始在部分地区使用网上投票系统,可见其巨大的发展潜力。1.3 研究目标、内容 网上投票系统的设计是采用JSP和SQL Server2000技术开发的简易投票系统,并在用户登陆过程中设置动态验证码,提高系统的安全性。它实现了以下功能:投票、结果查看、增加、删除及搜索投票等。本论文首先介绍了网上投票系统的概念及和适用范围。在系统开发环境中主要对JSP、SQL和动态口令认证机制的基本概念作了详尽的介绍。接着通过E-R图说明数据库的搭建和数据库的设计。然后介绍了本系统的总体设计,包括:系统结构和总体功能设计。论文以功能模块图的形式说明了功能的设计并给出了部分核心代码及主要功能界面图。1.3.1 前台模块1用户注册:用户可以通过这一功能在网站上将自己的信息通过填写注册窗体的形式,发送到后台数据库中并存储,以便在网站上进行投票。用户注册功能能提高投票信息的公正性和有效性,防止部分人员随意投票。2.用户登陆:用户注册后就可以在登陆框中输入正确的用户名和密码,便可登陆到网站。(1)进行投票:在“投票选项”中选中所选类别提交后,所选内容会存储在数据库中,并在投票管理页面中显示投票结果。(2)显示投票结果:用户提交投票信息后,数据存入数据库并计算出每个投票选项的所得投票数,并将投票数最多的那一选项的信息显示到此页面。1.3.2 后台模块:(1)管理员登陆:管理登陆之后才能管理投票信息。在此模块中同样引入了动态口令认证以保证安全。(2)设计投票管理主界面:当管理员登录成功后,会转到投票管理界面。在该界面可以进行以下操作:增加投票,删除投票,更新投票信息。(3)增加,修改,删除投票:添加投票界面是管理员新建投票信息并存储在数据库中的媒介,并在投票管理界面中显示。2 系统概述与技术介绍作为一个投票网站,首先布局一定要新颖、有特色,只有这样才能引起用户的关注,最大限度的满足人们的需求,而且要有很强的交互性,交互性差的网站会让用户产生厌烦情绪。当然一个好的投票网站还要有很完整的处理信息的功能,以便及时的更新网站中的信息。通过对用户的调查和对现有的投票网站运行的流程分析,为了满足大多数用户的需求,所以我的目标是要构建一个页面简单清晰但包含信息相对全面、交互性强的网上投票系统。2.1 BS结构介绍本系统采用BS结构,即BrowserServer(浏览器服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起,对CS结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(VBScript、JavaScript)和ActiveX技术,是一种全新的软件系统构造技术。 在BS体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由Web Server完成。2.2 SQL Server数据库因为本系统存放的信息数据量比较大的,因此我选择存放信息的数据库为微软的SQL Server数据库。SQL Server是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。Microsoft SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server /7.0版本和用户见面;SQL Server 2005是Microsoft公司于2005年推出,目前最新版本是2012年3月份推出的SQL SERVER 2012。2.3 MyEclipse介绍本系统是跨越平台限制和跨越浏览器限制的充满动感的网页。构建网上投票系统所用的网页编辑器为MyEclipse, MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。2.4 JavaScrip语言Javascript是一种解释性的,基于对象的脚本语言,Javascript主要是基于客户端运行的,用户点击带有Javascript的网页,网页里的Javascript就传到浏览器,由浏览器对此作处理。它的代码可以直接嵌入到HTML命令中,最大特点是可以方便操纵网站上的元素,并与Web浏览器交互,同时JavaScrip可以捕捉用户操作并作出反映。JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。在本系统中很多地方使用了javascript技术,比如说,检验用户输入数据的有效性,是否重复,是否为空等等。2.5 JSP技术JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的优点:(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。 (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。 (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。内部对象说明:request 客户端请求,此请求会包含来自GET/POST请求的参数; response网页传回客户端的响应;pageContext 网页的属性是在这里管理; session 与请求有关的会话; application servlet正在执行的内容;out 用来传送响应的输出流; config代码片段配置对象;pageJSP网页本身; exception针对错误网页,未捕捉的例外。2.6 MVC模式为了满足系统对先进性、安全性、跨平台性、可扩展性、可移植性、分布式等方面的要求,系统总体架构设计采用先进的基于java的B/S的三层体系结构。MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)9。 MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。Web浏览技术已经广泛地应用于Internet,并被广大用户接受和使用。Web技术是随http和html一起出现的。Web服务器利用http传递html文件,Web浏览器使用http检索html文件。Web服务器一旦检索到信息,Web浏览器就会以静态和交互(如文本、图像)方式显示各种对象。在电子商务业务进行过程中,需要在各种贸易角色之间浏览和交换各种信息,此时就要使用Web浏览技术。 这种模型使系统结构更加清楚,分工更加明确,有利于整个系统后期的维护和升级。MVC(Model View Controller)模型(model)视图(view)控制器(controller)MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC 的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。模型视图控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型视图控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。 三层体系结构由浏览器、web服务器和数据库组成,并结合HTML语言、jsp、JavaScript脚本语言、Ajax、ODBC等技术,后台的数据库采用微软的SQL Server 2005,系统一般的MVC模型如图2-1所示。 图2-1 系统MVC结构图如图1-1可知,用户界面层是用户和整个系统的接口,客户端只需安装通用的浏览器即可建立与本系统的连接。业务逻辑层负责处理用户输入的信息,或将这些信息发送给数据库层进行保存,或调用数据库层中的函数再次读出这些数据。数据访问层是整个分层体系的最底层,它主要用来实现与数据库的交互,即完成查询、插入、删除和修改数据库中数据的功能MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。分层概念视图,模型,控制器。视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。MVC模型还可以实现软件工程的高内聚,低耦合的终极目标。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求自己本身并不参与业务逻辑处理,然后再确定用哪个视图来显示返回的数据。MVC的优点:1)低耦合性2)高重用性和可适用性3)较低的生命周期成本4)快速的部署5)可维护性6)有利于软件工程化管理2.7 SSH框架SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。如图2-2所示:图2-2 SSH框架分层采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。2.7.1 Struts框架Struts对Model,View和Controller都提供了对应的组件。ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。Model部分:由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。JavaBean则封装了底层的业务逻辑,包括数据库访问等。View部分:该部分采用JSP(或HTML、PHP)实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。Controller组件:Controller组件有两个部分组成系统核心控制器,业务逻辑控制器。系统核心控制器,对应上图的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。2.7.2 Spring框架Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。2.7.3 Hibernate框架Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。3 需求分析3.1 开发环境本系统的开发环境为Windows 7,数据库使用的是微软的SQL Server 2005,使用Dreamweaver MX 2004软件制作网页,发布使用MyEclipse工具。采用JSP为服务器端脚本环境,脚本语言使用JavaScript编写的网上投票系统,不需要安装客户端程序,客户端只需安装浏览器即可,使用方便,方便升级维护,方便与Internet和Internet上的应用程序集成。3.2 需求分析需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。需求分析之所以重要,就因为他具有决策性、方向性、策略性的作用,需求分析是软件定义的最后一个阶段,它的基本任务是回答“系统必须做什么” 这个问题。需求分析的任务不是确定系统怎样完成他的工作,而仅仅是确定系统完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求,它在软件开发的过程中具有举足轻重的地位。系统初步调查的主要目标是从系统分析人员和管理人员的角度看新项目开发有无必要和可能,其基本内容包括:系统的基本情况、系统信息处理情况和系统资源情况。伴随网络的发展,网民的数量急剧增加,社会的信息化强度增强,企业竞 争之激烈,故对市场信息的把握范围不仅仅是周边的一些信息,而应把范围扩展到全国,以至全世界,网络恰恰是完成这目标的有利工具.对于新产品,新观点的调查范围应当更广泛,消息应当及时反馈给企业单位,故一个网上在线投票系统应允而生,它正好充分满意客户的需求,信息反馈的范围扩大,人力资源的节省,从而使得企业在竞争激烈的市场中拥有更强盛的资本.开发此投票系统是为了更好的把市场的信息更准确更快速的反馈给客户,使信息的来源更广泛,从而提高信息的准确性.运用此系统可以降低企业为市场调查而消耗的人力和物力,利用节省的资源提高产品的质量,增强竞争力。独具匠心的网站规划设计就像一幢宏伟的建筑前期的规划设计一样,要进行认真、科学总体规划,之后才可以“破土动工”。3.3 可行性分析3.3.1 经济性服务器端的安装简洁明了,客户机无需再装任何软件,通过浏览器就可以直接访问,可以直接接入Internet,无论您身在何处,只要您可以访问Internet都可以使用本系统。现在的开发工具都可以在网上免费下载,并且技术上也不存在什么难题,利用现有的开发工具,就可以对本系统进行开发。系统本身简单适用,毫无疑问在经济上是可行的。3.3.2 技术性本系统可用普通的PC,windows XP ,对硬件无很大要求。基本技术需求如下:(1) 操作系统:Windows XP及以上服务器版本;(2) 数据库管理系统:SQL Server2005;(3) 编程工具:MyEclipseMyEclipse(4) 开发语言:Java, 主要使用了J2EE的技术java是一种面向对象编程语言,简单易学而且灵活方便。大学期间就学习了java课程,也系统的了解了J2EE的知识,网上投票系统总体上开发难度不高,数据库的设计和操作是本系统设计的核心。在大学期间学习过软件工程,软件测试,UML统一建模语言等课程,每个学期也会完成对应的课程设计,具备一定的系统分析、设计和测试能力。因此,完成系统实现在技术上完全具有可行性。3.3.3 操作性本系统操作简单,输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对用户的要求很低,只需对WINDOWS操作熟练,而且本系统可视性非常好,所以在技术上不会有很大难度。3.3.4 法律性本系统是自行开发的管理系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题.即法律上是可行的。3.4 问题分析本在线投票系统具有的特点:其一:方便的操作。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。其二:友好的界面。友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。 其三:强大的功能,网上投票系统可以快速,真实的反应出你的投票结果和他人的投票结果,而不必等待最终结果。其四:完全的真实性,每个人都可以看见自己的或者他人的投票的增加,防止了以往的暗箱操作。3.5 分析模型(1) 投票首页模块:该模块面向对象为所有访问页面用户,其中包括:管理员和用户。(2) 投票实现模块:此模块供用户对投票项目进行投票所用。不同的用户具有不同的功能,管理员对问卷内容具有增删改的功能,普通用户只能在线进行问卷调查。(3) 投票结果模块:此模块提供用户查看该项目已有的投票情况。投票结果显示面会显示投票选项的总得票数。(4) 管理员登录模块:该模块用于管理员的登录。登录验证通过以后,管理员才可以对投票信息进行维护。如增删投票项目。(5) 投票管理模块:此模块为管理员操作的模块。管理员登入系统后,可对本系统的所有投票项目进行相应的管理,如:添加投票项目,删除投票项目。4 系统概要设计4.1 系统设计概述系统设计是在系统分析的基础上由抽象到具体的过程,同时,还应考虑到系统所实现的内外环境和主客观条件,本着实事求是的态度进行这一阶段的工作。系统设计阶段的主要目的是将系统分析阶段所提出的反映用户信息需求的系统逻辑方案转换成可以实施的基于计算机与通信系统的物理方案。这一阶段的主要任务就是从管理信息系统的总体目标出发,根据系统分析阶段对系统的逻辑功能的要求,并考虑到经济、技术和运行环境等方面的条件,确定系统的总体结构和系统各组成部分的技术方案,合理选择计算机和通信的软、硬件设备,提出系统的实施计划,确保系统总体目标的实现11。系统设计工作的特点:1)系统设计阶段,大量工作是技术性的。2)允许用户对已提出的信息需求做非原则性的修改或补充。3)用户在操作使用和运行环境等方面的具体要求也要在系统设计阶段加以明确并在系统的技术方案中得反映,因此系统设计人员还要同管理环境打交道。4)系统设计工作的环境是管理环境和技术环境的结合,是系统设计工作的重要特点也是整个系统成功的一个必不可缺的环节。系统设计原则1)阶段开发原则:系统框架和数据结构全面设计,具体功能实现分阶段进行。2)易用性原则:方便上网客户浏览和操作,最大限度地减轻后台管理人员的负担,做到部分业务的自动化处理,提供良好的用户体验。3)业务完整性原则:对于业务进行中的特殊情况能够做出及时、正确的响应,保证业务数据的完整性,减少数据的误读。4)业务规范化原则:在系统设计的同时,也为将来的业务流程制定了较为完善的规范,具有较强的实际操作性,也给整个系统带来安全性。5)可扩展性原则:系统设计要考虑到业务未来发展的需要,要尽可能设计得简明,各个功能模块间的耦合度小,便于系统的扩展。如果存在旧有的数据库系统,则需要充分考虑兼容性,比如说浏览器的兼容。4.2 系统用例图普通用户的操作:1、用户注册。2、查看最新的投票信息,进行投票操作。会员用例图,如图4-1所示:图 4-1 普通用户用例图管理员的操作:1、管理员可以管理注册的会员信息。2、管理员可以添加最新投票内容。3、管理员可以管理系统公告信息。管理员用例图,如图4-2所示:图 4-2 管理员用例图4.3 系统流程图当会员进入网站首页之后,如果想要进行投票,先要进行注册,注册完成后,才能进行投票操作。基本流程如图4-3所示。图4-3 会员流程图当管理员进入本系统之后,管理员首先要登录之后,才能管理后台。登录失败,给管理员相关的提示,请管理员重新登录。登录成功之后,管理员可以对会员、投票信息、公告信息进行管理。管理员的后台管理的基本流程如下图4-4所示:图4-4 管理员流程图4.4 系统功能分析图 4-5 系统前台功能图1) 这就是本网站前台的功能框图(如图4-5所示)。它可以分为两个大块功能,分别为:用户注册模块,用户投票模块。下面是两个模块的详细介绍:用户注册模块:通过该模块完成用户注册功能。用户投票模块:用户通过该模块完成投票操作。图 4-6 系统后台功能图2) 这就是本网站后台台的功能框图(如图4-6所示)。后台的所有模块的功能分析:投票信息模块:管理投票信息及投票选项。公告管理模块:管理网站前台的公告信息。会员信息管理:管理注册的会员信息。管理员管理:管理后台的管理员信息。修改个人密码:管理员登录系统,可以修改自己的登录密码。5 系统功能设计本系统按照功能逻辑分为五个板块:投票首页模块,投票实现模块,投票结果模块,管理员登录模块,投票项目管理模块。具体功能逻辑图如图5-1所示:投票普通用户管理员登陆模块投票管理模块投票首页模块管理员信息模块信息公告模块投票选项模块用户注册模块进行投票模块图5-1 投票系统功能逻辑图5.1系统功能模块的设计5.1.1 用户投票模块:用户投票模块主要实现的是用户对于投票选项的投票,如图5-2所示:图5-2用户投票模块5.1.2 管理员登录模块此模块主要实现管理员的登录设计,如图5-3所示:图5-3 管理员登录模块5.1.3 管理员添加投票项目模块此模块实现的是管理员对于投票项目的添加功能,如下图5-4所示:图5-4 管理员添加投票项目模块5.1.4 管理员删除投票项目模块:此模块实现的是管理员对于投票项目进行删除的设计,如图5-5所示:图5-5 管理员删除投票项目模块6 数据库设计与实现6.1 数据库结构设计数据库是“按照数据结构来组织、存储和管理数据的仓库”。作为网络的一个重要应用,数据库在网站建设中发挥着重要的作用,与普通网站相对而言,具有数据库功能的网站网页我们通常称为动态页面,也就是说页面不是一层不变的,页面上内容(或部分内容)是动态生成的,它可以根据数据库中相应部分内容的调整而变化,使网站内容更灵活,维护更方便,更新更便捷。SQL Server数据库作为微软推出的以标准JET为引擎的桌面型数据库系统,由于具有操作简单、界面友好等特点,具有较大的用户群体。本系统数据库采用SQL S
展开阅读全文