基于Jsp和Sql Server 2008实现的在线公益平台系统

Gentleman

发布日期: 2020-09-20 12:31:14 浏览量: 844
评分:
star star star star star star star star star star
*转载请注明来自write-bug.com

摘要

随着全社会对环境保护、资源节约、弱势群体以及对生物多样性保护的关注度越来越高,各种公益组织和志愿者组织也越来越多。利用网络,不但可以更快更广地把公益组织传播给更多人知道,也可以通过网络在线捐助的方式奉献自己的爱心。在软件工程指导思想下,基于B/S构架、JAVA、JSP平台和SQL Server 2008数据库平台,为满足用户能在虚拟网络上快捷便利地进行捐助,以及在现实世界进行公益活动的真实体验的两种不同需求,设计了在线公益平台包含登录模块、个人信息管理员管理模块、同城活动管理模块、在线捐助模块,为用户在线报名参与公益活动带来了很大的便利,同时组织者也可以根据在线报名志愿者的资料,更好地组织管理志愿者活动。

关键词:JSP;数据库;公益平台

Abstract

With the whole society of environmental protection, resource conservation, vulnerable groups, as well as the protection of biological diversity of concern is getting higher and higher, a variety of public welfare organizations and volunteer organizations are also more and more. Using the network, not only can be faster and more widely spread to more people to know the public welfare organization, but also through the network online donation way to sacrifice their love. In the guidance of the software engineering, JAVA, B/S framework, JSP platform and SQL Server 2008 database based on the platform, to meet the user can be convenient to donate in the virtual network, and the public welfare activities in the real world the real experience of two kinds of demand, the design of the online public platform includes login module, personal information manager the management module and the activities of the city management module, online donation module, registration for online users to participate in public welfare activities to bring great convenience at the same time, the organizers can also according to the online registration volunteer information, better management of volunteer activities.

Key words: JSP; database; public service platform

引言

中国正处于发展转型的关键时刻,发展公益也正契合当今时代国情的需求。公益的发展是在保护弱势群体,促进社会公平,缓和社会矛盾,有助于国家实现构建和谐社会的重要目标。在网络技术的推动下,互联网已渗透到政治、文化、经济、生活当中,公益活动借助网络媒体多渠道传播、信息强时效性、及时互动反馈登优势。本文基于此,设计在线公益平台,依托互联网,有助于发觉公众的善心,拉近人与人的距离使公益活动走上快速发展的道路。

1 课题分析

1.1 课题背景

21世纪以来,网络社会的崛起转化了人类的社会生活图景。以信息技术为中心的技术革命,正在加速社会物质基础的重构。人们开始习惯穿梭于网络与现实的世界之中。互联网信息技术的日益普及,创造了新的信息传播形式和互动沟通方式,也催生了新的组织形态,它既塑造着生活,同时也为生活所塑造。

网络时代的今天,互联网信息技术已经普遍渗透到了人类社会生活的全部领域,中国的公益领域也不例外。尽管在上世纪短短十年中,以“希望工程”为标甘志的中国公益事业取得了巨大的成功,但带有强烈的“官办”色彩强烈的“组织化公益”并非真正意义上或现代意义上的公益。在互联网技术力量的推动下,网络公益力量开始觉醒,并积极推动中国公益事业实现从传统向现代的转型。

近年来,中国公益事业进入了高速发展时期,各类公益组织数量呈几何式增长,其中网络公益组织增速最快,据统计,截止2011年底,各类网络公益组织已经超过11万个。网络公益力量的迅速崛起,无形中敦促中国公益事业加快现代公益转型的脚步。追溯网络公益兴起的过程,不得不提到几个关键性的时间节点。2008年汉川地震,公众自发的善举通过互联网传向全国各地。正是互联网及时性的报道和跨时空式的信息传播,让人们感受到了一种前所未有的网络公益力量。2011年“微博公益”的出现更是推动了网络公益的发展,同时也揭露了现实世界中公益的阴暗面。河南宋庆龄基金会巨额劝募资金事件、红十字会郭美美事件等负面新闻在网络上频繁曝光,掀起了一股强有力的公益问责风暴。正所谓“祸兮福之所伏,福兮祸之所倚”。国内慈善公益机构频繁遭遇的公信力危机,洽恰成为了中国公益事业走向公开透明的关键转折点。现实的巨大压力与公众高昂的呼声,无疑都催促着中国社会急需一股透明、公开的力量来践行公益。同一年,“免费午餐”、“微博打拐”“大爱清尘”等网络公益项目突破了以往公益项目的运作模式,秉承公开透明、人人皆可参与的理念取得了巨大成功。在中国这个特定的环境下,网络被公众赋予了新的角色,它似乎成为公众了解、参与、监督公益事业,实现公益诉求,争取公民参与权和话语权的“唯一”途径[1]。

