基于JSP技术的图书馆信息管理系统开发与设计-本科毕业设计论文_第1页
基于JSP技术的图书馆信息管理系统开发与设计-本科毕业设计论文_第2页
基于JSP技术的图书馆信息管理系统开发与设计-本科毕业设计论文_第3页
基于JSP技术的图书馆信息管理系统开发与设计-本科毕业设计论文_第4页
基于JSP技术的图书馆信息管理系统开发与设计-本科毕业设计论文_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

第30页共30页基于JSP技术的图书馆信息管理系统开发与设计本科毕业设计论文.(二本)

目录摘要……………4关键字…………4引言……………5主要技术实现…………61.网站的开发语言JSP简介…………61.1.1JSP的定义及特点…………61.1.2JSP的工作原理……………71.2网站的开发平台……………………71.3网站的脚本语言……………………7图书馆信息管理系统的分析及实现…………………82.1设计说明……………82.2产品使用人员角色…………………82.3总体层次结构………82.3.1逻辑关系…………………92.3.2客户界面与数据库关系…………………92.4数据库设计…………92.4.1数据库说明………………92.4.2表内逻辑结构设计要点…………………102.4.3各表说明…………………112.5用户登陆设计………112.5.1用户界面登陆设计………112.5.2登陆界面基本功能说明…………………112.5.3用户登陆验证密码………122.5.4用户登陆部份详细设计…………………132.5.5用户登陆程序说明………142.6管理员信息管理设计……………142.6.1管理员信息管理界面设计2.6.2管理员信息管理界面功能说明2.6.3管理员信息管理详细设计2.6.4普通管理员信息表链接说明2.7图书管理设计………182.7.1图书管理界面设计.读者管理设计………212.8.1读者管理界面设计2.8.2读者管理界面功能说明………………….42.9借书管理设计…………232.9.1借书管理界面设计…………232.9.2借书管理界面功能说明……232.9.3借书管理界面详细设计……2.9.4借书管理信息表链接说明…………………2.10还书管理设计………242.10.1还书管理界面设计………252.10.2还书管理界面功能说明…………………252.10.3还书管理界面详细设计…………………252.10.4还书管理信息表链接说明………………262.11用户页面设计………26第三章系统测试…………………273.1站点测试……………273.2图书馆信息管理系统评价…………27结束语……………28参考文献…………29摘要随着二十一世纪中国教育事业的飞速发展,承担传媒与资料储存功能的图书馆也得到随之发生变化。规模不担扩大,馆藏书籍资料不断增加,面对的读者越来越广,伴随图书馆这些负何的增加。为保证繁杂的图书活动正常进行,图书馆内部资料流动的高效管理,同时防止图书馆书籍资料的流失,迫切需要一个图书馆信息管理系统来对图书馆内部资料流动进行有效管理。而开发本系统,从图书馆书籍资料,图书馆读者及图书馆管理员这三方面进行设计。Flyalongwith21centuriesChinaeducationbusinesstodevelopsoon,undertakethemediastorewithdatathelibraryofthefunctiontoalsogettotakeplacethevarietyimmediately.Thescaleisnotareaderforextending,buildinghidingbookdatacontinuouslyincreasing,facetoiswidemoreandmore,chaperonagelibrarythesearenegativewhyofincrement.Forguaranteeingthecomplicatedbooksactivitythenormalproceeding,theinternalstreamdatainlibrarymovesofmanageefficiently,keeplibrarybookdatafromrunningoffatthesametime,needurgentlyalibraryinformationmanagementsystemtointernaldatainlibraryflowproceedthevalidmanagement.Butdevelopthissystem,fromthelibrarybookdata,libraryreaderandlibrarymanagingpersonthesethreeaspectsproceedthedesign.关键字图书表Booktable读者表Peopletable借书表Lendtable管理员表Admin引言图书馆信息管理系统在我国信息图书刚起步,但发展很快。随着我国不断提高教育投入,与此同时带来各单位图书馆的不断扩大发展以满足需求,同时也伴随着整个图书体系的飞速发展,其在教育事业的作用迅速提高。对图书馆信息管理系统不合时宜的苛求,不仅无助于问题的解决,而且会影响图书的有效管理,使图书管理混乱同时也使大量图书流失.学校图书馆是学校的文献资料情报中心,采用最热门的JSP网络编程语言采用C/S模式,它履行搜集、加工、存贮和传播知识信息的职能,承担了为全院教学和科研以及学习提供文献情报资料保障的任务。考虑到现在学校图书馆的计算机网络发展非常迅速,而用户的实际操作水平高低不一,所以需要在传统图书馆管理系统的基础上,开发出基于WEB的采编、流通、浏览、查询方式等功能的图书馆管理系统。本文主要是针对校级图书馆的需求,设计开发了基于浏览器/服务器操作模式的图书馆管理系统,并将其扩展到学校内部的Intranet的应用上第一章主要技术实现1.1网站的开发语言JSP简介1.1.1JSP的定义及特点JSP全称JavaServerPages,在电子商务和电子政务开发中得到广泛应用,是由SUN公司开发一种动太网页标准,实质是传统的HTML代码中加入Java程序片段.使用各种各样的JSP指令,构成JSP页面(扩展名为.jsp).嵌入HTML页面的Java程序片段可以完成操作数据库,文件上传,发送E-mail以及复杂的逻辑处理功能,这些正是建立动态网页所需的功能.另外JSP通过JavaBean实现了功能扩充,能够更为复杂的处理。JSP将业务逻辑层和表示层分离.使用JSP技术,网络开发人员可以使用HTML来设计页面显示部分,使用JSP指令或Java程序片段生成网页上的动态的内容.JSP能够跨平台.JSP支持绝大部分平台包括现在非常流行Linux系统,应用非常广泛Acaphe服务器也提供了支持JSP的服器。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,可跨平台运行”的特点。几乎所有平台都支持Java,JSP+JavaBeans可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的并且与平台无关。JSP组件的使用和开发很方便.JSP的组是Java开发的,可以直接使用.Javabeans的使用也很方便,又由于Java的跨平台性,也使得Javabeans的可移植性和可重用性非常高。使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。强调可重用的组件,绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeans组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为JavaServlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。运行的高效性,当JSP页面第一次被调用时,如果还不存在与其相对应的JavaServelts类,就会被编译成为一个JavaServlets类,并且存储在服务器的内存中。这就使得在接下来的对该页面的调用中,服务器会有非常快的响应(这使CGI-bin不用为每个http请求生成一个新的进程的问题)。1.1.2JSPSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。在传统的网页HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送email(由JavaMail支持)等等,这就是建立动态网站所需要的功能。服务器在接到客户端发来的一个JSP网页请求时,首先由JSP引擎把JSP代码转换成Servlet代码,然后由JSP引擎调用服器的Java编译器对Servlet代码进行编译,把他编译成字节码文件(.class),再由JVM(Java虚拟机)执行此节码文件,最后将执行结果以HTML格式返回给客户端。3.JSP解释引擎将解释结果返回给服务器3.JSP解释引擎将解释结果返回给服务器1.请求JSP页面2.服务器向JSP解释引擎发出请求4.将JSP程序执行的结果以HTML格式发送给客户端.服务器客户端浏览器JSP解释引擎服务器向客户端提供要访问的数据。1.2网站的脚本语言JavaScript是一种基于对象(Object)和事件驱动(EventDriven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用,从而可以开发客户端应用程序等。它是通过嵌套或调入在标准的HTML语言中实现的。JavaScript的出现,可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一种实时的、动态的、可交互式的表达能力。从而基于CGI静态的HTML页面将被可提供动态实时信息并对客户操作进行反应的Web页面所取代。因此,被选为本文网页的脚本语言。1.3.开发平台及环境:主要是以

JDK1.4.0

+

Tomcat

4.0.3,,采用MYSQL建立数据库,数据表使用Aceess

2000生成,基本模式基于JSP,主要以做成网络模式。第二章图书馆信息管理系统的分析及实现2.1.设计说明:本论文不仅旨在对本系统进行后期总结,同时在前期设计中起到框架指导作用,主要指导作用是:在逻辑上将系统模块化,设计各模块之间的信息流,包括模块之间的信息通信等,同时帮助本人理清设计思路,同时增加本系程序将来的可读性。XXX兼本图书馆信息管理系统提出者和开发者角色,用户主要为XXXX管理员,同时本图书馆管理系统设计也是为了适应图书馆的不断发展。本产品主要面对是图书馆管理员,本产品将大利于图书管理员进图书分类同时也利于管理员对流动进行安全有效的管理。采用标准的、开放性的技术,能灵活对管理员进行调动,同时也适应图书馆改而在本组的帮助下进行升级.本产品主要面对是图书馆管理员,本产品将大大利于图书管理员进行图书分类,同时也利于管理员对流动进行安全有效的管理本产品适合于对图书管书籍和读者进行管理,另外为保证安全性也对管理员进行管理。这里图书馆管理涉及到服务器和客户端。系统将对图书管服务器的大量数据进行管理,由于本系统功能简单同时主要是图形界面面对用户,使用起来简单起,无特殊命令。本系统开发主要基于两层结构,数据库层,客户端,客户端使用JSP访问数据库。初步设计是在科大恒星公司内完成,拥有完备的设计平台,数据库主要是用SYBASE,采用公司内部服务器,为便于老师可检查,同时也没有完备后台服务器,所以部份论文设计与原程序可能少许区别。本程序由于是使用JSP设计,由于特殊设计,所以在本论文中注释采用代码外后期说明形式出现。2.2.产品使用人员角色:角色名称职责描述高级管理员对普通管理员进行管理普通管理员对读者和图书进行管理2.3总体层次结构:2.3.1.管理员信息管理员信息图书读者客户端客户端借书对应2.3.2.客户界面与数据库关系用户登陆界面读者表管理界面高级管理员界面数据库书表管理用户登陆界面读者表管理界面高级管理员界面数据库书表管理界面借书界面还书界面2.4.1.本设计开始在本人工作的所在公司内完,原始数据库设计为SYBASE,用ERwin生成数据库表,由四个表组成,同时开始是手动建立数据库,服务器平台是Linux,通过ERwin生成相应的表然后通过UltraEdit进行处理并上传服务器,数据库内部由四张表组成:管理员信息表管理员信息表Admin图书信息表Librarytable数据库借书信息表Lendtable读者信息表Peopletable2.4.2.表字段名属性长度空否主键否意义Adminadressvarchar()2011管理员账号管理员信息表powertinyint00权限值,区分高级用户和普通用户passwordvarchar()2000管理员密码telenumeric()2000管理员联系电话Peopletablestudentnovarchar()2011读者借书证号读者信息表studentnamevarchar()3010读者名字studentcollegevarchar()2000读者所在院系studentortimebit10借书超期于否studentbnumerstinyint00读者借书数studentsortvarchar()2000读者类别Boobtablebooknovarchar()2011图书号图书信息表booknamevarchar()2000书名bookroomvarchar()2000图书位置bookwritervarchar()2010图书作者bookowornovarchar()2010图书借出否bookpublishvarchar()4000图书出版社bookpricetinyint00图书购价booksortvarchar()3000图书类别booknumberstinyint0该种书单数量Lendtablebooknovarchar()2011图书编号联合关系表studentnovarchar()2011读者借书证号2.4.3管理员信息表(Admin):主要是保存图书馆管理员的相关信息,如用户(adress),密码(password),权限(power),联方式(tele),以便于高级员管理员进行管理和访问,同时也保证的使用安全性。读者信息表(Peopletable):主要保存借书者相关信息,如读者名字(studentname),读者所在院系(studentcollege),借书过期限于否(studentortime),所借书本数(studentbnumers),读者类别(studentsort),读者编号(studentno),主要是普通管理员进行访问和管理。图书信息表(Boobtable):主要保存图书馆图书相关信息,如图书名字(bookname),图书所在位置(bookroom),图书作者(bookwriter),图书借出否(bookoworno),图书出版社(bookpublish),图书价格(bookprice),图书类别(booksort),该种图书数量(booknumbers),图书编号(bookno),主要是普通管理员进行访问和管理。借书信息表(Lendtable):主要保存读者编号(studentno),图书编号(bookno),同时他也连接图书信息表和读者信息表,主要是普通管理员间接进行访问,使借书还书中,读者与图书对应起来。2.5用户登陆设计2.5.1.用户界面2.5.2登陆界面基本功能主要是当用户输入登陆用户名和相应密码并提交,用户信息比照管理员数据库表,通过查询对照权限值以判定是哪类,如果权限值为0则为普通用户则为高级用户并进入图书馆管理界面,如果权限值为1则为高级用户并进入注册登记界面,如果是权限值为0则进入普通管理员界。如图:普通管理员操作界面高级管理员操作界面登陆普通管理员操作界面高级管理员操作界面登陆用户登陆时要验证密码那么就要访问管理员信息表,进行查询,用户资料,根据不同的用户权限进入相应操作界面。如图下面相应登陆查询循环程序流程设计:普通管理员界面高级管理员界面NNpower=1开始request.getParameter("username")request.getParameter("password")普通管理员界面高级管理员界面NNpower=1开始request.getParameter("username")request.getParameter("password")Username=rs.getString(1)Password=rs.getString(2)power=rs.getInt(3)NN在验证密码时必然要访问数据库等,这里主要访问数据库中的管理员信息表(Admin),首先访问是用户名字,如果找到输入的用户名,然后再把输入的密码与查找的用户名的相应密码比较,如果相等,再查看对应权限,权限不同就被识别为不同的级别的管理员,这样做的目的主要是为了确保图书馆理系统的安全性,所以对这里访问数据库对于普通用户来说是不可见的。2.5.4<%--连接数据库--%><%Class.forName("com.sybase.jdbc2.jdbc.SybDriver");%><%--驱动--%><%Stringurl="jdbc:sybase:Tds:52:4500/xhtan?charset=eucgb";%><%--链接--%><%Connectionconn=DriverManager.getConnection(url,"tanxiaohui","tanxiaohui");%><%--建立链接--%><%Statementst=null;st=conn.createStatement();%><%--查询数据库验证用户信息,不再访数据库时要关闭数据库--%<%while(rs.next()){if(adress.equals(rs.getString(1))){break;}}if(adress.equals(rs.getString(1))){if(password.equals(rs.getString(2))){if(rs.getInt(3)==1){rs.close();st.close();conn.close();%><jsp:forwardpage="Login.jsp"/><%}else{rs.close();st.close();conn.close();%><jsp:forwardpage="Admin.jsp"/><%}}else{rs.close();st.close();conn.close();%><jsp:forwardpage="Join.jsp"/><%}}rs.close();st.close();conn.close();%><jsp:forwardpage="Join.jsp"/>2.5.5.链接数据库,并打开,这里面首要建立驱动,然后用用户名,用户密码,URL通过对应函数打开数据库。采用SQL语句直接用函数执行访问数据库。查询语句循环采用while(){}进行查询。当数据库访问结束,要关闭数据库如:rs.close(),st.close(),conn.close()。2.6管理员信息管理设计本模块主要访数据库中的管理员信息表,模块的主要目的是对管理员信息进行统计和有效安全管理,其特点主是易学易用美观,功能齐全,主要完成统计。该模块删除时只要输入管理员名字就可以方便删掉相应信息,添加只要输入完整的信息即可即时加入数据库,查询只要输入管理员名字就可以罗列所有该管理员信息,修改,只要输入相应管理员名字就能就找出再输入想要改的内容提交即可改写入数据库。2.6.1.删除修改查询删除修改查询2.6.2管理员信息管理界面功能说明:主要是当高级管理员输入普通管理员相关对应信息并提交,对应信息即写入管理员数据库表。这里通常如果是普通管理员权限值就是0,如果是高级管理员权限值就是1,这样做是为了区分高级管理员和普通管理员,以便于确保安全性,同时也即有效管理图书馆内部管理人员的流动,也可以及时更新图书管理人员的资料,并进行实时管理。这里面主要管理员能完成四大功能,查询、删除、修改、添加。如果是添加,就直接加入信息并提交,就可以直接注册新管理员了,而查询、删除、修改,需要点击相应按钮,以激活该功能才进行相应的操作。为确保安全性,本界面对普通管理员是透明的。.2.6.3管理员信息管理详细设计:这里当高级管理员进行操作时,必然会访问数据库,并进行对应的操作,并进行修改,其中数据库链接和关闭过程的描述省略,前面已经介绍。下面主是功能的详细设计。添加,只要输入完整的信息即可即时加入数据库,.输入并提交就会把以上填写信息提交给插入数据库,写入管理员信息表,管理员表里会增加相应一个用户以及其的信息,实质注册还是删除及添加还是查询更或是修改都要进行提交给数据库,利用函数执行SQL语句访问数据库。<%Stringstudentname=request.getParameter("studentname");Stringstudentcollege=request.getParameter("studentcollege");Stringstudentortime=request.getParameter("studentortime");Stringstudentbnumers=request.getParameter("studentbnumers");Stringstudentsort=request.getParameter("studentsort");Stringstudentno=request.getParameter("studentno");rs=st.executeQuery(sql);sql="insertintoPeopletablevalues('";%><%--进行提交核对是否为空,为空则报错不能插入--%><%if(studentname!=null){if(studentcollege!=null){if(studentortime!=null){if(studentbnumers!=null){if(studentsort!=null){if(studentno!=null){Stringstr1=String.valueOf(studentortime);Stringstr2=String.valueOf(studentbnumers);sql=sql.concat(studentname).concat("','").concat(studentcollege).concat("',").concat(str1).concat(",").concat(str2).concat(",'").concat(studentsort).concat("','").concat(studentno).concat("')");st.executeUpdate(sql);rs.close();st.close();conn.close();%><jsp:forwardpage="Admin_p.jsp"/><%}}}}}}rs.close();st.close();conn.close();%>开始接从缓冲器中接收用户输入的信息。然后判断接收是否为空.如果为空则不执行SQL语句,如果不为空则不执行SQL语句。最后访问完数据库然后关闭。删除,只要输入管理员姓名就可以方便删掉相应信息。<%--连接数据库--%><%sql="deletefromPeopletablewherestudentname=";%><%--进行相应删除操用--%><%if(studentname==null){rs.close();st.close();conn.close();%><jsp:forwardpage="error_p_d.jsp"/><%}if(studentno==null){rs.close();st.close();conn.close();%><jsp:forwardpage="error_p_d.jsp"/><%}sql=sql.concat(studentname).concat("andstudentno=").concat(studentno);%>只要输入用户的名字提交就能有查找数据库并最后删除,如果未找到则删除出错并出会有一个出错页作为提示,这里删除实质也存在一个查找的问题,因为只有找到目的用户我们才能进行删除数据库中相应内容,当然这些都是SQL语句完成,对于用户来说是透明的。查询,只要输入管理员名字就可以罗列所有该管理员信息,修改,只要输入相应管理员名字,就能找出。主要和程序片段如下:while(rs.next()){if(studentname.equals(rs.getString(1))){out.print(rs.getString(1));out.print(rs.getString(2));out.print(rs.getString(3));out.print(rs.getString(4));rs.close();st.close();conn.close();flag=1;}}查询主是使用while()语句来完成,查找成功后把该用户所有信息输出。修改,输入想要修改的内容提交即可改写入数据库主要程序片段如下:if(studentname!=null){sql=sql.concat("studentname=").concat(studentname).concat("studentno=").concat(studentno);st.executeUpdate(sql);}这里只是程序设计修改用户名,还可以修改用户密码,用户权限值,还有用户联系方式,这里修改实质也存在一个查找的问题,因为只有找到目的用户我们才能进行修改数据库中相应内容,当然这些都是SQL语句完成,对于用户来说是透明的.2.6.4.普通管理员信息表链接链接数据库,并打开,这里面首要建立驱动,然后用用户名,用户密码,URL通过对应函数打开数据库。采用SQL语句直接用函数执行访问数据库。当数据库访问结束,要关闭数据库如:rs.close(),st.close(),conn.close()。2.7.图书管理设计:本模块主要访数据库中的图书信息表,模块的主要目的是对图书进行统计和有效管理,其特点主是易学易用美观,功能齐全,主要完成统计。该模块删除时只要输入图书号就可以方便删掉相应信息,添加只要输入完整的信息即可即时加入数据库,查询只要输入图书名字就可以罗列所有该图书信息,修改,只要输入相应图书名字和图书号就能就找出,再输入想要改的内容提交即可改写入数据库。2.7.1.图书管理图书类别图书类别出版社作者书名书号价格位置借出否添加删除修改数量查询2.7.2.图书管理界面功能说明:主要是当普通管理员输入图书相关对应信息并提交,对应信息即写入图书数据库表。这里面主要普通完成四大功能:查询、删除、修改、添加,如果是添加,就直接加入信息并提交,就可以直接登记新的图书了,而查询,删除,修改,需要点击相应按钮,以激活该功能才进行相应的操作。为确保安全性,本界面对读者是透明的。本上面图书管理界面未放入完整界面,只是初期简图,完成了基本功能。这里有一个返回,点击返回会回到上面说的普通管理员选择界面(主要在选择进入图书管理界面还是进入读者管理界面。.2.7.3.图书管理详细设计这里当管理员进行操作时,必然会访问数据库,并进行对应的操作,并进行修改,其中数据库链接和关闭过程的描述省略,前面已经介绍.下面主是功能的详细设计。添加,只要输入完整的信息即可即时加入数据库,.会把以上填写信息提交给相关数据库,图书表里会增加相应一种书以及其的信息,实质是添加登记,无论是删除还是添加还是查询更或是修改都要进行提交给数据库,利用函数执行SQL语句访问数据库,同时从缓冲器获取图书名字、图书位置、图书借出否、图书作者、图书出版社、图书价格、图书类别、该项种图书数量、图书书号。实质使用的是插入函数执SQL语句。Stringbookname=request.getParameter("bookname");Stringbookroom=request.getParameter("bookroom");Stringborroworno=request.getParameter("borroworno");Stringbookwriter=request.getParameter("bookwriter");Stringbookpublish=request.getParameter("bookpublish");Stringbookprice=request.getParameter("bookprice");Stringbooksort=request.getParameter("booksort");Stringbooknumbers=request.getParameter("booknumbers");Stringbookno=request.getParameter("bookno");sql="insertintoBooktablevalues('";%><%--进行提交核对是否为空,为空则报错不能插入--%><%if(bookname!=null){if(bookroom!=null){if(borroworno!=null){if(bookwriter!=null){if(bookpublish!=null){if(bookprice!=null){Iif(booksort!=null){if(booknumbers!=null){if(bookno!=null){sql=sql.concat(bookname).concat("','").concat(bookroom).concat("','").concat(borroworno).concat("','").concat(bookwriter).concat("','").concat(bookpublish).concat("',").concat(bookprice).concat(",'").concat(booksort).concat("',").concat(booknumbers).concat(",'").concat(bookno).concat("')");st.executeUpdate(sql)rs.close();st.close();conn.close();%><jsp:forwardpage="Admin_b.jsp"/><%}}}}}}}}rs.close();st.close();conn.close();%><jsp:forwardpage="error_b_i.jsp"/>开始从缓冲器中接收用户输入的信息。然后判断接收是否为空.如果为空则不执行SQL语句,如果不为空则不执行SQL语句,最后访问完数据库然后关闭。删除,只要输入图书名和图书号就可以方便删掉相应信息,这里删除实质也存在一个查找的问题,因为只有找到目的用户我们才能进行修改、删除数据库中相应内容,当然这些都是SQL语句完成,对于用户来说是透明的。sql=sql.concat(bookname).concat("andbookno=").concat(bookno);st.executeUpdate(sql);只要输入图书的名字及图书号,然后提交在图书表里查询,找到即删除执行上面语句,如果未找到则删除出错并出会有一个出错页作为提示。查询,只要输入图书名字就可以罗列所有该图书信息,修改,只要输入相应图书名字,就能找出。主要和程序片段如下:while(rs.next()){if(bookname.equals(rs.getString(1))){flag=1;}}查询主是使用while()语句来完成,查找成功后把该图书所有信息输出,这里查询主要是根据图书号进行查询。修改,输入想要修改的内容提交即可改写入数据库主要程序片段如下。if(bookname!=null){sql=sql.concat("bookname").concat(bookname).concat("bookno=").concat(bookno);st.executeUpdate(sql);}这里只是程序设计中修改图书名,可以修改图书位置、图书借出否、图书作者、图书出版社、图书价格、图书类别、该项种图书数量、图书书号。具体设计类似,这里修改实质也存在一个查找的问题,因为只有找到目的用户我们才能进行修改数据库中相应内容,当然这些都是SQL语句完成,对于用户来说是透明的。2.7.4.图书管理链接链接数据库,并打开,这里面首要建立驱动,然后用用户名,用户密码,URL通过对应函数打开数据库。采用SQL语句直接用函数执行访问数据库。当数据库访问结束,要关闭数据库如:rs.close(),st.close(),conn.close()。2.8.读者管理设计本模块主要访数据库中读者信息表,模块的主要目的是对图书馆读者进行统计和有效安全管理,其特点主是易学易用美观,功能齐全,主要完成统计。该模块删除时只要输入读者借书证号就可以方便删掉相应信息,添加只要输入完整的信息即可即时加入数据库,查询只要输入读者借书证号就可以罗列所有该读者信息,修改,只要输入相应读者借书证号就能就找出再输入想要改的内容提交即可改写入数据库。2.8.1.读者超期否超期否借书数量借书证号读者名字读者类别所在院系添加删除修改查询返回2.8.主要是当普通管理员输入读者相关对应信息并提交,对应信息即写入数据库表。这里面主要完成四大功能:查询、删除、修改、,添加,如果是添加,就直接加入信息并提交,就可以直接登记新的读者了(办理图书证),而查询,删除,修改,需要点击相应按钮,以激活该功能才进行相应的操作。为确保安全性,本界面对读者是透明的。本上面读者信息管理界面未放入完整界面,只是初期简图,完成了基本功能.这里有一个返回,点击返回会回到上面说的普通管理员选择界面(主要在选择进入图书管理界面还是进入读者管理界面)。.2.8.3.读者这里当管理员进行操作时,必然会访问数据库,并进行对应的操作,并进行修改,其中数据库链接和关闭过程的描述省略,前面已经介绍.下面主是功能的详细设计。添加,只要输入完整的信息即可即时加入数据库,.会把以上填写信息提交给相关数据库,读者信息表里会增加相应一种书以及其的信息,实质是添加登记,无论是删除还是添加还是查询更或是修改都要进行提交给数据库,利用函数执行SQL语句访问数据库,同时从缓冲器获取读者名字、读者借书证号、所借书数量、读者借书超期否、读者所在院系、读者类别(这里主要类别分成学生和老师以及非校内人员),读者借书证书号,实质使用的是插入函数执SQL语句。Stringstudentname=request.getParameter("studentname");Stringstudentcollege=request.getParameter("studentcollege");Stringstudentortime=request.getParameter("studentortime");Stringstudentbnumers=request.getParameter("studentbnumers");Stringstudentsort=request.getParameter("studentsort");Stringstudentno=request.getParameter("studentno");开始接从缓冲器中接收用户输入的信息。然后判断接收是否为空.如果为空则不执行SQL语句,如果不为空则不执行SQL语句。最后访问完数据库然后关闭,具体其他语句省略。删除,只要输入读者借书证号就可以方便删掉相应信息,这里也存在一个查找的问题,因为只要找到所要删除的对象才能删除他的相关所有资料。sql=sql.concat(studentname).concat("andstudentno=").concat(studentno);st.executeUpdate(sql)只要输入图书的名字及图书号,然后提交在图书表里查询,找到即删除执行上面语句,如果未找到则删除出错并出会有一个出错页作为提。查询,只要输入读者借书证号就可以罗列所有该读者信息,只要输入相应管理员名字,就能找出。主要和程序片段如下:while(rs.next()){if(studentname.equals(rs.getString(1))){flag=1;}}查询主是使用while()语句来完成,查找成功后把该图书所有信息输出,这里查询主要是根据图书号进行查询。修改,输入想要修改的内容提交即可改写入数据库主要程序片段如下:if(studentname!=null){sql=sql.concat("studentname=").concat(studentname).concat("studentno=").concat(studentno);st.executeUpdate(sql);}这里只是程序设计中修改读者名字,可以修改读者借书证号、所借书超期否、所借书数量、所在院系、类别,具体设计类似,存在一个查找的问题,因为只要找到所要修改的对象才能修改他的相关所有资料。2.8.4.读者链接数据库,并打开,这里面首要建立驱动,然后使用用户名,用户密码,URL通过对应函数打开数据库。采用SQL语句直接用函数执行访问数据库。当数据库访问结束,要关闭数据库如:rs.close(),st.close(),conn.close()。2.9借书管理设计:本模块主要访数据库中借书信息表,模块的主要目的是对借书进行统计和有效安全管理,其特点主是易学易用美观,功能齐全,主要完成统计。主要征对借书设计,这里主要涉及几个数据表,当然以访问借书表为主,当读者借书时,借书表输入所借书本号,然后输入读者借书证号,然后写入借书信息表,然后对读者表和借书表及图书表相应数据进行修改。2.9.1.借书由于借书界面简单,这里不作详细介绍,其功强大但对于管理员来说操作是不可见的,程序自动完成,因为这里主要是访问数据库为主,三张表同时访问,这三张表主要是读者信息表、借书表和图书信息表。2.9.2借书管理界面功能说明:主要是当普通管理员输入所借书的书号和读者借阅证号并提交,对应信息即写入图数据库表。这里面主要普通完成添加,如果是添加,就直接加入信息并提交,就可以直接记载的新借阅信息,同时在读者信息表中会自动对应借阅证号的对应的借书的数量(studentbnumbers)借一本就加1,同时也修改对应图书表中图书号对应的图书借出属性值(bookoworno)即修改为0,表示图书已经借出。实质整个就一个功能。为确保安全性,本以上对读者信息表和对图书信息表的修改对读者是透明的,界面对簿公堂图借者也是透明的。这里有一个返回,点击返回会回到上面说的普通管理员选择界面(主要在选择进入图书管理界面,还是进入读者管理界面,还有还书界面,如果选择借书界面,则回到这个界面)。.2.9.3.借书管理详细设计:这里当管理员进行操作时,必然会间接访问数据库,并进行对应的操作,并进行修改,其中数据库链接和关闭过程的描述省略,前面已经介绍.下面主是功能的详细设计.添加,只要输入完整的信息即可即时加入数据库,.会把以上填写信息提交给相关数据库,读者信息表里会增加相应一种书以及其相关的信息。实质是添加一个新的借书信息到借书表中并保存,都要进行提交给数据库,利用函数执行SQL语句访问数据库,同时从缓冲器获取读者借书证号和图书号,根据这个再对应数据表进行查找(这里主要类别分成学生和老师以及非校内人员),读者借书证书号,实质的是对借书表使用插入函数和对读者表以及图书表使用修改函数执SQL语句。Stringbookno=request.getParameter("studentname");Stringstudentno=request.getParameter("studentno");开始接从缓冲器中接收用户输入的信息。然后判断接收是否为空.如果为空则不执行SQL语句,如果不为空则不执行SQL语句。最后访问完数据库然后关闭,具体其他语句省略。具体插入和修改程序这里不再详述。2.9.4.还书管理链接链接数据库,并打开,这里面首要建立驱动,然后用用户名,用户密码,URL通过对应函数打开数据库。采用SQL语句直接用函数执行访问数据库。数据库访问结束关闭数据库,语句如下:rs.close(),st.close(),conn.close()。2.10还书管理设计:本模块主要访数据库中借书信息表,模块的主要目的是对借书进行统计和有效安全管理,其特点主是易学易用美观,功能齐全,主要完成统计。主要征对还书设计,这里主要涉及几个数据表,然以访问借书表为主,当读者借书时,借书表时输入所还书本号,然后写入借书信息表,再对读者表和借书表、图书表相应数据进行修改。2.10.1.还由于借书界面简单,这里不作详细介绍,其功强大但对于管理员来说操作是可见的,程序自动完成,因为这里主要是访问数据库为主,三张表同时访问,这三张表主要是读者信息表、借书表、图书信息表。2.10.2还书管理界面功能说明:主要是当普通管理员输入所借书的书号并提交,对应信息即写入图书数据表。这里面主要完成删除,如果是删除,就直接加入信息并提交,就可以直接删除借书信息,表本书已入馆,同时在读者信息表中会自动对应借阅证号的对应的借书的数量(studentbnumbers)就减1,同时也修改对应图书表中图书号对应的图书借出属性值(bookoworno)即修改为1,表示图书已经在馆。实质整个就一个功能,而且对用户不可见。为确保安全性,本以上对读者信息表和对图书信息表的修改对读者是透明的,界面对图借者也是透明的。这里有一个返回,点击返回会回到上面说的普通管理员选择界面(主要在选择进入图书管理界面还是进入读者管理界面、借书界面,如果选择还书界面,则回到这个界面。2.10.3.还书管理详细设计:这里当管理员进行操作时,必然会访问数据库,并进行对应的操作,并进行修改,其中数据库链接和关闭过程的描述省略,前面已经介绍.下面主是功能的详细设计说明。只要输入完整的信息即可即时加入数据库,把以上填写信息提交给相关数据库,读者信息表里会增加相应一种书以及其对应的信息,实质是添加一个新的借书信息到借书表中保存,都要进行提交给数据库,利用函数执行SQL语句访问数据库,同时从缓冲器获取图书号,根据这个再对应数据表进行查找,然后进行如下:1.通过查找,查找对应书号对读者借阅证号(studentno)。2.实质是对借书表使用删除函数删除相应借书信息。3.再通过查找和对读者表以及图书表使用修改函数执SQL语句,把借书数量修改减(studentbnumbers)1,把书是否在管的属性值设为(bookoworno)1表示在馆。如下是从缓冲器中接收数据。Stringbookno=request.getParameter("studentname");开始接从缓冲器中接收用户输入的信息。然后判断接收是否为空.如果为空则不执行SQL语句,如果不为空则不执行SQL语句。最后访问完数据库然后关闭,具体其他语句省略。具体插入和修改程序这里不再详述。2.10.4.还书管理链接链接数据库,并打开,这里面首要建立驱动,然后通过用户名、用户密码、URL使用对应函数打开数据库。采用SQL语句直接用函数执行访问数据库。当数据库访问结束,关闭数据库语句如下:rs.close(),st.close(),conn.close()。2.11用户界面设计由于是用JSP做的,所以界面主要是网页形式出现,界面更替频繁,这里包括普通管理员界、图书管理界面和读者账号管理界面,于是出现一个选择界面,主要利于管理员进行操作,这里面只是通过一个两个语句即可以实现。如下两个语句:<ahref='Admin_b.jsp'>[图书登记]</a><ahref='Admin_p.jsp'>[图书借阅]</a>即可实现现在图书管理界面和读者管理界面之间的选择切换,不涉及访问数据库问题,功能和设计简单,这里就不作详细说明了,上面主要来说明两个客户端界面管理,一个是读者客户端界面管理另一个是图书界面管理。第三章系统测试3.1站点测试链接是使用户从一个页面浏览到另一个页面的重要手段。对于每个链接,需要验证两件事情:一是该链接将用户带到它所说明的地方,另外就是被链接页面是存在的。当用户通过表单提交信息的时候,都希望表单能正常工作。如果使用表单来进行在线注册,要确保提交按钮能正常工作,注册完成后应返回注册成功的消息。如果使用表单收集配送信息,应确保程序能够正确处理这些数据,最后能让顾客能让客户收到包裹。经验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。经测试在图书管理界面、读者管理界面、借书界面、还书界面之间基本可以实现网页的间接切换,在相应操作失败能给出错误提示。第一个需要测试的接口是浏览器与服务器的接口。提交事务,建立在服务器上的数据库中的表同时按相应要求进行了修改,浏览器上看到数据的正好是服务器上变化数据对应的结果。 3.2图书馆信息管理系统评价系统运行效果:运行后,基本功能都已实现,达到预期效果。自我总体评价:总体基本功能都实现,系统简单易学易使用,但界面做得还不够美观。页面关系变化的实现,如果在页面替时存在多个面的选择,数据库访问过程中,由于用到SQL语句,频繁访问数据库烦锁语句替换设定的问题,这样程序设计可读性不强。测试结果:要求功能已基本实现。每个界面的基本功能,如图书管理界面、读者管理界面、管理员信息管理界面、都基本实现了基对应的查找、删除、修改及插入(注册登记)功能,借书界模块和还书模块实现了书本借出和入库功能。同时整个系统基本实现网页转换,如可以从图书管理界面、读者管理界、借书界面、还书界面互相切换,同时在登陆时实现了安全保证。改进意见:使用JSP使用图片插入,使界面美观。程序编辑重新排版,以使格式简明,增加可读性。做成三层,使用javabeans,数据库访问与客户端分开。结束语通过本设计了解并熟悉了JSP技术,同时也进一步学习了Java语言和HTML标签。知道如何利用图书馆查阅资料。由于本系统主要是在苏州科大恒星信息技术有限公司内完成主要模块,了解整个软件开发的全过程。由于公司内部有完备配置,进一步了解了服务器数据库技术,同时也了解了服务器与客户端是如何进行通讯的。本系统主要是在指导老师XXX以及苏州科大恒星信息技术有限公司李黎等领导的细心指导下完成,在此我向XXX老师、李黎等领导表示诚致的感谢。

参考文献[1]DavidCrowder,RhondaCrowder《网页制作宝典》北京:电子工业出版社,2002.239~286[2]林邦杰《JSP交互网站实务经典》北京:中国青年出版社2001[3]黄维晋,盛浩《精通JSP网站架构与实例》大恒电子出版社2002[4]飞思科技研发中心《JSP教程》北京:电子工业出版社2002.01[5]林上杰林康司《JSP2.0技手册》北京:电子工业出版社2004[6]福克纳著司光亚译《JSPweb编程指南》北京:电子工业出版社2002[7]SimonBrown,Sam.Dalton.DanJeepp著白雁陈建春万传风译《JSP编程指南》北京:电子工业出版社[8]姜晓铭刘波张亦华《JSP程序设计精彩实例》北京:清华大学出版社2001[9]ToddCook著谷雨阎隽高春蓉译《JSP从入门到精通》北京:电子工业出版社2003[10]耿祥义《JSP基础教程》北京:清华大学出版社2004[11]宋瀚涛《数据库编程与应用.上》北京:电子工业出版社1998.4[12]宋瀚涛《数据库编程与应用.下》北京:电了工业出版社1998.4[13]AshtonHobbs《自学JDBC数据库编程》北京:清华大学出版社1998.[14]David.M.Kroenke著施伯乐著《数据库处理:基础、设计与实现》北京:电子工业出版社1998[15]科波锐顿著郭东青译《数据库创建、数据库优化》北京:清华大学出版社2001.8[16]NatalieLeui,PhilipHeller著张文耀李纯译《Java2Web开发认证学指南》北京:清华大学出版社2002[17]LauraLemay,Rogers.Cadenhead著束广闻王国良林勇民译《Java2编程21天自学通》北京:清华大学出版社2002[18]新电脑学堂《Java编程篇》北京:电子工业出版社2004[19]孙燕《Java程序设计培训教程》北京:清华大学出版社2002基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究

温馨提示

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

评论

0/150

提交评论