基于web的SH图书管理系统毕业设计_第1页
基于web的SH图书管理系统毕业设计_第2页
基于web的SH图书管理系统毕业设计_第3页
基于web的SH图书管理系统毕业设计_第4页
基于web的SH图书管理系统毕业设计_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)题目:基于web的SH图书管理系统学生姓名____________学号_201022030125_____班级__计算机102201H___所属院(系)_计算机科学与技术__指导教师____________2014年5月20日-PAGEIV--PAGEI- 目录摘要……………………………ⅢAbstract…………………………Ⅳ第1章概述 11.1课题背景 11.2课题意义 11.3文献综述 21.3.1技术综述 21.4总体设计原则 2第2章JSP技术概述1.JSP技术的产生背景……………………42.JSP技术的优势和弱势

………………42.1JSP技术的优势……………………42.2JSP技术的弱势……………………42.3JSP内置对象………………………43.JSP技术的工作原理………………………5第3章Struts概述1.Struts的由来和发展……………61.1Struts的MVC模式简介…………………62.Struts的优缺点

………………83.Struts的工作流程………………9第4章Hibernate数据库持久化技术1.Hibernate简介…………102.Hibernate的工作流程……………………10第5章系统需求分析5.1系统的需求分析 125.2业务流程分析 135.2.1系统管理员业务流程分析 135.3数据流程分析 155.3.1图书类别管理模块 155.3.2图书管理模块 155.3.3读者管理模块 165.3.4图书借阅模块 165.3.5修改密码模块 175.4数据字典 175.4.1数据项的描述 175.4.2数据流的描述 19第6章系统设计 206.1系统体系结构设计 206.2系统子模块功能介绍 206.3数据库设计 216.3.1数据库概念设计——E-R模型 216.3.2数据库逻辑设计——关系模型 216.3.3数据库选型 226.3.4数据库表结构设计 226.3.5数据库表间关系设计 246.4系统开发工具与开发模式的选择 256.4.1系统开发工具 256.4.2系统设计模式 26第7章系统实现 297.1登陆模块 297.2图书类别管理模块 327.3图书管理模块 357.4读者管理模块 377.5图书借阅管理模块 39第8章系统测试 428.1测试目的 428.2测试方法 428.3测试结果 42第9章总结 43参考文献 44致谢 45基于web的SH图书管理系统学院(直属系):计算机科学与技术专业班级:102201H姓名:王懿指导教师:崔略摘要:本文对图书馆管理系统的设计与开发过程进行了分析与叙述。依照系统开发的实际操作步骤,文章从系统概述、系统分析、系统设计和系统实现这四大章节对系统开发过程进行分别阐述。系统概述中主要进行了课题背景、课题意义和现状分析;系统分析中主要包括了系统设计前的需求分析、业务流程分析、数据流程分析和数据字典分析;而系统设计则是对系统体系结构、各功能模块、数据库结构设计等具体的系统实现过程进行剖析展示,在系统设计章节中有详细的文字解释并配有表图说明。文章还列举了关键的功能模块实现代码。本文力求可以为图书馆管理系统的开发设计找到一种切实可行的解决方案,在分析了目前国内外图书馆管理系统的现状的基础上,并经过反复摸索和学习研究后,借助编程语言JSP和SQL数据库最终实现了图书馆管理的开发,并在一系列测试后,达成了人性化、所需功能完善、操作清晰的设计目标。关键词:JSP,SQLServer2005,Struts+Hibernate,图书太原科技大学华科学院毕业设计(论文)web,SH-basedlibrarymanagementsystemcollege(professional):computerscienceandtechnologyclass:102201Hname:WangYiDirector:CuilueAbstract:Inthispaper,bookmanagementsystemdesignanddevelopmentprocessisanalyzedanddescribed.Inaccordancewiththeactualstepsofsystemdevelopment,thearticlefromthesystemoverview,systemanalysis,systemdesignandsystemrealizationofthesefoursectionsofthesystemdevelopmentprocessaredescribed.Systemwerethemainissuesoutlinedinthebackground,meaningandstatusofthesubjectanalysis;systemanalysis,systemdesignincludesapre-needsanalysis,businessprocessanalysis,dataflowanalysisanddatadictionaryanalysis;andsystemdesignisthesystemarchitecture,variousfunctionalmodules,databasestructuredesigntoachievespecificprocesstoanalyzethesystemdisplay,thesystemdesignsectiontoexplaininmoredetailandwithatablediagramshows.ThearticlealsoliststhekeyfunctionmodulecodeThispaperseekstobookmanagementsystemfordevelopmentanddesigntofindapracticalsolutionintheanalysisof-Boathomeandabroadonthebasisofthestatusofthesystem,andafterrepeatedexplorationandstudyafterstudy,usingJSPandsoftSQLprogramminglanguageServerdatabaseandultimatelythebookmanagementsystemdevelopment,andinaseriesoftests,reachedauser-friendly,functionalrequirements,operationsdesignedtoclearKeyWords:JSP,SQL,Struts+Hibernate,Book太原科技大学华科学院毕业设计(论文)-PAGE59-第1章概述1.1课题背景随着社会的发展,人们对知识的需求也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就必不可少了,本文介绍了在Windows7及Java、JSP、SQL、MyEclipse环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发本系统的详细过程,提出实现图书馆信息管理、资源共享的基本目标,从而推动迈向数字化图书馆的步伐,并阐述系统结构设计和功能设计,从图书的入库登记到查询浏览,从借书证发放到图书的借阅,形成了一个整体自动化管理模式,从软件工程的角度进行了科学而严谨的阐述。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书馆管理系统的开发的基本环境。1.2课题意义数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。基于存在的这一问题,我认为有必要建立一个图书馆管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况1.3文献综述目前的图书馆管理系统种类繁多,但依据各自不同的规模和功能需要,大体上所采取的技术体系采用VB+microsoftAccess/SQLServer技术,或者DEPHI+SQLServer,几乎有很少使用JSP体系结构技术。1.3.1技术综述尽管有着众多的网络开发体系,但如何决定一个系统使用何种方法开发仍然是基于系统的基本需求,本文不详细描述各种开发体系的性能优劣,这里选取了二家不同规模的图书馆管理系统,将各系统选用的开发体系列表比较如下:表1.1各系统选用的开发体系列表系统名称开发语言数据库Web服务器操作系统青岛大学图书管管理系统VBMicrosoftAccessIIS6.0WindowsServer2000海尔图书馆管理系统ASP.NETMicrosoftSQLServer2005IIS6.0WindowsServer20001.4总体设计原则本系统为了设计、实现和后期维护的方便,以及系统用户使用的便利,所以必须采取一定的设计原则。其主要设计原则有:简单性:在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。针对性:本系统设计是针对图书馆管理的需求定向开发设计,所以具有专业突出和很强的针对性。实用性:要求本系统能够满足图书馆管理的需求,因此具有良好的实用性。一致性:页面整体设计风格以及命名规则的一致性:整体页面布局和用图用色风格及变量、类名和其他元素的命名规则保持一致。功能一致性:完成同样的功能应该尽量使用同样的元素。元素风格一致性:界面元素的美观风格、摆放位置在同一个界面和不同界面之间都应该是一致的。变量命名规则的一致性:变量应该用统一的规则进行命名,做到任意变量均能从上下文推断其义。先进性:本系统采用JSP技术、SQL等被广泛采用系统开发技术和数据库,因此本设计具有良好的先进性,具体表现在其具有良好的可扩展性,可开发性。太原科技大学华科学院毕业设计(论文)第2章JSP技术概述1.JSP技术的产生背景JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,该技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。在传统的网页HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。由于JSP构建在Servlet上,所以它有Servlet所有强大的功能。JSP基于强大的Java语言,具有良好的伸缩性,与JavaEnterpriseAPI紧密地集成在一起,在网络数据库应用开发领域具有得天独厚的优势。从JSP这几年的发展来看,JSP已经取得了巨大的成功,它通过和EJB等J2EE组件进行集成,可以编写出具有大的伸缩性、高负载的企业级应用,它从多个方面加速了动态Web应用页面的开发[2]。2.JSP技术的优势和弱势2.1JSP技术的优势1、一次编写,到处运行。2、系统的多平台支持。3、强大的可伸缩性。4、多样化和功能强大的开发工具支持。2.2JSP技术的弱势1、跨平台的功能和极度的伸缩能力,极大地增加了产品的复杂性。2、它需要一定的硬盘空间来存储一系列的.Java文件、.class文件及对应的版本文件。2.3JSP内置对象