对于网络公益力量的崛起,学界已有所关注。例如,北京师范大学中国公益研究院,其发布的《走向现代慈善一2011中国公益事业年度发展报告》对2011年中国公益慈善界的热点事件进行了分析,该报告认为互联网等新技术创新了公众慈善参与模式,促进、动员传统慈善走向现代“全民公益”慈善的转型。在长期对网络公益的关注下,笔者意识到在网络公益力量日益壮大的今天,给予网络公益项目更多的关注是十分必要的。虽然,学界己对其有所关注,但对网络公益的研究还比较零散,缺少更为深入、系统的实证研究。特别是针对网络公益项目的实证研究更是十分匾乏。尽管,网络公益己经在技术和制度的结合上做了大量的探索,但如何借助网络技术建立一套有效的动员参与机制、通过网络有效整合公益资源等问题都是网络公益有待深入研究的问题。

1.1.1 国内研究概况

国内研究来看,微信公益传播等在线公益平台尚属新兴的媒介现象,例如微信公益传播是公益在微信平台上的传播,既具有公益传播的特点也有微信传播的特点。在媒体与公益传播的研究中,许多学者着重梳理不同媒介形式对公益传播的影响。传统公益传播主要是借助报纸、电视等传统媒体进行公益传播,四川大学的王炎龙在《我国媒体公益传播研究分析》中,他通过描述报纸、广播、电视、新媒体在公益传播过程中的发展现状,归纳总结了公益在以传统媒体与新媒体为载体进行传播时所展现的特点。报媒凭借自身的号召力影响着公益发展趋势,广播的范围覆盖要求公益传播的内容必须多元化,多形态的传播形式对公益营销和价值塑造具有重要作用,新媒体的技术进步拓展了公益的传播渠道。网络公益传播是通过互联网平台进行公益传播。成都理工大学王颖的硕士论文《我国网络媒介中的公益传播现象研究》,概述了公益传播的四种类型,对网络公益传播的性质和内容进行了总结,分析了网络公益传播质效性、关联性、低成本性等传播特点,将网络公益传播与传统媒体的公益传播进行了对比分析,最后指出了网络媒介在传播上的劣势并提出了策划网络公益活动吸引网民参与等发展建议。

在《网络公益慈善传播研究》中,王心论述了企业、公益慈善组织、网民、媒体作为传播主体的网络公益慈善传播,并根据这四个主体的传播特点提出了网络信息浅层化、个体传播差异化、公益资源不均等传播问题。在对企业公益行为的研究中,主要从公益营销的角度进行分析。王炎龙等人认为,企业通过投资公益活动、建立基金等方式开展公益营销,有助于企业承担应有的社会责任,树立良好的品牌形象,增强行业竞争力。

1.1.2 国外研究概况

国外对于公益组织的研究主要以不同国家、不同地区、不同领域的个案研究居多。日本早稻田大学的 Hiromitsu Kataoka (2007)研究了亚洲非盈利组织的电子化治理。他认为,非盈利组织的社会资本较为分散,如果想要获得更好的“协作性优势”,非盈利组织之间应该进行合作,通过电子化治理形成社会网络。社会网络不仅便于接收海外的捐赠,集中获得有效的社会资本,还能够建立信任关系,将捐赠交易过程变得更加透明化。以 WEB 2.0 为基础的网络平台结束了单相沟通,通过优化用户体验,提高互动频率,达到增加网站访问量的最终效果。显而易见,研究社交网络平台对于公益组织、企业、个人等公益发起人如何通过平台获得社会资源,赢得社会信任是至关重要的。

国外对公益传播的研究也深于国内。以公益广告为例,美国的公益广告模式是由政府、企业、媒体、广告公司等多方共同参与运转的,明确了公益广告的四大责任主体:“美国广告理事会负责组织,企业负责捐款,广告公司负责制作,媒体负责发布。”鉴于美国的广告模式,英国、法国、日本等国也纷纷效仿,建立起了适合本国国情的公益广告模式。法国模式以慈善捐款为主,以提供人道援助宗旨,英国模式重视依托于企业的社会营销,日本则以广告评议会为核心,企业、广告公司、媒体也是公益广告的发布者。

1.2 研究目的及意义

互联网时代下我国公益传播迎来了新机遇、新挑战。微信微博等媒介平台的出现也让我们应该思考如何更有效地运用新媒体发展公益事业。公益发展与网络媒体的关系日趋紧密,研究分析在线公益传播的基本构型,进而设计开发便捷的在线公益平台,对传播模式进行归纳,总结应对策略,这对我国在线公益传播发展具有重要意义。

从理论意义上讲,对在线公益系统性研究的论文目前较少,对公益传播的研究主要集中在传统公益传播的研究、非政府组织的传播研究现状等。对在线公益传播的研究主要是对在线公益的发展潜力、公益组织网络传播的策略研究。选取公益传播的网络视角,探讨在网络这种新媒介特质下,公益传播的基本模式、构型以及问题策略等,借助传播学理论分析在线公益案例不仅有利于丰富公益传播的基本理论,促进政府、公益组织、企业等传播主体利用网络平台进行公益传播,还有助于推进我国公益事业的发展。

