基于jsp的图书管理系统的设计与实现论文_第1页
基于jsp的图书管理系统的设计与实现论文_第2页
基于jsp的图书管理系统的设计与实现论文_第3页
基于jsp的图书管理系统的设计与实现论文_第4页
基于jsp的图书管理系统的设计与实现论文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分类号:TP311UDC:D10621-408-(2021)2391-0密级:公开编号:2005122090成都信息工程学院学位论文基于JSP的图书管理系统的设计与实现论文作者姓名:申请学位专业:信息平安申请学位类别:工学学士王翔〔讲师〕论文提交日期:2009年06月01日基于JSP的图书管理系统的设计与实现摘要随着网络技术的开展、计算机应用水平的提高的扩大,原来系统的时效性、数据的正确性、操作的方便性上都存在缺乏,已影响到系统的正常使用。经过考察比拟,决定利用自己的力量对图书管理系统重新设计,使系统能利用软件开发技术的成果,方便图书的管理。图书管理系统是典型的信息管理系统。系统介绍了图书系统的开发过程,设计中遇到的问题及解决方法以及提高当前应用程序或系统开发进度和改善工作性能.利用其提供的各种面向对象的开发工具,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改良,直到形成用户满意的可行系统。本次课程设计利用JSP开发工具和SQL2000数据库来开发这个图书管理系统。该系统要解决的图书管理所要解决的问题,可以满足图书管理根本要求,包括添加、管理等功能。该系统能根据用户的需求,快捷方便的为读者提供借阅效劳。关键词:图书管理系统信息管理JSPTheDesignAndImplementationofLibraryManagementSystemAbstractAlongwithnetworking’sdevelopment,thecomputerapplicationlevel’senhancement’sexpansion,system’seffectiveness,thedataaccuracy,intheoperationconvenienceshastheinsufficiencyoriginally,Hasaffectedsystem’snormaluse.Aftertheinspectioncomparison,decidedthatusesownstrengthtotheliteraturemanagementsystemmanagementsystemredesign,enablesthesystemtousethesoftwaredevelopmenttechnologytheachievement,convenientliteraturemanagement.Theliteratureregistrationmanagementsystemmanagementsystemisthetypicalinformationmanagementsystem.Thesystemintroducedtheliteraturereferralsystem’sperformancehistory,inthedesignmeetsthequestionandthesolutionaswellasenhancethecurrentapplicationprocedureorthesystemdevelopmentprogressandtheimprovementoperatingperformance.Eachkindofobject-orienteddevelopmentkitwhichprovidesusingit,firstestablishesthesystemapplicationprototypeinashorttime,then,carriesonthedemanditerationtotheinitialprototypesystem,revisesunceasinglyandimproves,untilformstheusersatisfiedfeasiblesystem.Thiscurriculumproject2000databasesdevelopsthisliteraturemanagementsystemmanagementsystemusingtheJSP2.0developmentkitsandSQLServer.Thissystemmustsolvetheliteratureadministrationcentermustsolvethequestion,maysatisfytheliteraturemanagementessentialrequirements,includingincrease,inquiry,managementandsoonthreeaspectfunctions.Thissystemcanactaccordingtotheuserthedemand,whatfacilitatesquicklyisthereaderprovidestheservice.Keyword:Literaturemanagementsystem、Informationmanagement、JSP目录论文总页数:23页TOC\o"1-3"\h\u1引言 11.1系统开发背景 11.2系统目标 11.3系统开发环境 12相关技术介绍 22.1JSP技术概述 22.2JDBC技术概述 22.3Servlet技术概述 22.4MVC模式概述 23系统需求分析 43.1功能需求 43.2系统功能分析及说明 43.2.1系统功能分析 43.2.2系统数据分析 53.3性能需求 53.4系统业务流程图 54系统设计 74.1系统架构 74.2数据库设计 84.2.1数据库需求分析 84.2.2数据库概念结构设计 94.2.3数据库逻辑结构设计 94.3系统功能模块设计 124.3.1系统功能模块设计 12模块功能设计 125系统实现 135.1数据库连接池的实现 135.2用户登陆的实现 155.3图书借阅的实现 165.4添加用户的实现 175.5系统界面设计 196系统测试 196.1界面测试 196.2功能测试 20总结 20参考文献 20致谢 22声明 231引言随着人类社会的开展,人类对知识的需求也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,标准和实用的图书管理系统,对图书资料进行集中统一的管理。如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的开展,因此,开发一套完善的公共图书馆管理系统就必不可少了。1.1系统开发背景近年来,随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,标准和实用的图书管理系统,对图书资料进行集中统一的管理。另一方面,IT产业和Internet获得了飞速开展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。图书管理工作面对大量的可模块化处理的信息,是当今信息革命的一个重要阵地。图书管理信息系统就是采用现代化的信息管理方式代替手工管理方式,提高图书管理工作效率,作到信息的标准管理,科学统计和快速查询,让图书馆更好的为学校,社会效劳。1.2系统目标本系统是专为小型图书馆设计的自动化集成系统。能完成图书信息管理、用户信息管理、借书还书管理等功能,适合管理人员少,藏书量不大的单位。所有工作模块集中在同一界面,工作流程一目了然,方便工作人员操作掌握。1.3系统开发环境⑴PC机一台MicrosoftWindowsXPProfessional512M内存⑵编程软件MyEclipse、ApacheTomcat6.0.14、Sunjdk1.6u2、MicrosoftSQLServer2000、SQLserverDrvierforJDBC(JDBC驱动)2相关技术介绍2.1JSP技术概述JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。Web效劳器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。2.2JDBC技术概述JDBC〔JavaDataBaseConnectivity,java数据库连接〕是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序2.3Servlet技术概述Servlet是一种独立于平台和协议的效劳器端的Java应用程序,可以生成动态的Web页面。它担当Web浏览器或其他HTTP客户程序发出请求,与HTTP效劳器上的数据库或应用程序之间的中间层。Servlet是位于Web效劳器内部的效劳器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web效劳器进行加载,该Web效劳器必须包含支持Servlet的Java虚拟机。2.4MVC模式概述MVC(Model-View-Controller)模式,即模型-视图-控制器模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成局部。这样的运行机制可以起到分工明确,指责清晰,各尽所长的效果。而在软件开发的过程中,这样的开发方式无疑可以有效地区分不同的开发者,尽可能减少彼此之间的互相影响。充分发挥每个开发者的特长。这在开发大型复杂的Web工程时表达得尤为突出。MVC设计模式中,事件一般是指客户端Web浏览器提交的各种不同请求,这些请求由控制器进行处理,控制器根据事件的类型来改变模型或各个视图,视图也可以接受模型发出的数据更新的通知,依据数据更新的结果调整视图效果,呈现在用户面前.而模型也可以通过视图所获得的用户提交的数据进行具体业务逻辑的处理。模型模型视图1视图2控制器事件改变改变改变更新更新获得数据获得数据图1MVC设计模式的结构2.5MD5概述MD5的全称是Message-DigestAlgorithm5,在90年代初由MIT的计算机科学实验室和RSADataSecurityInc创造,经MD2、MD3和MD4开展而来。Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。请注意我使用了“字节串〞而不是“字符串〞这个词,是因为这种变换只与字节的值有关,与字符集或编码方式无关。MD5将任意长度的“字节串〞变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改〞。举个例子,你将一段话写在一个叫readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖〞,这就是所谓的数字签名应用。MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值〔或类似的其它算法〕的方式保存的,用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比拟,而系统并不“知道〞用户的密码是什么。一些黑客破获这种密码的方法是一种被称为“跑字典〞的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。3系统需求分析3.1功能需求〔一〕作为书籍管理员对图书管理系统的要求有:1.能按各种方式〔比方书名、编号、作者〕查询图书馆的藏书情况。2.能按各种方式〔比方读者编号、读者姓名、姓别〕查询读者情况。3.能对图书进行添加、删除。4.能够查询自己的根本资料。〔二〕作为借阅管理员对图书管理系统的要求有:1、能够对图书进行借阅、归还、续借的操作。2、能按各种方式〔比方书名、编号、作者〕查询图书馆的藏书情况。3、能按各种方式〔比方读者编号、读者姓名、姓别〕查询读者情况。4、能够查询自己的根本资料。〔三〕作为系统管理员对图书管理系统的要求有:1.能够对图书进行借阅、归还、续借的操作。2.能够对图书进行查询和管理。3.能够对读者进行查询和管理。4.能够对查看所有用户的资料并管理用户。3.2系统功能分析及说明系统功能分析系统功能分析是在系统开发的总体任务的根底上完成。本系统需要完成的功能主要有5局部:〔一〕图书根本情况的录入,修改,删除等根本操作。1.书籍类别标准的制定,类别信息的输入,包括类别编号,类别名称,备注信息等。2.书籍类别信息的查询,修改,包括类别编号,类别名称,备注信息等。3.书籍信息的输入,包括书籍编号,书籍名称,书籍类别,作者名称,出版社名称,备注信息等。〔二〕个人信息模块。1.增加,修改读者信息。2.修改用户密码。〔三〕实现借书功能。1.借书信息的输入,包括借书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。2.借书信息的查询,修改,包括借书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,备注信息等。〔四〕实现还书功能。1.还书信息的输入,包括还书信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。2.还书信息的查询和修改,包括还书信息编号,读书编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息等。〔五〕能方便的对图书进行查询。系统数据分析根据以上功能,将图书管理系统的数据分为:数据输入局部:主要包括图书根本信息的录入、借阅人根本信息的录入、用户根本信息的录入。数据输出局部:主要是各种统计查询,包括:根据图书信息〔如书名、作者、出版社等〕查阅图书及其借阅信息等。数据处理局部:主要涉及借阅和归还的处理,如一本书借出后,必须在数据库中将该书标记为已借出,以防出现数据库中有书但图书馆无书的情况;一本书归还后,同样必须在数据库中将其标记为已经归还,以便再次借出。3.3性能需求该管理子系统系统主要实现的是根底数据的录入,发布,更新,因此,不管对图书管理的需要或是学生借书信息的需要,网上的数据必须具有高度的完整性和准确性,这就要求系统的高度平安性,可维护性,可靠性及灵活性。比方图书根底类型管理,图书管理员在录入图书信息的时候或是数据库出现异常而产生过失,可能会影响学生借书出错的情况,这就要求系统具有高度的平安性,可维护性,可靠性和灵活性。另外,系统的操作界面要求简便,通俗,以便于操作。3.4系统业务流程图借阅流程:图2借阅流程图流程图分析:在借阅图书的界面下,输入读者编号后查询数据库,假设读者编号存在,那么读取读者信息,然后判断读者是否被锁定〔人为锁定〕、读者是否过期、读者是否之前有借阅图书,如果有借阅图书,检查是否有逾期未还的图书,如果有逾期未还的图书那么禁止借阅新书,如果没有逾期未还的图书,那么是否读者借阅的图书已达上限,如果已达上限那么禁止借阅图书。如果以上条件都满足,输入图书编号后查询数据库该图书是否存在,如果存在那么检查是否在库,如果已经借出那么无法继续借阅,如果尚未借出那么检查是否读者的借阅权限是否足够借阅图书,如果权限足够那么在确认后即完成图书的借阅操作。还书流程:图3还书流程图流程图分析:在归还图书的界面下,输入图书编号后查询借阅数据库里的借阅信息,如果没有借阅信息就返回查找不到借阅信息的提示,如果有借阅信息那么显示借阅此图书的读者信息和该图书的信息,图书管理员确认后点击确认归还按钮即完成图书的归还操作。续借流程:图4续借流程图流程图分析:在续借图书的界面下,输入图书编号后查询借阅数据库里的借阅信息,如果没有借阅信息就返回查找不到借阅信息的提示,如果有借阅那么检查该书是否已过借阅期限,如果是那么只能归还图书不能续借,如果不是检查是否续借次数已满,如果续借次数未满那么确认续借后即完成续借操作。4系统设计系统设计是在系统分析的根底上由抽象到具体的过程.主要目标是将系统分析阶段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机与通信系统的物理〔技术〕方案,为下一阶段系统实施提供必要的技术资料,应符合系统性,灵活性,可靠性。经济性的要求。4.1系统架构本系统采用B/S模式。B/S〔Browser/Server〕结构即浏览器和效劳器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改良的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少局部事务逻辑在前端〔Browser〕实现,但是主要事务逻辑在效劳器端〔Server〕实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的本钱和工作量,降低了用户的总体本钱〔TCO〕。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、本钱也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式〔比方LAN,WAN,Internet/Intranet等〕访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,效劳器数据库也很平安。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。4.2数据库设计数据库需求分析〔一〕需求分析针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:读者信息:属性:读者编号,读者姓名,性别,单位,是否锁定,借阅权限,创立时间,有效期限,联系,备注。主键:读者编号图书信息:属性:图书编号,名称,作者,出版社,ISBN,分类,借阅权限,是否在库,单价,备注。主键:图书编号借阅信息:属性:借阅的图书编号,读者编号,读者姓名,借书日期,还书日期,续借。主键:借阅的图书编号〔二〕系统的数据流程图通过对系统的调查和可行性分析,画出系统的数据流程图:图5数据流程图数据库概念结构设计本程序包括的实体有:管理员信息实体,读者信息实体,图书信息实体,借阅信息实体。数据库逻辑结构设计本图书管理系统的数据库分为六个表,分别为Admin表、AdminLevel表、Book表、Borrow表、Reader表、ReaderLevel表。其中Admin表存储管理员的资料,例如管理员的编号、姓名、密码、管理等级等。AdminLevel表存储管理员等级所对应的权限,例如借阅权限、查询/添加/修改/删除图书、查询/添加/修改/删除读者等权限。Book表存储图书信息,例如图书编号、书名、作者、在库状态等。Borrow表存储借阅信息,例如读者编号、图书编号、借阅日期、还书日期等。Reader表存储读者信息,例如读者编号、姓名、借阅权限等。ReaderLevel表存储读者等级所对应的借阅权限,例如借书上限、借阅期限、续借次数、续借期限等。这六个表的关系图如下:图6数据库表关系图以下是每个表的具体描述:表1Admin表〔管理员信息〕字段名称字段类型长度备注管理编号char3主键管理姓名varchar30非空密码varchar30非空管理权限char1非空是否锁定char1非空创立时间varchar10非空有效期限varchar2非空上次登录datetime8备注varchar100表2AdminLevel表〔管理权限〕字段名称字段类型长度备注管理权限char1主键借阅char1非空还书char1非空续借char1非空查询图书char1非空查询读者char1非空图书操作char1非空读者操作char1非空馆藏统计char1非空借阅分析char1非空根本设置char1非空管理员char1非空管理员等级varchar10非空表3Book表〔图书信息〕字段名称字段类型长度备注图书编号char8主键书名varchar80非空作者varchar50非空出版社varchar50非空ISBNvarchar15分类varchar50非空借阅权限char1非空是否在库char1非空单价varchar6备注varchar100表4Borrow表〔借阅信息〕字段名称字段类型长度备注图书编号char8主键读者编号char7非空读者姓名varchar30非空借书日期varchar10非空还书日期varchar10非空续借char1非空表5Reader表〔读者信息〕字段名称字段类型长度备注读者编号char7主键读者姓名varchar30非空性别char2非空单位varchar30是否锁定char1非空借阅权限char1非空创立时间varchar10非空有效期限varchar2非空联系varchar13备注varchar100表6ReaderLevel表〔读者权限〕字段名称字段类型长度备注借阅权限char1主键限借书数varchar2非空借阅期限varchar2非空续借次数char1非空续借期限varchar2非空4.3系统功能模块设计系统总功能模块设计图7总体功能模块图书管理系统按照管理员的权限不同,将管理员分为系统管理员、书籍管理员、借阅管理员,执行相应的操作。1.对于系统管理员,也可叫超级管理员,具有最高的权限,可以进行图书管理、读者管理、用户管理等所有操作。2.对于书籍管理员,可以进行图书管理、查询信息。3.对于借阅管理员,可以进行借书、还书、续借的操作,并且能查询信息。模块功能设计本系统包括的模块主要有如下几个局部:图书管理模块、借阅管理模块、读者管理模块、系统管理模块、信息查询模块、用户管理模块具体的功能描述如下:图书管理:其功能是管理书库中图书的记录信息,对入库图书信息进行管理,并进行查询。包括图书添加、删除、更新。借阅管理:其功能是对读者借阅信息进行管理。包括进行借书,还书,续借操作。读者管理:其功能是对读者一般信息进行查询以及维护。添加读者借书和还书信息。可以记录新参加的读者的信息,并且可以对已经存在于数据库中的读者的信息进行修改,系统管理:其功能是对用户进行帐户和密码管理以及根底数据维护。包括修改密码、新增用户、删除用户。信息查询:括借阅信息查询、书籍信息查询和用户列表查询等功能。通过这些功能,可以通过不同的关键字来对书库中的图书进行查询,同时也可以查询读者的借阅信息。5系统实现5.1数据库连接池的实现数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中表达得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来防止因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。数据库连接池在初始化时将创立一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被参加到等待队列中。数据库连接池的最小连接数和最大连接数的设置要考虑到以下几个因素:1)最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费。2)最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被参加到等待队列中,这会影响之后的数据库操作。3〕如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。在web-inf/class下建一个perties文件,配置如下logfile=C:\\log.txtlibrary.url=jdbc:microsoft:sqlserver://:1433;DatabaseName=Library_Datalibrary.maxconn=1000library.user=salibrary.password=//创立新的连接池publicDBConnectionPool(Stringname,StringURL,Stringuser,Stringpassword,intmaxConn){=name;this.URL=URL;this.user=user;this.password=password;this.maxConn=maxConn;}//装载荷注册所有JDBC驱动程序:privatevoidloadDrivers(Propertiesprops){StringdriverClasses=props.getProperty("drivers");StringTokenizerst=newStringTokenizer(driverClasses);while(st.hasMoreElements()){StringdriverClassName=st.nextToken().trim();try{Driverdriver=(Driver)Class.forName(driverClassName).newInstance();DriverManager.registerDriver(driver);drivers.addElement(driver);log("成功注册JDBC驱动程序"+driverClassName);}catch(Exceptione){log("无法注册JDBC驱动程序:"+driverClassName+",错误:"+e);}}}//创立新的连接privateConnectionnewConnection(){Connectioncon=null;try{if(user==null){con=DriverManager.getConnection(URL);}else{con=DriverManager.getConnection(URL,user,password);}log("连接池"+name+"创立一个新的连接");}catch(SQLExceptione){log(e,"无法创立以下URL的连接:"+URL);returnnull;}returncon;}}5.2用户登陆的实现当用户输入用户名和密码登陆系统时,在admin_login.jsp页面中通过调用admin类中的adminLogin方法,将用户名和密码与数据库中事先存放的姓名和密码进行比拟,如果相同,那么登陆成功,否那么提示账号或密码错误。实现该页面的相关代码如下:publicbooleanadminLogin(HttpServletRequestres)throwsException{request=res;//获取页面请求信息DataBasedb=newDataBase();DateTimedt=newDateTime();MD5md5=newMD5();adminId=request.getParameter("adminId");adminPwd=db.toSql(md5.getMD5ofStr(request.getParameter("adminPwd")));db.prepareStatement("select*fromAdminwhere管理编号=?and密码=?");db.setString(1,adminId);db.setString(2,adminPwd);ResultSetrs=db.executeQuery();if(rs.next()){adminName=rs.getString(2);adminPower=Integer.parseInt(rs.getString(4));adminLocked=rs.getString(5);adminCT=rs.getString(6);adminAvail=Integer.parseInt(rs.getString(7));adminLLT=rs.getString(8);adminComment=rs.getString(9);rs.close();StringnewLLT=dt.getDateTime();//更新最后登录时间db.executeUpdate("updateAdminset上次登录='"+newLLT+"'where管理编号='"+adminId+"'");db.close();returntrue;}else{rs.close();returnfalse;}}5.3图书借阅的实现当输入图书编号和读者编号后,点击“借阅〞,出现图书详细资料和读者详细资料,确认无误后,点击“确认借阅〞,此时,通过调用borrowBook类中的exeBorrow方法执行借阅。该方法首先获取页面的请求信息,然后查询数据库得到相应的读者信息,并计算出还书时间,把借阅信息写入Borrow表中,更新数据库。publicbooleanexeBorrow(HttpServletRequestres)throwsException{try{DataBasedb=newDataBase();DateTimedt=newDateTime();request=res;//获取页面请求信息StringnewBookSN=db.toSql(request.getParameter("bookSN"));StringnewReaderSN=db.toSql(request.getParameter("readerSN"));db.prepareStatement("select读者姓名,借阅权限fromReaderwhere读者编号=?");//获取该读者信息db.setString(1,db.toSql(newReaderSN));ResultSetrs=db.executeQuery();rs.next();StringnewReaderName=rs.getString(1);StringnewReaderPower=rs.getString(2);db.prepareStatement("select借阅期限fromReaderLevelwhere借阅权限=?");db.setString(1,newReaderPower);rs=db.executeQuery();rs.next();intnewRPBT=Integer.parseInt(rs.getString(1));rs.close();StringnewCD=db.toSql(dt.getDate());//计算还书日期StringnewRD=db.toSql(dt.gainMonth(newRPBT));db.prepareStatement("insertintoBorrowvalues(?,?,?,?,?,'0')");//将借阅信息写入db.setString(1,newBookSN);db.setString(2,newReaderSN);db.setString(3,newReaderName);db.setString(4,newCD);db.setString(5,newRD);db.executeUpdate();db.prepareStatement("updateBookset是否在库='0'where图书编号=?");//将图书不在库信息写入db.setString(1,newBookSN);db.executeUpdate();db.close();returntrue;}catch(Exceptione){returnfalse;}}}5.4添加用户的实现当要添加用户时,在admin_add_admin.jsp页面中,通过调用admin类中的addAdmin方法来进行添加。该方法首先获取页面的请求信息,然后判断此管理员是否具有添加用户的权限,如果有,产生新的用户编号,将客户端传来的信息通过“insertinto…〞语句添加进Admin表中,同时,用户密码用MD5进行加密。publicbooleanaddAdmin(HttpServletRequestres,HttpSessionses)throwsException{DataBasedb=newDataBase();adminadmin=this;request=res;//获取页面请求信息session=ses;//从SESSION中获取管理员IDStringsupervisor=db.toSql((String)session.getAttribute("supervisor"));if(admin.isAdminSA()){StringadminSN=createAdminSN();//产生新的用户编号if(adminSN.equals("000")){errMsg="无法产生新的用户编号,无法添加新用户,请联系高级管理员!";returnfalse;}MD5md5=newMD5();adminId=request.getParameter("adminId");adminPwd=db.toSql(md5.getMD5ofStr(request.getParameter("adminPwd")));adminId=request.getParameter("adminSN");adminName=request.getParameter("adminName");adminLocked=request.getParameter("adminLocked");adminPower=Integer.parseInt(request.getParameter("adminPower"));adminCT=request.getParameter("adminCT");adminAvail=Integer.parseInt(request.getParameter("adminAvail"));adminLLT="";adminComment=request.getParameter("adminComment");try{db.prepareStatement("insertintoAdminvalues(?,?,?,?,?,?,?,?,?)");//添加用户信息db.setString(1,adminId);db.setString(2,adminName);db.setString(3,adminPwd);db.setInt(4,adminPower);db.setString(5,adminLocked);db.setString(6,adminCT);db.setInt(7,adminAvail);db.setString(8,adminLLT);db.setString(9,adminComment);db.executeUpdate();returntrue;}catch(SQLExceptione){e.printStackTrace();errMsg="添加用户失败,无法写入数据库!";returnfalse;}finally{db.close();}}else{errMsg="管理编号为"+supervisor+"的管理员没有权限添加用户!";returnfalse;}}5.5系统界面图8图书管理系统的登录页面图9图书管理系统的主页面图10图书借阅页面6系统测试6.1界面测试界面测试是测试过程中比拟简单直观的一种测试方法,只要细心地按界面要求核对就行了。下面是界面测试中出现的Bug及解决方法:1.错别字,界面中的标题或者文本内容中出现了错别字。解决方法:找到错别字所在代码,将字修改正确。2.页面类似的内容中,明显有字体,字号不同的情况,使界面整体风格看上去不一致,解决方法:看一下是否没有定义CSS,如果定义了仍然

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论