JSP包括九种内置对象:request对象、response对象、pageContext对象、Session对象、application对象、out对象、config对象、page对象以及exception对象,其中通过application对象和session对象可以实现不同页面间的数据共享。3.JSP的工作原理Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送email等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无JavaApplet,甚至无Frame。第3章Struts概述1.Struts的由来和发展Struts框架工具是Apache基金会Jakarta项目中推出的一个子项目。Struts在英文中是支架、支撑的意思,这也体现出Struts在开发Web应用程序过程所起到的重要作用,Struts为Web应用提供了通用的框架,让开发人员可以把主要精力集中在如何解决实际业务问题上,与此同时Struts框架也允许开发人员根据实际需要进行扩展和定制,从而可以更好的适应用户的需求。采用Struts可以简化遵循MVC设计模式的Web应用的开发工作,很好地实现代码重用,使开发人员从一些繁琐的工作中解脱出来,快速开发能够充分发挥JSP/Servlet优点、并具有强可扩展性的Web应用。总之,Struts的出现使得Web应用的开发过程大大简化,从而能够缩短开发周期、提高开发效率。1.1Struts的MVC模式简介模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。

1、模型(Model)

模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.

2、视图(View)

视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。

3、控制器(controller)

控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。

MVC式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。尽管MVC设计模式很早就提出,但由于缺乏相关支持,在Web开发中引入MVC却相当困难,直到基于J2EE的JSPModel2问世时才得以改观。下面对JSPModel1与JSPModel2进行简单介绍。