从现实意义上讲,随着互联网的发展,新媒体的技术进步正在改变中国公益发展的传统格局,传统的公益活动模式将被彻底颠覆。人们参与公益的热情与日俱增,对公益的关注愈发频繁,但公益的发展疏于漏洞面临着巨大的信任危机。近期,公益组织被质疑的事件比比皆是,2014 年 1 月 6日,周筱赟在网上举报,质疑李亚鹏发起的嫣然天使基金存黑幕,4 月 22 日,四月网发布微博质疑李连杰贪污壹基金芦山地震赈灾款,8 月 5 日,女演员袁立在微博中以捐款人身份对天使妈妈基金财务问题提出质疑,当“冰桶挑战”风靡微博时,渐冻人组织对瓷娃娃罕见病关爱中心的接受善款资格及善款使用方向提出质疑,这迫使公益组织必须转型。在线公益的研究与设计有助于让公益组织更好地转变社会角色,不再是公益活动的绝对领导者,而是要增加与公益参与者的互动,与公众共同见证公益活动的成果,调动团队的公益资源,接受群众的监督,重获公众对公益组织的信任[2]。

1.3 本文所做工作

本文数据库系统的相关理论用于实践,在系统开发需求分析的过程中,具体所做的工作有:

  • 在该系统的可行性分析和规划阶段,对于互联网在公益平台上的运用和发展背景做了简单的介绍,和实现系统的技术路线

  • 在该系统的需求分析和总体设计阶段,给出了系统实现的功能模块和基本构架

  • 在详细设计和具体实施阶段完成了对于在线公益平台的功能模块设计、功能设计、数据库设计,并完成实现了具体的功能

2 技术路线及开发工具

2.1 技术路线

2.1.1 技术思路

本系统设计了针对不同用户身份而专设的功能页面,完成其各自特有的功能。利用软件工程原理和结构化程序设计思想,基于Browser/Server软件体系构架,结合关系数据库平台、JAVA与JSP编程技术、Servlet、JAVA EE体系结构中的MVC模式,完成实现了整个系统。

2.1.2 技术路线图

2.2 开发技术及工具

2.2.1 开发技术

JAVA作为一种历史不长的计算机语言,由于其自身的特点,得到了众多开发者的青睐,在许多编程语言热门程度排行中都名列前茅。JAVA语言由于其简单性、网络特性、面向对象性、平台无关性、鲁棒性、安全性、多线程性、解释性等特点,适合于各种对于执行效率要求不是很高、很苛刻的应用[8] 。

JSP采用JAVA作为脚本语言,在实际运行的时候被编译成为Servlet,这种优势使得JSP能够运行在所有类型的服务器上,面对不同的需求或者不同的软硬件开发环境,JSP都能够应对。JSP是从JAVA语言中产生出来的,其在很大程度上和JAVA 有相似之处[7]。

JAVA EE就是为了解决“企业应用”方面的问题,将工作划分为不同的层次,包括如下三层:服务器端业务逻辑层、服务器端表示层、客户端表示层。JAVA EE的应用部署在JAVA EE服务器中,JAVA EE服务器支持Web组件以及三层构架,并使用标准的JAVA EE来处理不同事务[6]。

所谓MVC模型就是将数据、逻辑处理、用户界面分离的一种方法。

  • M(Model, 模型):用于数据处理、逻辑处理

  • V(View,视图):用于显示用户界面

  • C(Controller,控制器):根据客户端的请求控制逻辑走向和画面

而在Java中,MVC这三个部分则分别对应于 JavaBeans、JSP和Servlet。

  • M = JavaBeans(java类):用于传递数据,拥有与数据相关的逻辑处理

  • V = JSP:从Model接收数据并生成HTML

  • C = Servlet:接收HTTP请求并控制Model和View

本系统的运行模式为B/S构架,所谓B/S构架(Browser/Server,浏览器/服务器模式)是Web技术兴起后的一种网络结构模式,Web浏览器如IE、Mozila FireFox、Chrome等是客户端最主要的应用软件[ 9]。这种模式统一了客户端,将系统的核心功能实现部分集中到了服务器上,简化了系统的开发、使用以及维护。在B/S模式中,浏览器以超文本形式向Web服务器提出访问数据库服务器,数据库服务器得到请求后,进行验证并处理,然后将处理后的结果返回给Web服务器,Web端再一次将得到的所有结果进行转化,换成HTML形式,转发给浏览器以页面的形式显示。

所谓数据库,即就是数据存放的地方,需要长期存放在计算机内,有组织、可共享的数据集合。数据库中的数据按照一定的数据模型组织、存储和描述,具有较小的冗余度、较高的数据独立性和易扩展性,可以为不同的用户所共享。

而数据库的内容通过数据库管理系统(Database Management System, DBMS)来管理。数据库管理系统是指数据库系统中对于数据进行管理的软件,它是数据库系统的核心组成部分,用户对数据库的一切操作,比如定义、查询、更新以及各种控制,都是通过数据库管理系统来操作的。

