版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论1.1问题的提出在现如今随着二次元文化越来越被人们所接受,尤其是年轻人,但是随着现在二次元群众越来越多,二次元文化资源虽然也是越来越多,但是被二次元群众所熟知的二次元资源网站却没有随着二次元文化的传播而传播,甚至现在想看自己喜欢的轻小说必须去到淘宝上买实体书,但是要知道实体书从发售到传到大陆至少要晚上留到七个月,甚至就算找到了轻小说也没有汉化的资源,在这样的艰苦条件下国内对该领域没有领导者,只是单纯的依靠投资者从国外引入外国的二次元文化书籍、动漫,在该领域中国其实也存在着不少企业,但由于重视程度不够,水平不济、制作工期太短等诸多因素,使在本领域长期处于国外垄断的情况,但是在国内二次元的受众群体并不比国外差,追本溯源也只是因为实在是传播途径预售重视程度太低,导致二次元文化在中国发展速度较慢。二次元在中国才处于刚刚起步的阶段,资源虽多,但传播的途径实在是少之又少,国内熟知的二次元平台无非也就是bilibili、sfacg等几个,所以为了能让二次元在中国能有更加长足的发展也就需要了更多的这种类型的平台供喜欢二次元的人们进行交流,所以本文作者认为在当下这个二次元人数众多且资源众多的时代,这类型的平台应该为更多投资者所关注。要解决这样的问题就需要进行更多的二次元周刊系统的开发。1.2课题研究的目的和意义从前在二次元文化还未向现在这般盛行的时代里,不仅深爱二次元文化的人们不被人们看好,认为这只是再浪费时间,而且二次元文化的资源也不想如今这般容易找到,可以说在那个时代想找到一部优秀的二次元作品是相当困难的,而如今虽然二次元文化还未被人们彻底接受,但是比起从前现在也处于一个非常快速的发展期之中,而在这样前所未有的发展期中,作为一名深爱二次元文化的宅友本文作者希望能尽自己的一份力做出一个更为完善的二次元文化网站,并且本文作者访问了很多二次元网站,发现虽然在现在二次元网站虽然确实拥有很多资源但是在功能的体现上确实还属于缺陷比较大,有很多人性化的服务不能使用,而且在很多情况下还会出现系统乱码,所以本文作者希望可以做出一个人性化功能更为全面,系统上也相对更稳定的二次元交互平台,希望能够推进二次元文化在我国的发展。以零八年那个著名的二次元IP的崛起为起点,随之而来的便是二次元文化在外国引起轩然大波,接受二次元文化的人们从那时起也逐渐增多,随着二次元文化越来越多的引入中国,二次元文化作品更是铺天盖地的在各大平台登陆,要找到一部适合自己的二次元文化作品只要肯付出时间便不再是什么难事,从那时开始可以说二次元文化越来越多的被人们认可了,但是也有越来越多的投资者盯上了这块肥肉,制作了大量的二次元文化平台,但是为了更快的上市这些平台往往还没有开发完善便被抬了出来,那时候本文作者也是转战了各种小说平台才能找到一本自己喜欢的小说。但是尽管这样本文作者依旧还是非常喜欢二次元文化,所以在经历了这些事之后也希望自己可以做出拥有更加完善的功能的二次元文化的平台。也希望二次元文化能在我国越走越远。1.3该课题在国内外的现状在国内,毫无竞争的情况下却只有一些特别火的二次元资源平台才有存活下去的可能,而这些平台上的资源一般也都是为了利润全部上架非常火的IP资源,例如在中国相当火爆的“铅笔小说”拥有的二次元资源都是一些很老很过时但是确实是火过的资源,拥有的数量极其贫乏,更新速度极其之慢,根本连实体书的速度都比不过,也没有开放给用户自己创作的空间,再比如说国内最著名的轻小说平台sfacg,虽然给予了用户创作功能,但也是完全为了利益,一旦发现平台中有比较优秀的作品,便会进行收费,平均的收费标准为单个章节两元的标准。国内平台与国外平台最大的差距便是不能在用户进行阅读的同时给予他们足够的创作空间,这样做便引起了优秀的作品只能从国外引入这一尴尬的情况,而且即使有些平台拥有这样的功能,也拥有非常丰厚的作者栽培计划,但是一旦有作者创作出非常优秀的作品,便会马上被其他的平台挖走,可以说国外的作者群众和投资者都是为了更好地传播文化而进行运作,而国内只是单纯的为了打倒同行的竞争者而不断地勾心斗角。在这样的条件下,二次元文化的发展在国内收到了相当大的阻碍,而二次元平台的发展也因为二次元文化的传播受阻而没有得到相应的关注,导致了国内的作者读者群众对国内的二次元平台的不满转投国外的二次元周刊平台,国内平台的用户人数越来越少,得到的收益也越来越少,对二次元文化平台的开发度也越来越低,这样的恶性循环。1.4文本的组织本论文主要从绪论、需求分析、概要设计、系统详细设计与实现、系统测试等五个方面进行论述。详细介绍了读者模块、作者模块、系统管理员三个模块的详细作用与实现方法及目的。第2章需求分析2.1概述本章采用软件工程方法对二次元周刊管理平台进行了需求分析包括系统目标、功能性需求、非功能性需求、数据需求三个主要方面对系统进行详细介绍。2.2系统目标2.2.1总体目标本系统的总体目标是开发出一套可以给予读者用户免费且更新速度优秀的读者功能,给予作者用户开展自己二次元书籍创作的作者功能,同时也可以给予没有注册本系统的游客用户给予创作作品评价的功能,同时应该尽可能的使系统功能得到优化,做到系统安全且稳定,即使在高压状态下系统也可以进行长时间的正常运做,遇到系统崩溃问题时拥有优秀的可恢复性,同时不仅要让读者和作者的交互界面尽可能简单易操作,同时也应该让系统管理员的操作界面进行优化,已得到更加迅速的后台处理效率。同时必须让本系统兼容任何版本的预览器。要完成以上总体目标本系统需要满足以下几点:(1)性能:各功能进行数据传输的响应时间的长短均小于两秒。
(2)高压状态下是否可以进行正常运行:在系统模拟三百个用户进行操作的测试实验中,本系统依旧保持了一小时以上的长时间正常运行。
(3)可恢复性:在系统报错404和报错500时进行配置文件的修改重启之后便可正常运行,修改时间不超过三分钟。
(4)人性化设计:本系统在三个功能块的界面设计上进行了简单化处理,在不影响功能的情况下对界面进行了优化,使其操作起来更加方便,易上手。2.2.2具体目标本系统的开发对主要三个模块功能进行了详细设计。这三个模块分别为读者功能模块、作者功能模块以及系统管理员功能模块,其中读者和作者的用户信息在读者合作者之间属于隐私数据,在读者和作者中禁止进行数据交互,能对读者和作者的用户信息进行操作的只有用特定账号登陆的系统管理员,系统管理员只能对读者和作者用户进行操作,不可对系统管理员账号进行操作,如果想对系统管理员账号进行操作则需要进入数据库直接对系统管理员账号做出相应的数据上的更改或者删除。(1)读者模块:本模块拥有主要功能为注册功能、登录功能、修改登录信息功能、搜索相关小说功能、预览最新章节功能、阅读小说功能、发布评论功能。用户所有的点击事件响应时间均不大于两秒钟,数据间的传输除了系统管理员之外是不可被访问的,安全性能良好,系统可在三百用户同时登陆的饱腹条件下正常运作数个小时。(2)作者功能:本模块拥有主要功能为作者的注册功能、作者的登录功能、作者的修改密码功能、小说管理功能、待处理的小说评论功能和已处理过的小说评论管理。作者用户的点击事件响应时间均不大于两秒,作者用户的操作界面简单易上手,所创作的小说只需要系统管理员审核便可进行发布,从创作到发布所需时间很短。(3)系统管理员模块:本模块拥有的主要功能为小说分类管理功能、小说管理功能、用户管理功能、小说评论管理功能。系统管理员界面操作人性化且容易上手,所有点击事件响应时间均小于两秒,只要不直接对数据库进行操作,所有操作均为可逆操作,规避操作失误带来的损失。2.3物业流程本系统存在三种不同角色,三种不同的角色拥有不同的管理功能,读者拥有对自己书架的管理功能,对个人信息的管理功能,索引的功能,作者拥有对自己小说的管理功能,系统管理员对所有功能进行维护。读者将书籍存放在书架表中,将个人信息存放在用户表中,作者将所写小说放置到书籍表中,系统管理员从数据库中可直接进行用户信息,或小说信息的增删改查等功能。“二次元”周刊管理平台的用户业务流图:图2-1总体业务流图管理员业务流图图2-2管理员业务流图作者用户业务流图图2-3作者用户业务流图读者用户业务流图图2-4读者用户业务流图2.4功能需求2.4.1涉众分析表2-1涉众分析表角色职责或功能系统管理员管理员的功能是小说管理功能、小说分类管理功能、用户管理功能、小说评论管理功能。功能包括推荐小说、章节管理、修改小说、删除小说、查询小说、添加分类、查看小说、删除小说、修改小说、查询用户、删除用户、查看评论、删除评论等功能。读者用户注册成为新用户,选择进入读者模块,读者模块功能为通过索引功能找到心仪的二次元文化资源,将喜欢的图书加入书架或者给予喜欢的小说推荐,或者修改密码等功能。作者用户注册成为新用户,选择进入作者模块,作者模块功能为创作自己的二次元小说,管理读者用户对自居创作的小说进行的评论。2.4.2用例分析定义参与者根据系统的需求分析以及对整个业务流程涉及到的人员岗位的分析,将系统的参与者可以分为三大部分:
表2-2用户角色划分表序号参与者用例名称用例说明1读者用户UserLand用户登陆Userregister用户注册SearchNovels索引小说readnovel阅读小说WriteReview撰写评论2作者用户UserLand用户登陆用户Userregister用户注册进入系统首页,点击用户注册;进入注册页面;输入系统需要的个人信息;系统验证注册信息充分;系统将用户名及密码,保存到数据库;系统生成用户信息,并让用户拥有属于自己的个人书架。SearchNovels索引小说Writingnovels撰写小说OperateReview操作评论3系统管理员Manageinformation管理用户信息OperationClassificationofNovels操作小说分类operationFictionchapters操作小说章节Commentmanagement管理评论Administratorlogin管理员登陆图2-5整体用例图读者用例(1)读者功能主要对系统进行查看与评论操作,在注册与登陆完成之后可以在系统中访问自己喜欢的小说,或者对喜欢的小说进行收藏或者推荐操作,给予评论操作。图2-6读者用例图作者用例(2)作者功能主要对系统进行小说撰写和小说评论管理等操作,在注册成为作者之后登陆系统进行小说的创作。对读者用户给予的小说评价进行删除、回复或者查看等操作。图2-7作者用例图系统功能用例(3)系统管理员主要对系统进行后台的管理操作,在使用特定的账号及密码进行登陆之后,可以管理小说的分类、对小说进行审核操作,将合格的小说进行发布,将不合格的小说进行删除操作。也可以对所有用户信息进行管理。以及对所有小说的评论进行查看操作,将符合规定的评论保存,将含有敏感字符的评论进行删除操作。图2-8系统管理员用例图2.5数据需求2.5.1数据字典在该系统的数据字典设计中,着重对数据字典中的数据结构做了详细分析。部分数据结构的说明如下所示:数据结构:读者用户含义说明:记录读者用户的基本信息组成:读者用户编号、用户名、密码、真实姓名和联系方式。(1)数据项:读者用户编号、含义说明:二次元周刊平台用户的具体编号。(2)数据项:读者用户名、含义说明:读者用户登录时的账号。(3)数据项:密码、含义说明:读者用户的登陆密码。(4)数据项:真实姓名、含义说明:读者用户的真实姓名。(5)数据项:联系方式、含义说明:读者用户真实联系方式。数据结构:作者详细信息含义说明:记录作者用户的基本信息组成:作者用户编号、作者用户名、密码、真实姓名和联系方式。(1)数据项:用户编号、含义说明:二次元周刊平台用户的具体编号。(2)数据项:用户名、含义说明:作者用户登录时的账号。(3)数据项:密码、含义说明:作者用户的登陆密码。(4)数据项:真实姓名、含义说明:作者用户的真实姓名。(5)数据项:联系方式、含义说明:作者用户真实联系方式。数据结构:读者用户书架信息含义说明:记录用户书架记录组成:书架编号、用户id、章节管理(1)数据项:书架编号、含义说明:编辑书架上书籍的编号。(2)数据项:用户id、含义说明:对应书架id的用户id。(3)数据项:章节管理、含义说明:书架上书籍对应的章节。数据结构:修改小说分类信息含义说明:系统管理员对小说分类进行管理组成:分类编号、分类名称、创建时间(1)数据项:分类编号、含义说明:编辑分类种类的编号。(2)数据项:分类名称、含义说明:编辑分类名称。(3)数据项:创建时间、含义说明:编辑创建时间。数据结构:章节信息含义说明:记录小说中各章节内容组成:章节序号、章节名称、章节内容、书籍编号(1)数据项:章节编号、含义说明:各章节按照创建时间进行将章节编号。(2)数据项:章节名称、含义说明:各章节编号锁定赢得名字。(3)数据项:书籍编号、含义说明:各章节所对应的书籍编号。2.5.2数据属性根据二次元周刊管理平台的功能需求,建立该系统的E-R图,该系统存在读者、作者、系统管理员三个大的功能模块,拥有book、fenlei、user、pingjia、Zhang、shujia六张表,拥有六个实体,各实体之间均存在一对多的关系,读者用户模块读者查询图书,书写评价,查询章节,加入书架均为一个读者对多个实体,为一对多的关系,作者用户模块书写作品,管理评价,一个作者对应多个其他实体,均为一对多的关系。图2-9读者用户E-R图2-10作者用户E-R图图2-11管理员用例图2.6非功能性需求通常在系统开发过程中除了对功能性的严格需求之外也需要对非功能性做出严格的把控,非功能性的需求也属于系统的主要需求。为了本系统的正常运用需要满足以下非功能性需求(1)本系统的非功能性需求主要包括系统在进行数据传输书所需要的时间是否可以维持到所有的按钮响应时间均压缩在两秒之内。(2)提升系统可以持续维持高压状态工作而不进行报错。尽量保持系统平时运行的稳定性尽可能长时间的保证系统可以处于运行状态。(3)在日后用户量有了明显提升之后系统的可扩展性是否完善,是否可以容纳更多的用户。(4)系统的可靠性,系统是否需要在特定的时间进行维护,使其能够维持七乘二十四小时的运行状态。2.7可行性分析1.经济可行性本系统完全属于个人开发,除了电费之外无任何费用上的消耗,开发时间为两个月电费支出为三百元,在现在二次元文化处于高度发展的现在受用人群呈几何增长趋势,每一年的收入都可到达上万元,进行资源交互每一章节假设一百人购买,每一章按照其他平台的两元一章进行收费,每一章大概的收入为两百,一本正常小说三百章,每一本小说可收入六千元,并且在未来几年收入会持续处于上升状态,因为完全只靠一台个人电脑就可以进行工作和测试。抛出电费所得收入均为净收入。技术可行性本系统选用Java开发语言,java具有一次编写,到处使用的优势,采用SSH框架,框架技术成熟,适合中小型系统开发,采用MySQL数据库,为成熟开元成熟数据库适合本系统开发,采用JSP技术进行前台界面开发,Jsp开发优势在于不用考虑预览器版本,可以全部兼容。3.操作可行性该系统采取的跳转模式,极力倡导用户自己利用界面间的跳转功能和数据库之间积极交互,同时具有简单的、易于操作的交互式界面。概要设计3.1概述本系统支持用户进行例如书写属于自己的二次元小说为前提,所以放弃了使用HTML进行前端界面的设计而是使用JSP进行界面设计。本章节会从系统实际遵循的系统设计的原则及方法,面向对象的设计或结构设计,功能结构设计,总体对象设计、接口或函数设计,功能模块设计,数据库设计,界面原型设计等几个方面详细的解释本系统的详细设计。3.2系统实际遵循的系统设计原则及方法本系统遵循设计原则中的可靠性性原则,本系统开发过程中开发的规模越来越大,必须保证拥有相应的可靠性原则,否则系统不可能在开发中长久的走下去的,可靠性原则是为了保证系统在面对一切故障的能力,拥有相对较好的可靠性是程序的首要目标。其次是要有对异常输入拥有相对应的健壮性,对异常的信息输入拥有相对应的错误提示。在设计中程序同样需要一定的可修改性,毕竟并不是所有的程序在开发开始开发人员就和客户所需要的程序在人之上完全相同,所以在系统设计过程中必须拥有相应的可修改性,为了日后对程序能够根据需求进行更加简便的修改。
3.3面向对象的设计3.3.1系统架构图图3-1系统架构图3.3.2功能设计结构功能结构图设计如下图图3-2功能结构图3.4总体对象设计根据对系统功能的全面分析本系统一共划分出六个类,分别为书架类,小说类,评论类,用户类,分类类,章节类六类每个类包含自己的属性,同时每个类也有自己的方法。图3-3类图数据需求经过对整个系统进行系统性地分析,总结出整个系统总共拥有六个实体分别为图书表、分类表、书架表、评价表、用户表、章节表主要业务功能的实体关系图如下:图3-4实体关系图上图表示了各个实体间的关系,各个实体的属性将会在系统静态分析模型中进行设计。3.5功能模块设计3.5.1.登录账号用户再决定阅读本平台资源时,必须要进行账号的注册,在注册之后用户需要用之前创建的账号实现登录操作,在用户点下确认时,系统会对当前用户输入的信息与数据库中存储的信息进行比对,如果配对成功则允许用户登录,如果不成功则返回相应提示。登录功能的依赖关系图如下:序列图如下:图3-5用户注册时序图3.5.2索引功能本功能模块主要进行将用户所需要的图书信息提交至数据库进行查询,如果查询到相关书籍,则返回所有书籍信息,如果查询不到相关图书则返回相关的提示。图3-6索引时序图3.5.3评论管理本功能模块主要将用户所撰写的评论提交进行审核,一旦审核成功将保存至数据库,如果审核失败,将删除此条评论并返回相关提示。图3-7评论时序图3.5.4小说评论管理本功能主要用于让读者撰写自己的轻小说,撰写成功之后将进行提交,如果审核通过则可以发布,如果审核不成功则给予相关提示。图3-8小说评论管理3.5.5评论管理本功能主要实现的是作者用户对审核成功的用户评论进行查看与回复的操作。但是作者用户不具备对读者用户的评论进行删除的操作。图3-9评论管理时序图3.5.6作者管理评论本功能主要是系统管理员对读者用户信息和作者所创作的作品进行系统的管理的功能点,以及系统管理员对于作者用户和读者用户的行为进行判断,审核其是否符合标准,符合标准则进行二次元周刊管理平台的信息更新。图3-10作者评论管理时序图3.6数据库设计设计原则尽可能多的减少数据上的重复和冗余在数据库中尽量做到层次分明各层和各层之间的关系尽量连动平稳,切数据库保持高度结构化。数据与数据之间时刻保持相对的稳定性。必须时刻维护数据的正确性和一致性。在系统中,多个用户共享数据库,由于并发操作,可能影响数据的一致性。因此必须用“锁”等办法保证数据的一致性。在设计数据库的时候,一方而要尽可能地减小冗余度,减小存储空间的占用,降低数据一致性问题发生的可能性,另一方面,还要考虑适当的冗余,以提高运行速度和降低开发难度。图3-11数据库逆推模型图将众多类目,根据类目之间的关系,按照一定的原则组织而成的一览表。其中id为主键。包括id和name。表3-1类目表列名类型说明备注idintid主键namevarchar名称将作者用户和系统原本存在的二次元书籍资源存储的表,其中书籍id为此表主键。包括id、名称、封面地址、介绍、评论、作者、推荐数量、出版日期、是否完结、分类、类目标。表3-2图书表列名类型说明备注Idintid主键bnamevarchar名称Picvarchar封面地址Jianjiefloatprice介绍Pinglunvarchar评论authervarchar作者Tuijianvarchar推荐数量pubdatedate出版日期Zhuangtaibit是否完结Fenleibit分类User_idbit类目Id外键所有小说都应存在的章节表,支持作者用户或者系统管理员对所有章节进行操作。其中章节id为此表主键。包括id、创建时间、名称、书籍编号。表3-3章节表列名类型说明备注idintid主键ctimevarchar创建时间mingchengint名称bookidVarchar书籍编号读者用户对任何小说的评论都存储于此表。其中评价id为此表主键。包括id、创建时间、评论详情、图书id、评论者id。表3-4评价表列名类型说明备注idintid主键ctimefloat创建时间HcontentVarchar评论详情book_idint图书idUser_idint评论者id所有注册的用户(包括系统管理员账号)都应该保存于此表,当需要进行用户确认时,通过此表进行身份验证,其中用户id为此表主键。包括id、创建时间、密码、序号、电话、使用者姓名。表3-5用户表列名类型说明备注idintid主键Createtimevarchar创建时间passwordvarchar密码rolevarchar序号telephonevarchar电话UsernameInt使用者姓名主要为系统管理员管理内容,主要功能为增加或删除小说的分类种类,其中分类id为此表主键。包括id和名字。表3-6分类表列名类型说明备注idintid主键fnamevarchar名字3.7界面原型设计在界面设计上本系统在在线小说界面和小说资讯界面上的设计使用了HTML,在其他界面上的设计为JSP,之所以将在线小说界面和小说咨询界面是为了在这两个界面中尽可能多的添加二次元要素而对预览器兼容性没有过多要求,而相对的在其他主要功能模块的设计上使用了JSP加快了个界面的跳转速度,也解决了对预览器兼容性的问题。3.8典型算法设计普通用户在登录系统时需要选择注册成为作者还是读者,不论何时注册功能都是最基础的功能,只用拥有最基础的用户信息,系统才可以与数据库进行连接,不管是读者还是作者都拥有属于自己个人界面可以实现相应功能,如果为系统管理员登录则进入专门的系统管理员界面,系统管理员需要在每天特定的时间段审核用户的各种行为,判断是否合格,合格之后需要更新平台内容。图3-12业务流程图第4章系统详细设计与实现4.1系统的工程结构Zhujiemian项目为了制作各个有跳转需求的展示界面webContent包下的皆为各界面制作所需要的图片。图4-1系统截图javaResources文件夹下有src文件夹和applicationContent、hibernate、log4j、struts等配置文件其中src文件夹下包括action包、dao包、dao的接口包、model包、和util工具包。Model是实体层,通过书写get和set方法来实现创建数据库中表的功能。Dao包主要是用来和数据库打交道,进行与数据库之间的信息交流。Action主要进行页面跳转功能的实现。Log4j为连接池的配置用以在applicationContext.xml中使用JDBC技术进行配置。WebContect还有各个页面的前端代码例如各种jsp文件、css样式文件、html文件,以及在界面之所钟所需要用到的各种图片及配置工具。图4-2系统截图4.2面向对象的程序实现在用户或者系统管理员需要对数据进行删除处理时,有可能因为手误将重要信息误删,对系统功能造成很大影响,本问题难点在于如果进行上述复杂操作,需要设法将删除信息找到改变并信息状态,跳转至当前界面,刷新才可以实现恢复操作,很大程度上增加了问题的复杂性以至影响系统运行速度,因此本系统使用的是将数据进行假删的操作,如果用户进行恢复操作则马上可以在界面中显示恢复,只用当系统管理员直接在数据库中进行删除,则本条信息才真正的被删除。详细代码如下:publicvoidfenleidelete()throwsIOException{ HttpServletRequestrequest=this.getRequest(); PrintWriterwriter=this.getPrintWriter(); Fenleibean=fenleiDao.selectBean("whereid=" +request.getParameter("id")); bean.setDeletestatus(1); fenleiDao.updateBean(bean);writer.print("<scriptlanguage=javascript>alert('操作成功');window.location.href='managemethod!fenleilist.action';</script>"); }publicvoidbookdelete()throwsIOException{ HttpServletRequestrequest=this.getRequest(); PrintWriterwriter=this.getPrintWriter(); Bookbean=bookDao.selectBean("whereid=" +request.getParameter("id")); bean.setDeletestatus(1); bookDao.updateBean(bean); writer.print("<scriptlanguage=javascript>alert('操作成功');window.location.href='managemethod!booklist.action';</script>"); }在界面中进行数据交互时很容易将数据传输异常,导致数据丢失,因此本系统在数据间的跳转中使用了跳转与重定向,也就有了这样的问题,如果要根据请求参数的不同来访问不同的页面怎么来做呢,本系统使用动态结果集来做,参数不同,到action中做对比,不同的参数指定不同的url字符串,然后在struts.xml中的result中利用${}取出url,这个${}是OJNL表达式,不是EL表达式。代码如下:<struts> <constantname="struts.objectFactory"value="spring"></constant> <constantname="struts.i18n.encoding"value="UTF-8"></constant> <packagename="index"namespace="/"extends="struts-default"> <actionname="managemethod"class="manageAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action> <actionname="index"method="index"class="indexAction"> <resultname="success">index.jsp</result> </action> <actionname="indexmethod"class="indexAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action></package></struts>如果单纯一个功能点只对一张表进行操作,那么本系统的开发将进行无限的延长,而且会出现表之间相互冲突的情况,为了增加系统的人性化设置,也为了缩短开发周期,本系统在例如创建小说功能模块中首先使用了图片上传功能,能够遵从用户的喜好进行图片的上传功能,而且此功能模块中对不同的几个表进行了同时操作,极大程度地减少了系统的开发周期。代码如下:publicvoidbookadd()throwsIOException{ HttpServletRequestrequest=this.getRequest(); PrintWriterwriter=this.getPrintWriter(); Stringbname=request.getParameter("bname"); Stringjianjie=request.getParameter("jianjie"); Stringzishu=request.getParameter("zishu"); Stringzuozhe=request.getParameter("zuozhe"); Stringfenleiid=request.getParameter("fenleiid"); Stringstatus=request.getParameter("status"); HttpSessionsession=request.getSession(); Useruser=(User)session.getAttribute("user"); Bookbean=newBook(); bean.setUser(user); bean.setBname(bname); bean.setCtime(Util.getTime()); bean.setJianjie(jianjie); bean.setZishu(zishu); bean.setZuozhe(zuozhe); bean.setFenlei(fenleiDao.selectBean("whereid="+fenleiid)); bean.setStatus(status); Stringsavapath=ServletActionContext.getServletContext().getRealPath("/")+"/uploadfile/"; Stringtime=Util.getTime2(); if(uploadfile!=null){ Stringimgpath=time+".jpg"; Filefile=newFile(savapath+imgpath); Util.copyFile(uploadfile,file); bean.setPic(imgpath); } bookDao.insertBean(bean); writer.print("<scriptlanguage=javascript>alert('操作成功');window.location.href='managemethod!booklist10.action';</script>"); }4.3数据库选择分析本系统属于小型系统,需求条件是可以实现所有的基础功能,因此在数据库的选择中尽量以适合小型项目开发为主,本系统对数据库要求,允许多个客户机同时访问服务器。MySQL数据库没有用户数的限制,多个客户机可同时使用同一个数据库。此外也需要支持输入查找功能的数据库,MySQL可利用几个输入查询并查看结果的界面来交互式地访问MySQL。因此本系统选用MySQL数据库作为本系统数据库。4.4数据库的SQL语句的实现小说列表功能小说列表功能主要实现以分页的形式向用户展示小说列表与获得uploadfile的绝对路径。publicStringbooklist(){ HttpServletRequestrequest=this.getRequest(); Stringt_name=request.getParameter("bname"); Stringzuozhe=request.getParameter("zuozhe"); StringBufferasd=newStringBuffer(); asd.append("where"); if(t_name!=null&&!"".equals(t_name)){ asd.append("bnamelike'%"+t_name+"%'"); asd.append("and"); request.setAttribute("t_name",t_name); } if(zuozhe!=null&&!"".equals(zuozhe)){ asd.append("zuozhelike'%"+zuozhe+"%'"); asd.append("and"); request.setAttribute("zuozhe",zuozhe); } HttpSessionsession=request.getSession(); Useruser=(User)session.getAttribute("user"); asd.append("deletestatus=0anduser.id="+user.getId()+"orderbytuijiandesc,iddesc"); Stringwhere=asd.toString(); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } inttotal=bookDao.selectBeanCount(where.replaceAll("orderbytuijiandesc,iddesc","")); request.setAttribute("list",bookDao.selectBeanList((current1) *pagesize,pagesize,where)); request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize, currentpage,"managemethod!booklist10.action","一共有"+total+"条记录")); request.setAttribute("url","managemethod!booklist.action"); request.setAttribute("url2","managemethod!book"); request.setAttribute("biaoti","小说管理"); this.setUrl("zuozhe/book/booklist.jsp"); returnSUCCESS; }更新小说功能本功能主要完成小说的更新功能并获得分类id并获得uploadfile的绝对路径。publicvoidbookupdate20()throwsIOException{ HttpServletRequestrequest=this.getRequest(); PrintWriterwriter=this.getPrintWriter(); Stringbname=request.getParameter("t_name"); Stringjianjie=request.getParameter("jianjie"); Stringzishu=request.getParameter("zishu"); Stringzuozhe=request.getParameter("zuozhe"); Stringfenleiid=request.getParameter("fenleiid"); Stringstatus=request.getParameter("status"); Bookbean=bookDao.selectBean("whereid=" +request.getParameter("id")); bean.setBname(bname); bean.setJianjie(jianjie); bean.setZishu(zishu); bean.setZuozhe(zuozhe); bean.setFenlei(fenleiDao.selectBean("whereid="+fenleiid)); bean.setStatus(status); Stringsavapath=ServletActionContext.getServletContext().getRealPath("/")+"/uploadfile/"; Stringtime=Util.getTime2(); if(uploadfile!=null){ Stringimgpath=time+".jpg"; Filefile=newFile(savapath+imgpath); Util.copyFile(uploadfile,file); bean.setPic(imgpath); } bookDao.updateBean(bean); writer.print("<scriptlanguage=javascript>alert('操作成功');window.location.href='managemethod!booklist10.action';</script>"); }4.5典型系统界面的设计关键界面设计用户注册界面:用户注册界面完成的主要功能为判定用户输入信息是否符合标准,将用户输入信息通过Action调用数据访问层的Dao接口,在传入数据库进行逐条比对,如果访问如果所录入内容符合系统要求则将用户所录入的信息存入数据库,如果所录入内容不符合系统要求则拒绝将用户信息录入数据库。图4-1用户注册界面用户登陆界面设计:该功能模块主要功能为将用户录入信息与数据库所存入信息进行对比,对比方式和注册相同,在传入数据库进行逐条比对如果录入信息与数据库所保存数据进行比对,如果逐条检索,发现数据库中存有相同信息则跳至用户界面,如果录入信息与数据库之前存入信息不同则给予相关提示并跳回登陆界面。图4-2用户登陆界面管理员登陆界面设计:该功能模块的主要功能为用户录入特定的用户名和密码与数据库进行对比,对比方式与登录相同,如果对比正确则登陆系统管理员界面,如果比对不同则跳转至管理员登陆界面。图4-3管理员登陆界面小说分类管理界面设计:该功能模块主要为了添加小说分类或者对某些分类中的小说进行操作处理,通过Action链接Dao层再到数据库的信息交互途径,将对数据库进行增删改查操作反映到用户界面上,主要功能为可以进行小说的查看、修改、和删除操作,也可以通过索引功能迅速的找到所需要的小说名称。图4-4小说分类管理界面小说管理界面设计:该功能模块主要为了对小说进行操作处理,将用户所写内容存入相对应的小说分类中的小说中,还可以进行可以进行小说的查看、修改、和删除、对特定章节进行操作,也可以通过索引功能迅速的找到所需要的小说名称。图4-5小说管理界面用户管理界面设计本功能模块主要功能为系统管理员对所有读者用户或者作者的个人信息用户进行操作,将存储在数据库中的信息进行假删除操作和查看功能。本功能模块主要是为了对用户信息进行删除操作。图4-6用户管理界面小说评论管理界面设计:本功能模块主要是为了对所有小说的评论进行查看或者删除等操作,也可以通过索引功能进行快速查找。图4-7小说评论管理界面作者界面设计:作者功能模块主要是作者对小说章节的添加、修改与删除操作。图4-8作者界面作者小说管理界面原型设计:对待处理的小说评论和收集到的所有小说评论进行系统化的操作。通过对数据库进行操作,完成一系列增删改查操作。图4-9作者小说管理界面
第5章系统测试5.1系统测试概述软件测试的目的主要是对系统需要的各部分功能进行测试,查看是否存在异常,以及各按钮与界面的跳转是否一一对应,在进行存入数据与输出数据的查看,确保数据是否正常保存与输出。首先测试各页面之间跳转是否正常跳转,查看个界面之间是否存在跳转报错问题,以及是否存在跳转链接的页面错误等问题。查看数据跳转是否正常以及是否将正确数据存入数据库。性能测试:查询各部分功能是否达到本系统需求的最低要求。相对本测试更注重本系统主要测试是否能够使各按钮成功跳转到需要跳转的正确界面。是否在跳转过程中将正确的数据传入数据库,以及是否能够将正确且所需要的数据从数据库中提取出来这两点。5.2测试的方法、计划测试时间为十天,测试方法为对系统进行拆分,对每一个小的功能点进行测试,一旦发现有哪个功能点与预计的结果不符合便开始着手对该功能块进行整改,直到整改结束在开始进行下一个小的功能点的测试。当所有小的功能点均测试完毕之后,开始对整个系统进行系统上的划分与测试。如果整体测试均未发现严重问题则测试结束。5.3测试的数据、结论表5-1用户注册测试用例表用例编号1用例名称用户注册简要描述注册本平台涉及的系统参与者用户基本路径1.进入系统首页,点击用户注册;2.进入注册页面;3.输入系统需要的个人信息;4.系统验证注册信息充分;5.系统将用户名及密码,保存到数据库;6.系统生成用户信息,并让用户拥有属于自己的个人书架。扩展路径a信息不充分:a1.系统提示输入剩余信息;a2.用户按照提示补充信息;a3.用户重新提交注册表;a4.返回4。b信息不符合规格要求:b1.根据系统提示更改输入信息b2.用户重新提交注册表;b3.返回4。前置条件进入注册页后置条件用户注册本系统表5-2用户登录测试用例表用例编号2用例名称登录简要描述用户登录系统涉及的系统参与者用户系统管理员基本路径用户进入系统;点击进入登录界面;用户输入用户名和密码,点击登录;系统验证用户名和密码信息充分;用户登陆成功。扩展路径a登录信息错误:a1.系统提示登录信息错误和重新登录;a2.根据系统提示用户重新填写正确登录信息并提交;a3.返回5。前置条件注册成功但未进行登陆后置条件登录到系统表5-3查询推荐书籍测试用例表用例编号3用例名称查询推荐书籍简要描述用户可以查询符合自己需求的书籍涉及的系统参与者用户基本路径用户进入系统首页;用户在搜索框中输入书籍信息;系统显示符合关键字搜索的书籍列表;用户从书籍列表中任选自己所需求的书籍;系统显示所选书籍的所有具体信息;6.用户确定选中的书籍,继续浏览。扩展路径a未搜索到相关书籍a1.从书籍列表中选择书籍关键字重新搜索;a2.系统显示新的符合关键字搜索的书籍列表。b搜索到的书籍不是用户所选择的需求书籍b1.用户更换新的关键字点击搜索按钮;b2.系统重新筛选新的符合要求的书籍,显示新的书籍列表;b3.用户重新选择自己想要的书籍或终止查询前置条件登录到系统并找到搜索界面后置条件显示出满足查询要求的所有书籍用例编号4用例名称查询当前最新更新简要描述用户可以查询所有书籍的更新情况涉及的系统参与者用户基本路径1.用户进入系统首页;2.用户点击最新更新按钮;3.系统按照更新时间显示书籍名称;4.用户从书籍列表中挑选心仪的图书点击;5.系统跳转到相应的图书界面中;6.用户确定选中的章节,进行浏览。扩展路径a未搜索到心仪书籍的更新信息a1.从书籍列表中选择书籍关键字重新搜索;a2.系统显示新的符合关键字搜索的书籍列表。a3.用户从图书界面直接进行查看b.放弃查找b1.用户点击网站首页进行跳转前置条件登录到系统并找到最新章节界面后置条件显示出满足查询要求的所有书籍表5-4查询当前更新测试用例表用例编号5用例名称管理员对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年澳大利亚教案:第四节的挑战与机遇
- 2024海滨小城科技创新与产业发展论坛
- 2024年教育创新:《拿来主义》课件教学新视角
- 历史的轨迹:2024年汽车产业变革详解
- 2024届新疆阿克苏市农一师中学高考临考冲刺化学试卷含解析
- 音乐与教学的完美结合:《童心是小鸟》课件
- 第47届世界技能大赛管道与制暖项目江苏省选拔赛评分表
- 2024年音乐课堂:《上学歌》教案设计
- 针对20以内加减法的教案创新:2024年教育趋势探讨
- 2024年课堂变革:《比例的意义》课件的革新之路
- 24秋国家开放大学《当代中国政治制度》形考任务1-4参考答案
- 工商营业执照注册表2016(DOC)
- 人力资源培训人力资源培训课程课件
- 牵一只蜗牛去散步 (2)
- 附表一pc吊装令
- 水稻栽培技术指导方案
- 地下室回顶方案(地下室顶板加固)
- 物资管理系统使用手册
- 最新八年级外研版英语下册课文与翻译(共20页)
- 小学语文作文生活化教学实践研究
- 制浆洗漂详细过程工艺
评论
0/150
提交评论