本科毕业论文-—威客网的设计与实现.doc

上传人:教**** 文档编号:88293225 上传时间:2023-04-24 格式:DOC 页数:47 大小:1.95MB
返回 下载 相关 举报
本科毕业论文-—威客网的设计与实现.doc_第1页
第1页 / 共47页
本科毕业论文-—威客网的设计与实现.doc_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《本科毕业论文-—威客网的设计与实现.doc》由会员分享,可在线阅读,更多相关《本科毕业论文-—威客网的设计与实现.doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机科学与技术学院毕业设计(论文)论文题目威客网的设计与实现 指导教师职 称副教授学生姓名学 号专 业班 级系 主 任院 长起止时间2013年10月11日至2014年5月23日2014年5月23日目 录摘要iAbstractii第一章 绪论11.1选题的背景11.2选题的研究意义2第二章 关键技术介绍11.1 Java语言11.2 Mysql11.4 Spring2第三章 系统分析42.1 需求分析42.2可行性分析42.2.1技术可行性42.2.2经济可行性52.2.3操作可行性52.3 系统开发与运行环境分析5第四章 系统设计64.1 系统设计原则64.2 功能模块的划分64.3 威客网

2、的任务发布流程84.4 威客网的稿件提交流程84.5 数据库设计94.5.1系统E-R图94.5.2 数据库逻辑结构设计10第五章 系统实现135.1 Spring与Hibernate的整合135.2 Struts2、Spring与Hibernate的整合145.3 系统前台主要功能模块设计与实现145.3.1 任务实体类定义145.3.2 稿件实体类定义175.3.3 持久化操作默认实现类195.3.4 威客网站主界面设计与实现225.3.5 威客网用户注册设计与实现225.3.6 威客用户登陆设计与实现235.3.7威客发布任务设计与实现245.3.8 威客任务大厅设计与实现255.3.9

3、 威客用户提交稿件设计与实现265.3.10任务详细信息页面设计与实现275.3.11 我的威客界面设计与实现285.3.12威客网名人殿堂设计与实现285.3.13 威客网帮助中心设计与实现295.4 系统后台主要功能模块设计与实现315.4.1后台管理任务类别模块设计与实现315.4.2 后台管理所有任务模块设计与实现315.4.3 后台管理所有用户模块设计与实现315.4.4后台管理系统公告模块设计与实现325.4.5 后台管理帮助中心模块设计与实现33第六章 系统测试346.1系统测试原则346.2系统测试用例346.2.1用户注册测试346.2.2用户登录测试346.2.3任务发布测

4、试366.2.4稿件提交测试376.2.5其他测试38总结与展望39参考文献40谢 辞42威客网的设计与实现摘要:威客是指在网络时代凭借自己的能力(智慧和创意),在互联网上出售自己的富裕工作时间和劳动成果而获得报酬的人;而威客类网站的出现,为有知识生产加工能力的个人创造了一个销售知识产品的商业平台和机会。此系统的设计正是为有需求或者有能力的的用户提供一个实用的网络服务平台,系统采用了B/S的模式,使用java语言技术,并结合了struts2、Spring、Hibernate框架技术,完成了一个基本满足用户需求的威客系统,并且系统具有一定的稳定性、安全性和拓展性。关键词:威客网;Java;Str

5、uts2;Spring;HibernateiDesign and realization of Witkey netAbstract: Witkey is refers in the network era by virtue of their ability (intelligence and creativity), to sell their rich working time and labor and get paid on the Internet; The emergence of Witkey website created a marketing knowledge prod

6、ucts business platform and opportunity for the ability of knowledge production and processing of individual. Design of this system is for users with demand or have the ability to provide a practical network service platform, the system adopts B/S mode, use Java language technology, combined with the

7、 struts 2 framework, Spring, Hibernate, completed a basic meet user requirements of system, and the system has certain stability, security and expansibility.Keywords: witkey net; Java; Struts2; Spring; Hibernateii南华大学计算机科学与技术学院毕业设计(论文)-第一章 绪论随着互联网技术的不断变革,电子商务已经得到的广泛的推广和极大的发展,相信在未来的一段时间里,会日趋成熟。不出家门,人