关系数据库是由数据表和表之间的关联组成。其中的数据表通常是一个由列和行组成的二维表,每一个数据表分别说明数据库中某一个特定方面或部分的对象及其属性。数据表中的行通常叫做元祖,它代表众多具有相同属性的对象中的一个;数据库表中的列通常叫做属性,它代表相应数据库表中存储对象的共有属性。

关系数据库由于其建立在严格的数学概念基础之上,概念单一,结构简单、清晰、用户易懂易用,存取路径等物理操作对用户透明等特点,成为当今的最主流数据库技术。

2.2.2 开发工具

本系统在Windows 7 操作系统上开发,Web服务器采用Apache Tomcat 7.0,数据库服务器采用了SQL Server 2008。

由Microsoft公司发布的SQL Server 2008 产品是一个典型的关系型数据库管理系统,以其强大的功能,操作的简易、可靠的安全性,等到了众多用户的认可,应用也越来越广泛[5]。而最新发布的SQL Server 2008 ,在其前一版本SQL Server 2005的强大功能基础之上,为用户提供了一个完整的数据理论和分析解决方案[10]。

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。本系统的开发将使用Eclipse的neon版本。

如果要运行JSP的话,还需要一个Servlet/JSP容器来支持它,当今流行的Servlet/JSP容器有Tomcat、WebLogic等[4]。Tomcat是一个免费开源的Web应用服务器,非常适合于在中小型和并发访问用户不是很多的场合使用,是开发和调试JSP程序的首要选择。Tomcat收到广大开发者的青睐,由于其运行时占用系统资源小,扩展性好,并且支持负载平衡和邮件服务等开发引用系统常用的功能[3]。

3 功能分析与设计

3.1 需求分析

3.1.1 用户调研

本系统中的用户角色可以分为普通用户、主办方用户、普通管理员、系统管理员。为了能更加清晰的体现各用户的不同功能权限,在实际开发以前针对各个角色都做了一定的相关资料收集,一定的考察,让系统的功能、环境等经可能的符合实际使用情况。

3.1.2 初步设计

根据用户对本系统在功能、性能、行为、设计约束等方面的要求,系统大体功能如下:

  • 三个角色分别登录,可以进入属于自己角色的特有的操作界面

  • 各个角色的用户登录了之后可以对自己的基本信息进行修改、查询

  • 添加、删除、修改各个角色的功能可以由管理员完成

  • 普通用户可以除了对自己的基本信息进行查询、修改意外,还可以进行在线捐助、参加同城活动等

  • 主办方登录之后可以对自己所管理的活动进行基本的查看、增加、修改的操作

3.2 系统设计

3.2.1 系统流程设计

根据对需求分析阶段所得到的信息进行分析,将系统流程细化如图3-1:

3.2.2 系统功能分析

为了满足不同角色用户的需求,将本系统的用户角色分为管理员、普通用户、主办方三类角色,其各自具体功能如下:

管理员

管理员可以进行增加、删除普通用户和主办方。

其中系统管理员除了可以进行增加、删除普通用户和主办方,还可以增加、删除普通管理员。

普通用户

  • 查询、修改自己的基本信息

  • 查询活动信息以及自己参加的活动情况

  • 查询自己的在线捐助记录

  • 查询主办方信息

  • 在线捐款

  • 参加同城活动

  • 申请主办方

主办方用户

  • 查询、修改自己的基本信息

  • 查询活动信息以及自己参加的活动情况

  • 查询自己的在线捐助记录

  • 查询主办方信息

  • 在线捐款

  • 接受在线捐助

  • 参加同城活动

  • 发起同城活动

  • 修改同城活动信息

3.3 模块划分

按照功能分析图将系统划分为如下几个模块:

  • 用户登录模块,身份验证,读取数据库中的用户信息,验证用户的登陆方式、用户名及密码,全部通过则进入系统,系统分为管理员和普通用户两个登陆页面

  • 个人信息管理模块,修改保存个人信息(面向前台用户),所有用户登陆后可以修改自己除用户名外的所有信息(包括密码),保存后更新

  • 管理员管理模块,该模块实现了对于三种角色的用户的管理

  • 同城活动管理模块,同城活动管理面向主办方,主办方登陆后可以对自己名下的同城活动进行管理。功能包括:创建同城活动,修改活动信息

  • 在线捐助模块,在线捐助面向前台用户,系统的所有前台用户登陆成功后,都可以通过系统提供的界面进行在线捐助

3.4 系统总体设计

在线捐助和同城活动系统的主要功能是为用户提供一个简单有效的公益社区,以便用户在网络上快速地对自己感兴趣地活动主办方进行资金方面地捐助,或者参与同城活动,进行实际的行为支持。同时主办方也可以根据在线报名志愿者的资料,更好地组织管理志愿者活动。

系统的功能结构分为前台和后台两个部分:

前台

后台

3.5 概念结构设计