图2:JSPModel1(JSP+JavaBean)的数据传递关系

图3JSPModel2(JSP+JavaBean+Servlet)的数据传递关系比较两种模式,我们不难发现JSPModel2显然比JSPModel1层次关系更加清楚,开发的页面也更易于维护。在这种模式中,各组件的分工关系非常明确,JSP技术用于显示,充当了视图的角色,Servlet用于执行业务逻辑,它相当于控制器的角色,JavaBean组件用于表示数据,相当于模型的角色。尽管如此,JSPModel2仍不够好,它容易使系统出现多个Controller,并且对页面导航的处理比较复杂。Struts就是在JSPModel2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑,是对JSPModel2的一个极大改进[3]。2.Struts的优缺点优点:Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,使开发者能更深入的了解其内部实现机制,这是它的一大优点。

除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率;而页面导航则使系统的脉络更加清晰,通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处‘尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

缺点:Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。

Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。

Struts从产生到现在还不到半年,但已逐步越来越多运用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的J2EE

MVC实现方式。3.Struts的工作流程在WEB启动时就会中载并初始化ActionServlet。ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中。当ActionServlet接收到一个客户请求时,它的执行过程大致如下:1、检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效。

2、如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交表单数据保存到ActionForm对象中。3、根据配置住处决定是否需要表单验证,如果需要验证,就调用ActionForm扔validate()方法。

4、如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionError对象,就表示表单验证成功。

5、ActionServlet根据ActionMapping实例包含的映射住处决定将请求转发给哪个Action。如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execrte()方法。

6、Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。