8、们可以通过互联网买到全世界各的的商品,商人可以通过互联网电子商务的模式在网上进行商品营销和推广,增加商品的曝光率和品牌知名对的提升。同时,作为商家和生产厂家,可以以互联网为平台将产品推广出去,扩大销量,提升品牌知名度。使得人们的生活更加方便,更加有效率。但是商品指的并不仅仅市实体的产品,随着电子商务的日渐成熟,无形的商品也登上了舞台。而“威客”这种新型电子商务模式的提出和发展,使得传统电子商务模式中常被忽略的“知识产权”这种无形商品成为了与普通商品一样可交易的产品。这种商业模式使得电子商业跨上了一个“智慧交易”的崭新台阶,使得更多的知识分子能够将自己的知识、技术、创意等等无形资产通过网络转化成

9、有形的资产。1.1选题的背景威客网的出现是市场作用的体现,随着一种新型的商品交换模式,威客随着互联网的发展而发展。从本世纪初,互联网开始加速发展,各种创新型应用和互联网新概念不断出现,搜索引擎、电子商务、博客、维基百科、RSS、3G、web2.0、长尾理论等。这些应用和概念与知识管理都有着或多或少的关系。随着物联网支付的诞生,信息免费的时代就已经过去了。信息已经成为了一种有价值的商品,极大的增加了知识的创新和发展。利用这些理论成果对知识产权进行合理的管理。 威客模式就在这种情况下诞生了,它是一种利用互联网进行知识管理的网络创新模式。最初的威客网简单来说就是一个平台,通过一种悬赏的模式,将任务发

10、布出去,寻找合适的人完成,一部分由项目完成者获得,一部分由该平台获得。但是随着时代的发展,威客网的模式也呈现多元化,有创意产品威客模式、劳务服务威客模式、定向威客服务模式和一对一直接雇佣模式、综合性威客服务模式。他们自身的定位不同,提供不同的模式的服务体系。现今主要的一些威客网友:一品威客网、西游记威客网、威客管家、云创意威客网等。威客网的最初的形式是 Witkey和威客这两个词完全为中国首创。该概念最先由刘锋在中国科学院研究生院提出。2005年,刘锋开始建立威客网witkey com试图将中国科学院的专家资源,科技成果与企业的科技难题对接起来。在建设网站的过程中,刘锋发现通过互联网解决问题并

11、让解决者获取报酬是互联网一个全新的领域,于是他开始通过边实践边总结的方式对这个领域进行探讨和研究,并因此提出威客理论。1.2选题的研究意义传统的电子商务模式有淘宝,阿里巴巴,环球市场等,它们主要是将商品限定为有形商品在网络中进行交易,或者是充值卡之类的半有形商品,却很难对知识,创意的无形商品交易。然而,在日常生活中,经常会有一些自己难以解决的问题,需要别人帮助解决,然而由于问题的复杂程度,无法找到免费的帮助。传统情况下,只能够寻找专门的运营机构例如点子公司、设计公司、文档处理公司等等,这会造成大量的时间和资源的浪费,并且会降低工作效率。举一个简单的例子,假如一张图片,你需要进行处理,如果你拿到

12、专门的公司里去设计,不仅收费贵,而且麻烦,但是在威客网上,只要发布任务,就有人自动找上来,而且价格有你来定。在威客模式下,用户被分为两种类别,一种是任务的发布者,一种是威客:它们在威客模式中,扮演着不同的角色和功能。任务的发布者,在网上发布一些自己无法解决的问题,根据问题的难易程度,提供相应的金额的赏金,一般来说,提供的赏金越高,越容易威客攻破。网络的广泛性和赏金的吸引力会使得数量可观的威客来为发布任务者提供不同的问题解决方案,这样,发布者可以用等同或低于传统渠道的金额换取大量不同的解决方案,并从中选取自己最满意的解决方案。这样极大的提高了工作效率,节省了大量的金钱和时间,并且由于网络的特性,

13、使得发布者可以更加方便的在家中解决大量问题。作为威客,可以在网络上寻找自己最擅长的任务,将自己的知识、技术、创意等无形资产方便的转换成金钱,相比传统的方式进入专门提供解决方案的公司工作,威客方式更加灵活,更加自由,也更加方便快捷。同时,威客可以作为一种兼职工作,将生活中闲置的时间充分地利用起来,给自己带来更多的财富。第 41 页 共 42 页第二章 关键技术介绍1.1 Java语言Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越

14、的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。1.2 MysqlMySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。MySQL是一个真正的多用户、多线程SQL数据库

15、服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。 1.3 Struts2Struts2看似是从Struts1发展而来,但实际上Struts2与Struts1在框架的设计思想上面还是有很大的区别,Struts2是以WebWork的设计思想为核心,为什么Struts2不沿用Struts1的设计思想,毕竟Struts1在目前的企业应用中还是有非常大的市场在的,那么,来看下Struts1的一些缺点吧:1)支持的表现层技术单一2)与Servlet API严重耦合,这点可以从A