3.5.1 数据库设计

  • users(UserID,UserMail,Password,UserName,Sex,Tel,City,UserCover)

  • organizer (UserID, UserMail, UserName, Class, Tel, City, Number, AdminName, UserCover, Intro, Remark,)

  • admin (UserName, Password, Role)

  • donation (ID, DonorID, RecipientID, Amount, Time, DonorName, DonorTel, Remark)

  • activity (ActID, OrgName, ActName, ActClass, StartTime, EndTime, Address, Intro, Cover)

  • actMember (ActMemberID, ActName, UserMail, UserName)

3.5.2 E-R图

管理员实体E-R图

普通客户实体E-R图

主办方实体E-R图

捐助记录实体E-R图

同城活动实体E-R图

活动成员实体E-R图

系统总体E-R图

3.6 系统核心功能设计

3.6.1 核心功能顺序图

UML通过视图化的表示机制从多个侧面对系统的分析和设计模型进行刻画,其中被广泛运用的顺序图是属于行为图的一种,强调了对象之间发生消息传递的时间顺序。

系统整体数据流动的顺序图如图3-26:

首先用户在JSP页面提交表单,数据被Servlet接收到,并根据用户提交表单的不同情况决定可能迁移到哪些不同的页面。紧接着将对应的提交数据作为参数传递给对应的DatabaseBean类,在DatabaseBean类中访问数据库并且进行相关的操作,然后在对应的页面空间设置下一个JSP页面显示需要的数据并且返回。在Servlet中根据DatabaseBean类的方法运行结果,判断应该如何进行页面迁移和显示结果。最后对应的JSP页面显示在用户的浏览器中。

3.7 逻辑结构设计及物理设计

3.7.1 数据库关系表

admin(管理员表)

序号 字段 别名 数据类型 数据长度 是否可空
1 UserName 用户名 varchar 50 PK
2 Password 密码 varchar 50
3 Role 角色 varchar 50