7、ActionForward对象指向的JSP组件生成动态网页,返回给客户[4]。下图是Struts的工作流程,所有的请求都提交给ActionServlet图4struts相应用户操作的工作流程第4章Hibernate数据库持久化技术1.Hibernate简介Hibernate是一个面向Java环境的对象/关系数据库映射工具。它是使用GNU宽通用公共许可证发行的自由、开源的软件,它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate不仅仅管理Java类到数据库表的映射(包括Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。Hibernate的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95%。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑。Hibernate可能不是最好的解决方案,但对于那些在基于Java的中间层应用中实现面向对象的业务模型和商业逻辑的应用Hibernate是最有用的。Hibernate的工作流程在Java应用中使用Hibernate,大致包括以下步骤:1、创建Hibernate配置文件。2、创建持久类。3、创建对象-关系-映射文件。4、通过HibernateAPI编写访问数据库的代码[5]。第5章基于Web的图书管理系统分析5.1系统的需求分析本系统致力于建立灵活、方便的图书馆管理系统,主要有五大功能模块:类别管理模块、图书管理模块、读者管理、借阅管理和归还管理模块。图5.1系统需求分析图1.图书类别信息管理:作为一个社区的图书馆,涉及到的图书是很多的,这就有必要对图书进行分门别类,这样有利于对图书的查询和管理,管理员登陆系统后可以对图书类别进行添加,更新和删除操作。2.图书信息管理:当管理员对图书类别信息添加完成后,就可以开始进行图书信息的录入了。3.读者信息管理:管理员可以添加新的读者信息,修改已经存在的读者信息,删除读者信息。4.图书借阅管理:管理员登陆系统后。可以管理读者的借阅信息。首先输入读者的借书证号,然后输入要借阅的图书和借阅时间,完成借阅的管理。5.图书归还管理:当读者看完了书或需要归还时,管理员通过系统提供的接口完成图书归还操作。5.2业务流程分析5.2.1系统管理员业务流程分析系统管理员进入用户登录界面后,在登录功能区输入系统管理员的用户账号与密码,登录成功后跳转到系统主窗体。系统可以查看图书信息,并对其进行查找或删除等操作;查看读者信息,对不符合系统规定的进行删除操作;添加图书借阅信息,并对其进行编辑或删除等操作。结束各项操作后退出,回到系统主窗体。图5.2系统管理员业务流程图5.3数据流程分析5.3.1图书类别管理模块图5.3图书类别管理模块数据流程图5.3.2图书管理模块图5.4图书管理模块数据流程图5.3.3读者管理模块图5.5读者信息管理模块数据流程图5.3.4图书借阅模块图5.6图书借阅模块数据流程图5.3.5修改密码模块图5.7修改密码模块数据流程图5.4数据字典5.4.1数据项的描述表5.8图书类别数据项描述数据项类型长度值范围ID数字40000000000至9999999999之间类别名称文本50最多25个字符类别介绍文本5000-500个汉字表5.9图书信息数据项描述数据项类型长度值范围ID数字40000000000至9999999999之间名称文本42~100个汉字作者文本502~100个汉字出版社文本42~100个汉字出版日期日期50年-月-日,形如“2011-5-19”ISBN文本102~100个汉字单价文本2~100个汉字类别ID数字0000000000至9999999999之间表5.10读者信息数据项描述数据项类型长度值范围ID数字40000000000至9999999999之间姓名数字42~50个汉字性别文本202~50个汉字年龄数字101-100住址文本42~50个汉字联系方式文本502~50个汉字借书证号文本502~50个汉字表5.11借阅信息数据项描述数据项类型长度值范围ID数字40000000000至9999999999之间用户ID数字40000000000至9999999999之间图书ID文本200000000000至9999999999之间借阅数量数字101-100借阅时间日期4年-月-日,形如“2011-5-19”归还时间日期4年-月-日,形如“2011-5-19”表5.12管理员信息数据项描述数据项类型长度值范围ID数字100000000000至9999999999之间登陆账号文本102~50个字符登陆密码文本5002~500个字符5.4.2数据流的描述(1)数据流名:图书类别信息简述:用户登录成功后可以添加、编辑和删除图书类别信息组成:图书类别参数=类别名称+备注数据量:约100次/日(2)数据流名:图书信息简述:系统管理员登录成功后可以浏览、删除、增加图书收费信息组成:图书信息=图书名称+作者+出版社+出版日期+图书ISBN+单价+库存数量+页码+类别编号数据量:约5000次/日(3)数据流名:读者信息简述:系统管理员登录成功后可以添加、编辑和删除读者信息组成:读者信息=姓名+性别+年龄+住址+联系方式+借书证号数据量:约100次/日(4)数据流名:借阅信息简述:系统管理员登录成功后可以添加、编辑和删除图书借阅信息组成:借阅信息=读者编号+图书编号+借阅天数+借阅时间+归还时间+备注数据量:约100次/日太原科技大学华科学院毕业设计(论文)第6章系统设计6.1系统体系结构设计本系统的系统结构是按照了自上向下的设计理念完成的。第一层是用户登录界面。第二层是系统主页,主要包括图书类别管理,图书信息管理、读者管理、借阅信息管理、修改密码等,用户登录成功后可以转至各个管理功能。第四层即各个管理功能的所有功能。图6.1系统体系结构设计6.2系统子模块功能介绍(1)图书类别管理模块:主要功能是系统管理员登入后,添加、编辑和删除图书类别的功能。(2)图书管理模块:主要功能是系统管理员登入后,添加、编辑和删除图书信息的功能。(3)读者管理模块:主要功能是管理员登入后,维护读者的信息。包括录入新的读者,删除不符合规定的读者,编辑现有的读者信息。(4)借阅管理模块:主要功能是管理员登入后,维护图书借阅的信息。包括增加新的,删除不符合规定的借阅,编辑现有的借阅信息。(5)修改密码模块:主要功能是管理员为了保证安全性。重设密码的功能6.3数据库设计6.3.1数据库概念设计——E-R模型概念模型是对信息世界建模,其表示方法有很多,其中最为常用的是实体-联系模型,即E-R模型,它是用E-R图来描述现实世界的概念模型。下列E-R图清楚简便的描述出了本系统实体与其属性之间的关系。图6.2数据库概念模型E-R图6.3.2数据库逻辑设计——关系模型下面将图3.2数据库E-R图转换为关系模型。图书类别信息(ID,类别名称,备注信息)图书信息(ID,名称,出版社,出版日期,ISBN,页码,库存,类别ID)读者信息(ID,姓名,性别,年龄,住址,联系方式,借书证号)借阅信息(ID,图书ID,读者ID,借阅数量,借阅时间,归还时间)管理员信息(用户名,密码)6.3.3数据库选型本系统使用SQLSERVER关系型数据库。SQLSERVER是由微软公司出品,基于关系型数据库的大型数据库系统,该版本数据库具有独立于硬件平台、对称的多处理器结构、抢占式多任务管理、完善的安全系统和容错功能,更具有使用方便、可收缩性好与相关软件集成程度高等优点。6.3.4数据库表结构设计本系统后台数据库中总共设计了5张数据表,分别为黑名称图书类别信息表(t_catelog)、图书信息表(t_book)、读者信息表(t_user)、借阅表(t_jieyue)和管理员信息表(t_admin)。具体结构设计如下:(1)图书类别信息表(t_catelog)图书类别信息表主要用于存放图书类别的信息,主要字段包括:ID,类别名称,备注信息等。表6.3图书类别信息表(t_catelog)字段名数据类型字段描述长度主键IDintID4√Mingchengvarchar类别名称50Beizhuvarchar备注信息500(2)图书信息表(t_book)图书信息表主要用于存储图书信息,主要字段有ID、图书名称、出版社、出版日期、ISBN号、页码、库存数量、类别ID等表6.4图书信息表(t_book)字段名数据类型字段描述长度主键IDInt编号4√NameVarchar图书名称50ChubansheVarchar出版社50ChubanriqiVarchar出版日期4IsbnVarchar图书ISBN50PriceVarchar单价50Kucunint库存数量50Catalog_idVarchar类别ID50(3)读者信息表(t_user)读者信息表主要用于存储读者信息,主要字段有姓名、性别、年龄、住址、联系方式、借书证号等表6.5读者信息表(t_user)字段名数据类型字段描述长度主键IDInt编号4√NameVarchar姓名50SexVarchar性别50AgeInt年龄4AddressVarchar住址50TelVarchar联系方式50JiehaoVarchar借书证号50(4)借阅信息表(t_jieyue)读者信息表主要用于存读者借阅图书的信息,主要字段有ID、图书ID、读者ID、借阅时间、归还时间、借阅数量等表6.6借阅信息表(t_jieyue)字段名数据类型字段描述长度主键IDInt编号4√Book_idInt图书编号50User_idInt读者编号50JieyueshijianVarchar借阅时间4JieyueshuliangVarchar借阅数量50GuihuanshijianVarchar归还时间50BeizhuVarchar备注50(5)管理员信息表(admin)管理员信息表主要用于系统管理员的信息,主要字段包括:编号、登陆账号、登陆密码。表6.7管理员信息表(admin)字段名数据类型字段描述长度主键IDInt编号10√Namevarchar登陆账号50Pwdvarchar登陆密码506.3.5数据库表间关系设计图6.8数据库表间关系图6.4系统开发工具与开发模式的选择6.4.1系统开发工具本系统主要使用JSP、SERVLET技术对系统进行设计和开发。JSP,即JavaServerPage,Java应用页面程序。作为开发动态页面的一种技术,JSP是当前大中型企业应用软件首选的开发路线之一。而且JSP是J2EE的重要组成部分,开发人员可以在JSP中获得J2EE的众多优点。学习JSP也是J2EE入门的必经之路。JSP既依赖于也得益于J2EE技术。“一次编写,随处运行”的可移植性使用户可以专注于JSP的开发,而无须考虑系统层面的问题;Java的开放特性使市面上涌现出了众多的Web框架可供采纳;面向对象的设计,为更加轻松地构筑安全稳定的Web在线系统提供了基础保障。JSP秉承了J2EE高贵的血统,却又带着平易近人的个性。JSP本质上是一个Java程序,具备Java语言一切无与伦比的优势。相比依赖于VBScript代码的ASP,以及依赖于Perl语言的PHP等其他Web编程语言,JSP有着严格的Java语法支持,可以和JavaBean无缝整合。ASP采用了解析执行的机制,而JSP则是先编译后执行。因此,在第一次访问时JSP比ASP要慢,但是JSP的执行则比每次都解析执行的ASP快若干个数量级。微软随后推出了ASP.NET,号称提供了丰富的面向对象类库,引入中间语言的概念来支持多种语言,完整地集成了XML及WebService的支持,利用代码托管机制避免危害服务器,并期盼以此代替ASP。事实上ASP.NET的框架设计与J2EE框架十分类似,虽然弥补了ASP之前的缺陷,但是,其对于Windows平台的依赖性以及.NET本身的封闭性却依然存在。尽管现在有Mono计划将所有的开发转移到Linux,但是由于各种原因,Mono有着众多的制肘,并不被业界看好。当然,对于Windows环境下的中小型应用程序,ASP.NET确实是不错的选择。JSP是线程高度并行的,可以充分利用硬件资源。另外,Java语言与平台无关,开发者可以将JSP部署在几乎任何操作系统上,UNIX系统可以为JSP提供稳定可靠的安全运行环境;利用集群技术还可以把多台主机联合起来服务于JSP应用程序。因此,JSP对于高可靠性、高性能要求的企业级应用系统有较强的吸引力。从开发者的角度考虑,JSP是开发Web应用程序的首选。JSP支持JavaBean组件,也就获得了众多Java厂商的有力支持,开发者可以利用JavaBean来完成所有Java能实现的功能,如数据库连接池、图形绘制、文件IO操作、XML解析、WebService调用与发布等。Java的开放性也使系统框架如雨后春笋般涌现,Struts,Webwork,Tapstry,Velocity,Hibernate等开源框架为Web应用开发者简化了开发流程,提高了代码质量,从而降低了学习门槛和开发成本。JSP遵循J2EE规范所采用的分层结构也使得代码容易组织维护,各个独立的层次分别针对特定的编程领域,在某个领域发生变化的时候,只需要在对应层次进行针对性的修改,而不会影响到其他层次的代码。而相对于Servlet这种Java类,JSP又有着特定的优势。从前面的例子可以看出,要完成一个简单JSP页面具有的功能,需要编写大量的Servlet代码,而且,从代码上根本看不出来生成的HTML文档结构。另外,JSP中双引号等特殊字符,在Servlet中都需要进行转义处理,又进一步降低了程序的可读性。Servlet不能有效地利用原型页面。事实上,在JSP中,还可以使用标签等特性,进一步将JSP中的Java代码导致的不利因素削弱。总之,使用JSP可以降低开发门槛,提高程序可读性,开发出高性能的跨平台企业级软件。所以在线汽车销售网站采用了JSP技术。6.4.2系统设计模式B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows98/Windows2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。B/S结构采用星形拓扑结构建立企业内部通信网络或利用Internet虚拟专网(VPN)。前者的特点是安全、快捷、准确。后者则具有节省投资、跨地域广的优点。须视企业规模和地理分布确定。企业内部通过防火墙接入Internet,再整个网络采TCP/IP协议。C/S与B/S区别:Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的。1.硬件环境不同:C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务.B/S建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备.信息自己管理.有比C/S更强的适应范围,一般只要有操作系统和浏览器就行2.对安全要求不同C/S一般面向相对固定的用户群,对信息安全的控制能力很强.一般高度机密的信息系统采用C/S结构适宜.可以通过B/S发布部分可公开信息.B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群.3.对程序架构不同C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑.B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上.比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.SUN和IBM推的JavaBean构件技术等,使B/S更加成熟.4.软件重用不同C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好.B/S对的多重结构,要求构件相对独立的功能.能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子5.系统维护不同系统维护是软件生存周期中,开销大,重要C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级.升级难.可能是再做一个全新的系统B/S构件组成,方面构件个别的更换,实现系统的无缝升级.系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.6.处理问题不同C/S程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关.应该都是相同的系统B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的.与操作系统平台关系最小.7.用户接口不同C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流.并且大部分难度减低,减低开发成本.8.信息流不同C/S程序一般是典型的中央集权的机械式处理,交互性相对低B/S信息流向可变化,B-BB-CB-G等信息、流向的变化,更像交易中心。第7章系统实现7.1登陆模块(1)登陆界面要想使用本系统,必须先登陆到系统中,在登陆页面,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。图7.1登陆模块界面(2)登陆模块关键代码publicStringlogin(StringuserName,StringuserPw,intuserType) { try { Thread.sleep(700); }catch(InterruptedExceptione) { //TODOAuto-generatedcatchblock e.printStackTrace(); } Stringresult="no"; if(userType==0)//系统管理员登陆 { Stringsql="select*fromt_adminwhereuserName=?anduserPw=?"; Object[]params={userName,userPw}; DBmydb=newDB(); mydb.doPstm(sql,params); try { ResultSetrs=mydb.getRs(); booleanmark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } else { result="yes"; TAdminadmin=newTAdmin(); admin.setUserId(rs.getInt("userId")); admin.setUserName(rs.getString("userName")); admin.setUserPw(rs.getString("userPw")); WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); session.setAttribute("userType",0); session.setAttribute("admin",admin); } rs.close(); } catch(SQLExceptione) { System.out.println("登录失败!"); e.printStackTrace(); } finally { mydb.closed(); } } if(userType==1) { Stringsql="select*fromt_yuangongwheredel='no'andloginName=?andloginPw=?"; Object[]params={userName,userPw}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); booleanmark=(rs==null||!rs.next()?false:true); if(mark==false) { result="no"; } if(mark==true) { TYuangongyuangong=newTYuangong(); yuangong.setId(rs.getInt("id")); yuangong.setName(rs.getString("name")); yuangong.setSex(rs.getString("sex")); yuangong.setAge(rs.getString("age")); yuangong.setTel(rs.getString("tel")); yuangong.setAddress(rs.getString("address")); yuangong.setLoginName(rs.getString("loginName")); yuangong.setLoginPw(rs.getString("loginPw")); result="yes"; WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); session.setAttribute("userType",1); session.setAttribute("yuangong",yuangong); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); } if(userType==2) { } returnresult; } 7.2图书类别管理模块(1)图书类别管理模块界面管理员登陆系统后,点击左面的菜单“图书类别管理”,页面调转到图书类别管理界面,录入图书类别的基本信息。如类别名称、备注信息等,点击保存按钮,调用后台的java类catelogServlett把图书类别信息保存到数据库。操作员管理界面如下图图7.2图书类别管理模块界面(2)图书类别管理模块关键代码publicvoidcatelogAdd(HttpServletRequestreq,HttpServletResponseres) { Stringname=req.getParameter("name"); Stringjieshao=req.getParameter("jieshao"); Stringdel="no"; Stringsql="insertintot_catelogvalues(?,?,?)"; Object[]params={name,jieshao,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","catelog?type=catelogMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidcatelogDel(HttpServletRequestreq,HttpServletResponseres) { Stringsql="updatet_catelogsetdel='yes'whereid="+Integer.parseInt(req.getParameter("id")); Object[]params={}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","catelog?type=catelogMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidcatelogMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListcatelogList=newArrayList(); Stringsql="select*fromt_catelogwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tcatelogcatelog=newTcatelog(); catelog.setId(rs.getInt("id")); catelog.setName(rs.getString("name")); catelog.setJieshao(rs.getString("jieshao")); catelogList.add(catelog); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("catelogList",catelogList); req.getRequestDispatcher("admin/catelog/catelogMana.jsp").forward(req,res); } 7.3图书管理模块(1)图书管理界面管理员登陆系统后,点击左面的菜单“图书管理”,页面调转到图书管理界面,录入图书的基本信息。包括名称、出版社、出版日期、ISBN、库存数量、单价等,点击保存按钮,调用后台的java类BookServet把图书信息保存到数据库。图书管理界面如下图图7.3图书管理模块界面(2)图书管理模块关键代码Stringname=req.getParameter("name"); Stringzuozhe=req.getParameter("zuozhe"); Stringchubanshe=req.getParameter("chubanshe"); Stringchubanriqi=req.getParameter("chubanriqi"); Stringisbm=req.getParameter("isbm"); Stringprice=req.getParameter("price"); Stringyeshu=req.getParameter("yeshu"); Stringkucun=req.getParameter("kucun"); Stringcatelog_id=req.getParameter("catelog_id"); Stringsql="insertintot_bookvalues(?,?,?,?,?,?,?,?,?,?)"; Object[]params={name,zuozhe,chubanshe,chubanriqi, isbm,price,yeshu,kucun, catelog_id,"no"}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed();ListbookList=newArrayList(); Stringsql="select*fromt_bookwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { TBookbook=newTBook(); book.setId(rs.getInt("id")); book.setName(rs.getString("name")); book.setZuozhe(rs.getString("zuozhe")); book.setChubanshe(rs.getString("chubanshe")); book.setChubanriqi(rs.getString("chubanriqi")); book.setIsbm(rs.getString("isbm")); book.setPrice(rs.getString("price")); book.setYeshu(rs.getString("yeshu")); book.setKucun(rs.getString("kucun")); book.setCatelog_id(rs.getInt("catelog_id")); book.setDel(rs.getString("del")); bookList.add(book); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("bookList",bookList); req.getRequestDispatcher("admin/book/bookMana.jsp").forward(req,res); 7.4读者管理模块(1)读者模块界面在该界面中首先输入读者基本信息。单击“提交”按钮,即可完成读者录入操作。图4.3读者模块界面(2)读者管理关键代码publicvoidservice(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException {Stringtype=req.getParameter("type"); if(type.endsWith("userMana")) { userMana(req,res); } if(type.endsWith("userAdd")) { userAdd(req,res); } if(type.endsWith("userDel")) { userDel(req,res); } if(type.endsWith("userAll")) { userAll(req,res); } } publicvoiduserAdd(HttpServletRequestreq,HttpServletResponseres) { Stringname=req.getParameter("name"); Stringsex=req.getParameter("sex"); Stringage=req.getParameter("age"); Stringaddress=req.getParameter("address"); Stringtel=req.getParameter("tel"); Stringemail=req.getParameter("email"); Stringjiehao=req.getParameter("jiehao"); Stringdel="no"; Stringsql="insertintot_uservalues(?,?,?,?,?,?,?,?)"; Object[]params={name,sex,age,address,tel,email,jiehao,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","user?type=userMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoiduserDel(HttpServletRequestreq,HttpServletResponseres) { Stringsql="updatet_usersetdel='yes'whereid="+Integer.parseInt(req.getParameter("id")); Object[]params={}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","user?type=userMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } 7.5图书借阅管理模块(1)图书借阅模块界面管理员登陆系统后,点击左面的菜单“图书借阅管理”,页面调转到图书借阅管理界面,录入图书借阅的基本信息。如图书ID、读者ID、借阅数量、借阅时间等,点击保存按钮,调用后台的java类JieyueServlett把图书借阅信息保存到数据库。图书借阅管理界面如下图图7.3图书借阅模块界面(2)借阅管理关键代码Stringuser_id=req.getParameter("user_id"); Stringbook_id=req.getParameter("book_id"); Stringjieyueshuliang=req.getParameter("jieyueshuliang"); StringjieyueShijian=req.getParameter("jieyueShijian"); Stringshifouguihuan="否"; Stringguihuanshij

温馨提示

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

评论

0/150

提交评论