16、ction的Execute的方法声明里面就可以看的出来3)代码依赖Struts1 API,有侵入性,这点可以从写Action类和FormBean的时候看的出来,Action必须实现Struts的Action类而Struts2之所以以WebWork的设计思想为其核心,一点就是最近WebWork的上升势头,再就是WebWork没有Struts1上面的那些缺点,更符合MVC的设计思想,也更利于代码的复用。基于以上介绍可以看的出,Struts2体系结构与Struts1的体系结构有很大的差别,Struts1是使用ActionServlet做为其中心处理器,Struts2则使用一个拦截器(FilterDi

17、spatcher)做为其中心处理器,这样做的一个好处就是将Action类和Servlet API进行了分离。Struts2的简单处理流程如下:1)浏览器发送请求2)中心处理器根据struts.xml文件查找对应的处理请求的Action类3)WebWork的拦截器链自动对请求应用通用功能,例如:WorkFlow、Validation等功能 4)如果Struts.xml文件中配置Method参数,则调用Method参数对应的Action类中的Method方法,否则调用通用的Execute方法来处理用户请求5)将Action类中的对应方法返回的结果响应给浏览器1.4 SpringSpring 是一个

18、开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架;Spring框架主要可以分为3个核心内容: 1、容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。2、控制反转(IoC ,Inversion of Control):不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组

19、件需要哪一项服务。容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。3、面向切面编程(AOP ,Aspect-Oriented Programming):通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。1.5 HibernateHibernate是一个基于Java的开源的持