其创建代码如下:

  1. CREATE TABLE [dbo].[admin](
  2. [UserName] [varchar](50) NOT NULL,
  3. [Password] [varchar](50) NOT NULL,
  4. [Role] [varchar](50) NOT NULL,
  5. CONSTRAINT [PK_admin] PRIMARY KEY CLUSTERED
  6. ([UserName] ASC)WITH (PAD_INDEX = OFF,
  7. STATISTICS_NORECOMPUTE = OFF,
  8. IGNORE_DUP_KEY = OFF,
  9. ALLOW_ROW_LOCKS = ON,
  10. ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  11. ) ON [PRIMARY]

users(用户表)

序号 字段 别名 数据类型 数据长度 是否可空
1 UserID 用户序号 int 4 PK
2 UserMail 用户邮箱 varchar 50
3 Password 密码 varchar 50
4 UserName 用户名 varchar 50
5 Sex 性别 varchar 50
6 Tel 电话 varchar 50
7 City 城市 varchar 50
8 UserCover 用户头像 varchar 50
  1. CREATE TABLE [dbo].[users](
  2. [UserID] [int] NOT NULL,
  3. [UserMail] [varchar](50) NOT NULL,
  4. [Password] [varchar](50) NOT NULL,
  5. [UserName] [varchar](50) NOT NULL,
  6. [Sex] [varchar](50) NOT NULL,
  7. [Tel] [varchar](50) NOT NULL,
  8. [City] [varchar](50) NOT NULL,
  9. [UserCover] [varchar](50) NULL,
  10. CONSTRAINT [PK_users] PRIMARY KEY CLUSTERED
  11. ([UserID] ASC)WITH (PAD_INDEX = OFF,
  12. STATISTICS_NORECOMPUTE = OFF,
  13. IGNORE_DUP_KEY = OFF,
  14. ALLOW_ROW_LOCKS = ON,
  15. ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  16. ) ON [PRIMARY]

organizer(主办方表)

序号 字段 别名 数据类型 数据长度 是否可空
1 UserID 用户序号 int 4 PK
2 UserMail 用户邮箱 varchar 50
3 UserName 用户名 varchar 50
4 Class 类别 varchar 50
5 Tel 电话 varchar 50
6 City 城市 varchar 50
7 Number 人数 int 4
8 AdminName 管理用户 varchar 50
9 UserCover 用户头像 varchar 50
10 Intro 简介 varchar 50
11 Remark 备注 varchar 50

其创建代码如下:

  1. CREATE TABLE [dbo].[organizer](
  2. [UserID] [int] NOT NULL,
  3. [UserMail] [varchar](50) NOT NULL,
  4. [UserName] [varchar](50) NOT NULL,
  5. [Class] [varchar](50) NOT NULL,
  6. [Tel] [varchar](50) NOT NULL,
  7. [City] [varchar](50) NOT NULL,
  8. [Number] [int] NULL,
  9. [AdminName] [varchar](50) NOT NULL,
  10. [UserCover] [varchar](50) NULL,
  11. [Intro] [varchar](2000) NOT NULL,
  12. [Remark] [varchar](2000) NULL,
  13. CONSTRAINT [PK_organizer_1] PRIMARY KEY CLUSTERED
  14. ([UserID] ASC)WITH(PAD_INDEX = OFF,
  15. STATISTICS_NORECOMPUTE = OFF,
  16. IGNORE_DUP_KEY = OFF,
  17. ALLOW_ROW_LOCKS = ON,
  18. ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  19. ) ON [PRIMARY]

donation(捐助记录表)

序号 字段 别名 数据类型 数据长度 是否可空
1 ID 序号 int 4 PK
2 DonorID 捐助者序号 int 4 FK
3 RecipientID 接收者序号 int 4 FK
4 Amount 金额 int 4
5 Time 时间 varchar 50
6 DonorName 捐助者姓名 varchar 50
7 DonorTel 捐助者电话 varchar 50
8 Remark 备注 varchar 100

其创建代码如下:

  1. CREATE TABLE [dbo].[donation](
  2. [ID] [int] NOT NULL,
  3. [DonorID] [int] NOT NULL,
  4. [RecipientID] [int] NOT NULL,
  5. [Amount] [int] NOT NULL,
  6. [Time] [varchar](50) NOT NULL,
  7. [DonorName] [varchar](50) NULL,
  8. [DonorTel] [varchar](50) NULL,
  9. [Remark] [varchar](100) NULL,
  10. CONSTRAINT [PK_donation] PRIMARY KEY CLUSTERED
  11. (
  12. [ID] ASC
  13. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  14. ) ON [PRIMARY]

activity(活动信息表)

序号 字段 别名 数据类型 数据长度 是否可空
1 ActID 活动序号 int 50 PK
2 OrgName 主办方 varchar 50
3 ActName 活动名称 varchar 50
4 ActClass 活动类型 varchar 50
5 StartTime 开始时间 varchar 50
6 EndTime 结束时间 varchar 50
7 Address 地址 varchar 50
8 Intro 简介 varchar 50
9 Cover 头像 varchar 50

其创建代码如下:

  1. CREATE TABLE [dbo].[activity](
  2. [ActID] [int] NOT NULL,
  3. [OrgName] [varchar](50) NOT NULL,
  4. [ActName] [varchar](50) NOT NULL,
  5. [ActClass] [varchar](50) NOT NULL,
  6. [StartTime] [varchar](50) NOT NULL,
  7. [EndTime] [varchar](50) NOT NULL,
  8. [Address] [varchar](50) NOT NULL,
  9. [Intro] [varchar](50) NOT NULL,
  10. [Cover] [varchar](50) NULL,
  11. CONSTRAINT [PK_activity] PRIMARY KEY CLUSTERED
  12. ([ActID] ASC)WITH (PAD_INDEX = OFF, S
  13. TATISTICS_NORECOMPUTE = OFF,
  14. IGNORE_DUP_KEY = OFF,
  15. ALLOW_ROW_LOCKS = ON,
  16. ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  17. ) ON [PRIMARY]

actMember(活动成员信息表)

序号 字段 别名 数据类型 数据长度 是否可空
1 ActMemberID 成员序列 int 4 PK
2 ActName 活动名称 varchar 50
3 UserMail 用户邮箱 varchar 50
4 UserName 用户姓名 varchar 50

其创建代码如下:

  1. CREATE TABLE [dbo].[actMember](
  2. [ActMemberID] [int] NOT NULL,
  3. [ActName] [varchar](50) NOT NULL,
  4. [UserMail] [varchar](50) NULL,
  5. [UserName] [varchar](50) NULL,
  6. CONSTRAINT [PK_actMember] PRIMARY KEY CLUSTERED
  7. ([ActMemberID] ASC
  8. )WITH (PAD_INDEX = OFF,
  9. STATISTICS_NORECOMPUTE = OFF,
  10. IGNORE_DUP_KEY = OFF,
  11. ALLOW_ROW_LOCKS = ON,
  12. ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
  13. ) ON [PRIMARY]

3.7.2 数据库关系图

数据库个表之间的关系图如下:

4 开发与实现

4.1 系统核心程序编写

4.1.1 Jsp+Servlet框架搭建

MVC构架,它提供了一个控制器Servlet来处理页面导航。它的View层就是JSP;它的Contoller层是一个独立的Servlet类,叫做ActionServlet;它的Modole层包括了Form和Action的JAVA类。

在本系统login.jsp文件中,通过<form action="servlet/login">,表格将这种请求提交给Servlet,由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成。<servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。 一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。例如注册模块的web.xml的配置:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4"
  3. xmlns="http://java.sun.com/xml/ns/j2ee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  6. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  7. <welcome-file-list>
  8. <welcome-file>index.jsp</welcome-file>
  9. </welcome-file-list>
  10. <servlet>
  11. <servlet-name>login</servlet-name>
  12. <servlet-class>client.login</servlet-class>
  13. </servlet>
  14. <servlet-mapping>
  15. <servlet-name>login</servlet-name>
  16. <url-pattern>/servlet/login</url-pattern>
  17. </servlet-mapping>
  18. </web-app>

配置好web.xml文件后,编写用于执行的login.java类,调用DB,java类的相关连接数据库,登录验证的函数,将login,jsp的页面传送过来的参数,通过login.java来进行判断验证和页面跳转控制[9]。

4.1.2 访问数据库DB公共类编写

DB,java类作为整个系统连接数据库,操纵数据库的所有方法所在的公共类,其包含了包括各个角色登录验证方法,各个角色和产品的操作、各个角色对于各自相关操作的所有方法,其核心代码如下:

  1. package client;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. public class DB {
  8. public DB()
  9. {
  10. super();
  11. }
  12. public ResultSet select(String sql)
  13. {
  14. String url="jdbc:sqlserver://localhost:1433;DatabaseName=GY";
  15. String userName="sa";
  16. String password="sa";
  17. Connection conn=null;
  18. Statement stmt=null;
  19. ResultSet rs=null;
  20. try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}
  21. catch(ClassNotFoundException e){System.err.print("连接数据库失败");}
  22. try
  23. {System.out.println("lianjiechengg");
  24. conn=DriverManager.getConnection(url,userName,password);
  25. stmt = conn.createStatement();
  26. rs=stmt.executeQuery(sql);
  27. ////
  28. //rs.next();
  29. /////
  30. return rs;
  31. }catch(SQLException e){System.out.println("查询失败");}
  32. return rs;
  33. }
  34. public void insert(String sql)
  35. {
  36. String url="jdbc:sqlserver://localhost:1433;DatabaseName=GY";
  37. String userName="sa";
  38. String password="sa";
  39. Connection conn=null;
  40. Statement stmt=null;
  41. try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}
  42. catch(ClassNotFoundException e){System.err.print("连接数据库失败");}
  43. try
  44. {
  45. conn=DriverManager.getConnection(url,userName,password);
  46. stmt = conn.createStatement();
  47. stmt.executeUpdate(sql);
  48. conn.close();
  49. }catch(SQLException e){System.out.println("插入失败");}
  50. }
  51. public void update(String sql)
  52. {
  53. String url="jdbc:sqlserver://localhost:1433;DatabaseName=GY";
  54. String userName="sa";
  55. String password="sa";
  56. Connection conn=null;
  57. Statement stmt=null;
  58. try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}
  59. catch(ClassNotFoundException e){System.err.print("连接数据库失败");}
  60. try
  61. {
  62. conn=DriverManager.getConnection(url,userName,password);
  63. stmt = conn.createStatement();
  64. stmt.executeUpdate(sql);
  65. conn.close();
  66. }catch(SQLException e){System.out.println("修改失败");}
  67. }
  68. public void delete(String sql)
  69. {
  70. String url="jdbc:sqlserver://localhost:1433;DatabaseName=GY";
  71. String userName="sa";
  72. String password="sa";
  73. Connection conn=null;
  74. Statement stmt=null;
  75. try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}
  76. catch(ClassNotFoundException e){System.err.print("连接数据库失败");}
  77. try
  78. {
  79. conn=DriverManager.getConnection(url,userName,password);
  80. stmt = conn.createStatement();
  81. stmt.executeUpdate(sql);
  82. conn.close();
  83. }catch(SQLException e){System.out.println("删除失败");}
  84. }
  85. }

4.2 系统实施

4.2.1 面向管理员功能

面向管理员的主页具备如下的功能:

  • 查询、修改自己的基本信息

  • 添加、删除、修改普通用户、主办方

  • 其中系统管理员还可以添加、删除普通管理员

实际效果如下:

4.2.2 面向普通用户功能

面向普通客户的主页具备如下的功能:

  • 查询、修改自己的基本信息

  • 查询活动信息以及自己参加的活动情况

  • 查询自己的在线捐助记录

  • 查询主办方信息

  • 在线捐款

  • 参加同城活动

  • 申请主办方

实际效果如下:

4.2.3 面向主办方功能

面向销售人员的主页具备如下的功能:

  • 查询、修改自己的基本信息

  • 查询活动信息以及自己参加的活动情况

  • 查询自己的在线捐助记录

  • 查询主办方信息

  • 在线捐款

  • 接受在线捐助

  • 参加同城活动

  • 发起同城活动

  • 修改同城活动信息

实际效果如下:

5 系统测试与应用

5.1 系统测试运行环境

系统运行环境有服务器端、因特网、客户端即浏览器构成。

5.1.1 服务器端运行环境

服务器端应由Web服务器、应用程序服务器、数据库服务器等组成。

服务器运行环境基本要求:操作系统至少为Windows XP及其以上,数据库服务器为SQL Server 2008,安装有Tomcat 7.X及其以上版本、Eclipse neon版本。

5.1.2 客户端(浏览器)运行环境

系统能够用于访问各类Internet的计算机,只要计算机能够支持TCP/IP协议,操作系统为Windows XP及其以上,浏览器为IE、Chrome等都可。

5.2 数据库测试与运行

5.2.1 管理员管理功能测试

管理人员进入自己的界面,对其余各个角色的人员进行相应的操作,如下图所示:

5.2.2 主办方管理功能测试

主办方进入自己的界面,对其余各个角色的人员进行相应的操作,如下图所示:

5.2.3 用户在线捐助功能测试

普通客户进入自己的界面,对其余各个角色的人员进行相应的操作,如下图所示:

5.2.4 用户参加同城活动功能测试

客服人员进入自己的界面,查看自己的收件箱并进行相应的操作,如下图所示:

6 总结与展望

6.1 总结

随着全社会对环境保护、资源节约、弱势群体以及对生物多样性保护的关注度越来越高,各种公益组织和志愿者组织也越来越多。利用网络,不但可以更快更广地把公益组织传播给更多人知道,也可以通过网络在线捐助的方式奉献自己的爱心。为满足用户能在虚拟网络上快捷便利地进行捐助,以及在现实世界进行公益活动的真实体验的两种不同需求,设计该系统的核心功能有:

  • 用户登录:身份验证,读取数据库中的用户信息,验证用户的登陆方式、用户名及密码,全部通过则进入系统,系统分为管理员和普通用户两个登陆页面

  • 个人信息管理:修改保存个人信息(面向前台用户),所有用户登陆后可以修改自己除用户名外的所有信息(包括密码),保存后更新

  • 用户管理:普通会员管理面向管理员,管理员可以在后台系统界面中对普通会员进行添加、查看和删除操作

  • 主办方管理:主办方管理面向管理员,一般管理员可以在后台系统界面中对主办方进行添加、查看、删除操作

  • 系统管理员管理:管理员管理面向系统管理员,系统管理员可以对一般管理员的信息进行添加、修改密码、删除操作

  • 同城活动管理功能:同城活动管理面向主办方,主办方登陆后可以对自己名下的同城活动进行管理。功能包括:创建同城活动,修改、活动信息

  • 在线捐助功能:在线捐助面向前台用户,系统的所有前台用户登陆成功后,都可以通过系统提供的界面进行在线捐助

目前,本系统的大体核心功能都基本实现,但是整个系统的应用上来说还是有很多的不足。

通过对本课题的研究以及原型系统的设计与开发,在进一步巩固我计算机专业的同时也大大的提高了软件的开发与实践的能力。在开发实践的过程中,也让我对JAVA、JSP、SQL Server 、Tomcat、等软系统件开发所涉及的环境、平台、工具等有了根深一步的认识。也让我认识到,要做出一个出色的管理系统软件,不仅仅要进行严谨的调研考察,做出准确的需求分析,而且在设计开发的过程中也要遵守标准的开发方法,才可以开发出优秀的系统软件。

6.2 展望

如今,随着全社会对环境保护、资源节约、弱势群体以及对生物多样性保护的关注度越来越高,各种公益组织和志愿者组织也越来越多。利用网络,不但可以更快更广地把公益组织传播给更多人知道,也可以通过网络在线捐助的方式奉献自己的爱心。本小组设计的在线公益平台满足用户能在虚拟网络上快捷便利地进行捐助,以及在现实世界进行公益活动的真实体验的两种不同需求,同时我们还对机构进行个性化的分类,并提供机构所开展项目的详细介绍。用户可以便利地进行在线报名参与公益活动,组织者也可以根据在线报名志愿者的资料,更好地组织管理志愿者活动。在这个快节奏的生活之中,快捷便利的在线参与慈善事业,减少了传统过于复杂的捐款流程以及一些捐助过程中的不透明现象,如此高效的公益活动参与系统,符合自身利益,是未来公益事业筹募的发展方向。

参考文献

[1] 胡少雄,基于微信平台的公益传播研究[D].内蒙古:内蒙古师范大学,2015:4-6

[2] 王颖,我国网络媒介中的公益传播现象研究[D].成都:成都理工大学,2010:6-8

[3] 李建刚,秦兴桥,郑雨贝. JSP网络编程技术与实践[M].北京:清华大学出版社,2008:10-112

[4]沈应逵,曾凌.Java Web数据库系统应用开发与实践[M].北京:人民邮电出版社,2008:390-404

[5] 崔群法,祝红涛,赵喜来. SQL Server 2008 从入门到精通[M].北京:电子工业出版社,2009:203-244

[6] 刘乃丽.精通Java EE项目案列—基于Eclipse、Spring、Struts、Hibernate[M]. 北京:人民邮电出版社,2008:155-237

[7] 王萍萍,崔红义,孙强. JavaScript应用开发技术详解[M].北京:科学出版社,2008:20-53

[8] Copeland. L.Covisint technology partners sign equity agreements [J]. Computerworld, 2001(35): 30-31

[9] Hayes. F. Counting Casualtie [J].Computerworld, 2001, 35(25): 62-66

[10] Disabatino. J. From Fee to Free To Fee Again: Britannica.com Restructures [J].Computeeworld, 2001, 35(12): 16-18

上传的附件 cloud_download 基于Jsp和Sql Server 2008实现的在线公益平台系统.7z ( 5.11mb, 8次下载 )
error_outline 下载需要15点积分

发送私信

一个人幸运的前提,其实是ta有能力改变自己

10
文章数
24
评论数
最近文章
eject