20、久化中间件,对JDBC做了轻量的封装。采用ORM映射机制,负责实现Java对象和关系数据库之间的映射,把sql语句传给数据库,并且把数据库返回的结果封装成对象。内部封装了JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API. 优点:以对象的形式操作数据,提高开发效率,不用关心数据库种类(换数据库只要修改配值文件。第三章 系统分析2.1 需求分析通过对威客网工作流程的研究和分析,要求本系统应该具有以下功能: 1、前台功能(1)实现会员注册、登陆系统的功能;(2)实现显示所有发布的任务并可以进行筛选等功能;(3)实现管理任搜索并筛选的功能; (4)实现会员可以发布任务的功能; (5

21、)实现会员可以提交任务稿件的功能; (6)实现管理自身发布的任务和稿件等功能;(7)实现查看最新任务和高额任务等功能;(8)实现对用户数据统计的功能;(9)实现显示并查看系统公告和中标的功能;(10)实现威客帮助中心的功能。 2、后台功能(1)实现管理任务类别的功能;(2)实现管理任务的功能;(3)实现管理会员的功能;(4)实现管理系统公告的功能;(5)实现管理帮助中心的功能;2.2可行性分析2.2.1技术可行性本系统采用Windows XP作为操作平台。基于java web技术,使用mysql数据库,充分体现了网页的动态管理与数据库的连接,对数据库的查询、修改及其删除。2.2.2经济可行性威

22、客模式的英文是witkey,寓意于是通过个人的智慧,知识,专业专长在互联网上通过劳作转化为实际收入的模式,威客模式认为人的智慧,知识,经验可以通过互联网转化为商品,通过互动问答的方式,提供有效的信息,体现商品的价值。这种商品属于电子商务中的信息商品的范畴。2.2.3操作可行性 系统操作方式简单,易于理解,营运环境要求低,不管是发布者和威客只需 要通过简单的培训即可操作。2.3 系统开发与运行环境分析 服务器端的工作环境要求如下: 操作系统:Windows XP或更高。(本机是用Windows XP系统) 数据库管理系统:MySQL数据管理系统,也可以采用其它数据系统。 Web服务器:Tomca

23、t。 客户机的工作环境要求如下: 网页浏览器:IE6及以上、360浏览器5.0以上以及其他浏览器第四章 系统设计4.1 系统设计原则 本系统的设计遵循以下设计原则: (1)实用性:根据当代人的需求合理设计系统。 (2)可靠性:系统的软件设计、数据库设计和界面形式等各方面要详细的考 虑,要做到可靠性,采用广泛使用的成熟技术和产品,将故障率降至最 低。 (3)易管理性:系统管理员可以及时方便的对系统进行管理,具备对威客网 进行更新调整的能力。 (4)安全性:为了保障系统平稳正常的运行,以及数据的完整性,整个系统 必须有很好的安全性。 (5)友好性:系统界面要友好,操作上要求简单方便,便于用户掌握。

24、 (6)可扩展性:采用开放的标准和接口,以便于系统后续的发展和功能上的扩充4.2 功能模块的划分项目整体模块 图如下图4.1所示。威客系统后台后台管理登录所有任务类别管理管理所有任务管理所有的注册用户管理系统公告管理帮助中心前台用户登录注册查看任务详细发布悬赏任务参与任务提交稿件管理我的任务与稿件查看网站公告与帮助 图4.1 功能模块结构图1.用户注册登陆:是提供给没有威客帐户的网民注册威客用户和登陆平台。2.查看任务详细:提供给用户查询任务详细内容参与任务等功能的模块。3.发布悬赏任务:发布者即为用户在威客网上发布任务,填写任务具体的内 容要求。4.参与任务提交:用户登陆后,可以进入任务大厅

25、或者通过搜索筛选自己感兴趣的任务进行提交稿件方案。5.管理我的任务与稿件:提供给用户管理自己发布的任务与提交的稿件。6.查看网站公告于帮助:提供给用户查看系统和中标的公告和查看一些系统帮助。7.后台登陆:管理员通过密钥登陆后台所经过的一个窗口。8.所有任务类别管理:管理员登陆后可以对任务的类别进行管理。9.管理所有任务:管理员登陆后可以对用户发布的任务进行管理。10.管理所有的注册用户:管理员登陆后对所有的注册用户进行管理。11.管理系统公告:管理员登陆后对系统的公告进行管理。12.管理帮助中心:管理员登陆后对帮助中心进行管理。4.3 威客网的任务发布流程1用户注册:不管是发布者还是威客都需要

26、在威客主页上有一个用户名, 可以选择注册用户,注册一个新的威客会员帐号,如果有帐号则直接登 录。2用户登录威客:用户用所注册的威客帐号登录威客系统。3填写任务需求:在主界面选择通过点击悬赏按钮发布悬赏任务,而后根 据表格的要求填写,其中包括任务标题,任务类别,结束时间,悬赏金 额,任务内容等信息。4托管任务赏金:根据自己所填写的任务金额,汇款至威客网站帐户。5发布任务:托管赏金后,管理员通过审核将发布者的需求信息直接将用 户的任务发布与威客网站首页,供给广大网民查看和有意向的用户参与 竞标。威客网站任务发布流程如下图4.2所示:用户登录威客填写任务需求发布成功托管任务赏金用户注册图4.2发布任

27、务流程图4.4 威客网的稿件提交流程1. 注册威客:在威客主页选择注册用户,注册自己的威客会员帐号,如果有 帐号则直接登陆。登陆后方可竞标。2. 查看任务列表:登陆后,用户在任务大厅查看任务列表,看是否有自己感 兴趣的任务然后参与竞标。3 参加任务:点击自己想参加的任务竞标项目,在该任务页面点击我要交 稿。4提交作品:根据表单内容填写自己参加任务所要提供的任务作品。5发布人选择中标:在任务截止时间到期之前,任务发布人可以在众多稿 件当中选择自己最满意的任务作品并宣告竞标用户中标。6 发布赏金:管理员根据中标用户汇款项至中标用户帐户。 任务竞标流程图如下图4.3所示:注册威客会员查看任务列表参加

28、任务发布赏金选择中标提交作品图4.3接取任务流程图4.5 数据库设计4.5.1系统E-R图图4.4 系统E-R图1图4.5 系统E-R图2图4.6 系统E-R图34.5.2 数据库逻辑结构设计本系统的数据库管理系统采用MySQL,其数据库名为“vike”。(1) user(图书表)。具体数据表结构如表4.1所示。表4、1 user数据表结构字段名字段含义数据类型主键允许空id用户idint(11)userName用户名varchar(25)passWord密码varchar(25)experience经验值int(11)balance账户余额doubleemail邮箱varchar(25)(2

29、) assignment(任务表)。具体数据表结构如表4.2所示。表4.2 assignment数据表结构字段名字段名数据类型主键允许空id任务idint(11)categoryId所在类别idint(11)title任务标题varchar(25)detail详细描述longtextfileName附件文件名varchar(255)need需求个数 int(11) 续表4、2字段名字段名数据类型主键允许空pay赏金 int(11)pubDate发布日期datetimeendDate截止日期datecontributionCount稿件个数int(11)currentNeed当前需求int(11

30、)uid发布人idint(11)stauts任务状态int(11)(3) contribution(稿件表)。具体数据表结构如表4.3所示。 表4.3 contribution数据表结构 字段名字段含义数据类型主键允许空id稿件idint(11)content稿件描述longtextpicture稿件图片varchar(60)fileName附件文件名varchar(255)hidden是否隐藏tinyint(1)pubDate发布日期datetimestatus稿件状态int(11)passDate审核时间datetimeassignmentId所在任务idint(11)uid发布人idin

31、t(11)(4) category(任务类别表)。具体数据表结构如表4.4所示。表4.4 category数据表结构字段名字段含义数据类型主键允许空categoryId 类别idint(11)categoryDescribe类别描述varchar(25)categoryName类别名称varchar(25)parentCategoryId父类别idint(11)(5) announcement(系统公告表)。具体数据表结构如表4.5所示。表4.5 announcement数据表结构字段名字段含义数据类型主键允许空id公告idint(11)title公告标题varchar(25)content公

32、告内容longtextpubDate发布日期datetime(6) datetmp(截止日期表)。具体数据表结构如表4.6所示。表4.6 datetmp数据表结构字段名字段含义数据类型主键允许空id 表idint(11)endDate任务截止日期dateassignmentId任务idint(11)(7) problem(帮助问题表)。具体数据表结构如表4.7所示。表4.7 problem数据表结构字段名字段含义数据类型主键允许空id表idint(11)question问题描述varchar(25)answer问题答案longtexthelpful帮助个数int(11)type问题所在栏目in

33、t(11)(8) manager(管理员表)。具体数据表结构如表4.8所示。表4-8 manager数据表结构字段名字段含义数据类型主键允许空id管理员idint(11)name管理员名称varchar(25)passWord管理员密码varchar(25)grade管理员权限int(11)第五章 系统实现5.1 Spring与Hibernate的整合本系统使用的Spring版本为4.0.0,Hibernate版本为4.2.0。在Spring与Hibernate的整合中,主要把Hibernate的SessionFactory和事务管理交由Spring管理。所以,在spring4-config.

34、xml文件中的配置如下: com.vike.model.User com.vike.model.Manager com.vike.model.Category com.vike.model.Assignment com.vike.model.Contribution com.vike.model.DateTmp com.vike.model.Announcement com.vike.model.Problem hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.show_sql=true hibernate.forma

35、t_sql=true hibernate.hbm2ddl.auto=select hibernate.connection.autocommit=true 此外,需要在Web容器(本系统使用Tomcat服务器)启动的时候加载Spring。所以,还需要在web.xml中进行如下配置:contextConfigLocationclasspath:spring-config.xmlorg.springframework.web.context.ContextLoaderListener5.2 Struts2、Spring与Hibernate的整合本系统使用的Struts2的版本为2.3.4.1。St

36、ruts2与Spring整合,主要是把Struts2中的objectFactory指定为Spring,由Spring容器来管理Action的生命周期。把struts2-spring-plugin-2.3.4.1.jar导入lib目录即可。此外,需要在web.xml中配置Struts2的过滤器,配置如下所示:struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*5.3 系统前台主要功能模块设计与实现5.3.1 任务实体类定义Entitypublic class Assignment

37、 private int id;private int categoryId;private String title;private String detail;private String fileName;private int pay;private int need;private Date pubDate;private Date endDate;private User user;private int status; / 0未托管,1托管,2结束private int currentNeed;private int contributionCount;private Set c

38、ontributions;public Assignment() contributions = new HashSet();IdGeneratedValuepublic int getId() return id;public void setId(int id) this.id = id;public int getCategoryId() return categoryId;public void setCategoryId(int categoryId) this.categoryId = categoryId;public String getTitle() return title

39、;public void setTitle(String title) this.title = title;public String getDetail() return detail;public void setDetail(String detail) this.detail = detail;public String getFileName() return fileName;public void setFileName(String fileName) this.fileName = fileName;public int getPay() return pay;public

40、 void setPay(int pay) this.pay = pay;public int getNeed() return need;public void setNeed(int need) this.need = need;public Date getPubDate() return pubDate;public void setPubDate(Date pubDate) this.pubDate = pubDate;Temporal(TemporalType.DATE)public Date getEndDate() return endDate;public void setEndDate(Date endDate) this.endDate = endDate;ManyToOne(fetch = FetchType.EAGER)JoinColumn(nam

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