毕业设计(论文)-Struts+Hibernate在web图书管理系统中的应用.doc_第1页
毕业设计(论文)-Struts+Hibernate在web图书管理系统中的应用.doc_第2页
毕业设计(论文)-Struts+Hibernate在web图书管理系统中的应用.doc_第3页
毕业设计(论文)-Struts+Hibernate在web图书管理系统中的应用.doc_第4页
毕业设计(论文)-Struts+Hibernate在web图书管理系统中的应用.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

Struts和Hibernate在web图书管理系统中的应用摘 要本文对基于hibernate和struts的图书馆管理系统的设计与开发过程进行了分析与叙述。主要是根据开发的步骤来进行说明和分析。先从课题的背景和研究目的出发对图书馆的现状进行了阐述,强调了信息管理系统在现在图书馆的重要作用也说明了进行图书馆管理系统开发的重要性。根据项目开发的基本步骤从系统设计到详细设计以及各个功能模块的实现,最后是对项目的测试,使得该项目做到稳定和强壮。在系统设计中是对项目的总体说明,系统的结构设计,系统的各功能数据流和系统的业务流程分析都在系统设计中有详细的说明和介绍。在详细设计中,主要介绍了数据库的设计和各功能模块实现,从视图到代码都做了简单的介绍。最后是对项目的测试,主要是通过黑盒测试来完成的,保证程序的各个功能的实现。关键词:管理系统;hibernate;struts;测试全套设计加扣 3012250582Application of struts and hibernate in library management systemAbstractIn this paper, book management system design and development process is analyzed and described. In accordance with the actual steps of system development, the article from the system overview, system analysis, system design and system realization of these four sections of the system development process are described. System were the main issues outlined in the background, meaning and status of the subject analysis; system analysis, system design includes a pre-needs analysis, business process analysis, data flow analysis and data dictionary analysis; and system design is the system architecture, various functional modules, database structure design to achieve specific process to analyze the system display, the system design section to explain in more detail and with a table diagram shows. The article also lists the key function module code.This paper seeks to book management system for development and design to find a practical solution in the analysis of -Bo at home and abroad on the basis of the status of the system, and after repeated exploration and study after study, using JSP and soft SQL programming language Server database and ultimately the book management system development, and in a series of tests, reached a user-friendly, functional requirements, operations designed to clear.Key Words:JSP;SQL; Book目 录摘 要iAbstractii1 绪论11.1 课题背景11.2 课题目的11.3 开发工具11.4 总体设计22 需求分析32.1 功能需求32.2 性能需求32.3 图书管理员需求42.4 接口需求53 系统设计63.1 系统体系结构设计63.2 系统各功能数据流分析63.3 系统业务流程分析103.4 数据库设计113.5 系统开发工具与开发模式的选择153.6 开发技术174 系统实现194.1 登陆模块的实现194.2 图书类别管理模块214.3 图书管理模块224.4 读者管理模块244.5 图书借阅管理模块265 系统测试及维护285.1 测试目的285.2 测试方法285.3 测试结果28结 论30参考文献31致 谢32外文33外文翻译441 绪论1.1 课题背景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大提高了其安全性。尤其对复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理和信息管理系统的开发密切相关,系统的开发是系统管理的前提本系统就是为了管理好图书馆信息而设计的。图书馆的信息化从最初的对图书馆业务管理实行信息化发展到对图书馆各个业务流程进行系统和网络化管理,并建立大规模以个体文献目录为主的资源共享系统。进入21世纪,充分利用计算机网络和信息技术,逐步实现不同载体的实体文献的信息化管理符合多方位的联机查询。图书馆的计算机信息化管理。图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,是传统的图书管理员的工作日益繁重起来,迫使人们起用新的管理方式来管理图书。所以不能再用人工的方法来管理大量的图书,需要一个严密的系统软件来进行图书馆的管理。该图书馆管理系统需要对日常的工作进行管理如借书还书、缴纳罚金;拥有查询功能如图书书名、作者、出版社查询,借阅历史和罚款历史查询;好要系统严密的管理图书和借书者的基本资料等。就是在这样的背景下,我们需要开发出应用于图书馆的的信息管理系统。1.2 课题目的图书管理系统是智能办公系统(IOA)的重要组成部分,因此,图书管理系统也以方便、快捷的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工作人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息、掌握信息。因此开发一个图书管理系统对现在的图书馆是迫在眉睫。毕业设计是高校教学最后也是最重要的一个环节,它是对学生整体能力的一次全面评测。通过毕业设计可以增强学生实践能力,强化学生的动手能力,也是学生走向社会前最后一次强化课题。图书管理系统主要涉及到软件开发技术,数据库技术,网站的知识等,涵盖面广,可有效地提高学生综合运用所学知识分析解决问题的能力,培养其掌握科学研究方法,正确的设计思想,探索创新,为毕业后从事计算机应用与软件开发打下良好基础。同时图书馆管理系统涵盖了包括前台和后台的一系列开发框架和开发技术,很好的锻炼了学生在校期间所学到的所有只是,和实际社会中的问题也息息相关很好的培养了学生的社会实践能力1.3 开发工具开发图书管理系统时使用了eclipse,SQL Server2005等工具,在技术上采用了hibernate和struts以及jsp等技术,致力于采用最简单先进的工具和技术来完成有关图书馆管理系统的开发。1.4 总体设计本系统为了设计、实现和后期维护的方便,以及系统用户使用的便利,所以必须采取一定的设计原则。其主要设计原则有:简单性:在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。针对性:本系统设计是针对图书馆管理的需求定向开发设计,所以具有专业突出和很强的针对性。实用性:要求本系统能够满足图书馆管理的需求,因此具有良好的实用性。一致性:页面整体设计风格以及命名规则的一致性:整体页面布局和用图用色风格及变量、类名和其他元素的命名规则保持一致。功能一致性:完成同样的功能应该尽量使用同样的元素。 元素风格一致性:界面元素的美观风格、摆放位置在同一个界面和不同界面之间都应该是一致的。变量命名规则的一致性:变量应该用统一的规则进行命名,做到任意变量均能从上下文推断其义。先进性:本系统采用JSP技术、SQL等被广泛采用系统开发技术和数据库,因此本设计具有良好的先进性,具体表现在其具有良好的可扩展性,可开发性。2 需求分析2.1 功能需求图2.1 系统需求分析图1.登陆功能图书馆管理员在登录系统式对管理员的身份进行验证,如果验证通过则进入系统,对图书进行管理;如果验证失败,则告知管理员更改密码。2.图书类别管理功能管理员登陆系统后,图书类别管理界面,录入图书类别的基本信息。对类别名称、备注信息等如数信息进行操作的功能。3.图书管理功能管理员对图书进行管理,录入图书的名称、出版社、出版日期、ISBN、库存数量、单价等信息,方便对图书的分类和查找。4.读者管理功能读者管理事管理员对借阅图书的读者进行管理,包括读者的信息和读者借阅书籍的信息,是方便管理员对读者的的管理。5.图书借阅管理功能该功能是管理员对读者借阅图书和归还图书时间的记录,在对图书和读者管理中都有很大的作用。6.图书归还管理当读者看完了书或需要归还时,管理员通过系统提供的接口完成图书归还操作。2.2 性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求:1.系统处理的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求。2.系统的开放性和系统的可扩充性:图书管理系统在开发过程中,应该充分考虑以后的可扩充性。例如用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。3.系统的易用性和易维护性:图书管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。4.系统的稳定性: 系统可用性并且在一个月内不能出现2次以上故障。2.3 图书管理员需求通过详细分析可知,由于系统开发的总体任务是实现各种信息的系统化、规范化和自动化。所以图书馆图书管理员对系统需要完成的功能有:借书系统,还书系统,读者查询系统,图书查询系统等。对读者信息的添加:当有新的读者需要加入到图书馆管理系统中时,系统管理员就要对读者的各种信息进行集体录入。此外由于所做图书馆管理系统的读者主要针对的是普通民众,故我们录入的主要是民众各种信息,包括读者编号、读者姓名、身份证号。其中读者的身份证号是唯一性的。权限的级别在下面的数据表中我们可以看到。对图书信息的录入:由于图书馆在每年都要购买许多的新书,所以对这些新买的新书进行编号添加到图书馆管理系统中将是一个非常巨大的工程,因此在图书的录入过程中包含了图书的一些基本的信息,有:图书编号、图书名称、图书作者等信息,再一个过程就是对图书在分类要分在哪个书库将是一个很重要的问题,如果这个问题没有解决的话,那么图书的分类将是很混乱,这给读者在以后图书的查询过程中也很混乱,所以在分类时需要的是一些对图书综合知识理解能力较强的一些分类员。图书信息的查询、修改及删除:在这个过程中,为了及时的了解图书在馆的最新的情况,系统管理员先可以通过查询找到某一类编号的图书,然后查看它们的在馆信息,另外在查找到该图书后可以修改及保存图书修改后的信息,再一个重要的功能就为当某些图书在借阅过程中破损或遗失什么的,暂时就要对该图书进行删除或者是修改该图书,只有这样及时的修改图书信息,读者在借阅过程中就可以很方便的找到所需要的图书,省去了许多不必要的麻烦,实现了快捷的目标。图书借阅管理:在这个功能模块中,主要是书库管理员对图书馆中的图书进行借出的操作,在这一步的实现过程中,当读者找到了自己所要的图书后交给图书管理员,书库管理员在系统中填写图书信息,然后显示借书成功提示信息。因此图书管理员填写的借书单包括的信息有:读者编号、管理编号,另外在该表中还存在借书日期一些信息都是由系统自己去统计和完成。管理员密码的修改:书库管理员在这个功能模块上可以修改自己的密码,而且这些操作是属于与自己本人编号相对应的改动,对系统上并没有多大的影响。2.4 接口需求硬件接口:软件较小除硬盘外,基本没有与外界硬件的联系,不过考虑到数据库大量数据的备份等要求可以保持与磁带机和光盘刻录机的接口,这点较易实现。软件接口:在这里主要考虑软件与操作系统的接口,考虑到文档处理的需要有可能可以包括与较常用的办公软件的接口。例如microsoft的office系列。3 系统设计3.1 系统体系结构设计本系统的系统结构是按照了自上向下的设计理念完成的。第一层是用户登录界面。第二层是系统主页,主要包括图书类别管理,图书信息管理、读者管理、借阅信息管理、修改密码等,用户登录成功后可以转至各个管理功能。第四层即各个管理功能的所有功能。图3.1 系统体系结构图3.2 系统各功能数据流分析1. 图书类别管理模块数据流名:图书类别信息简述:用户登录成功后可以添加、编辑和删除图书类别信息组成:图书类别参数=类别名称+备注数据量:约100次/日图3.2 图书类别管理模块数据流程图2.图书管理模块数据流名:图书信息简述:系统管理员登录成功后可以浏览、删除、增加图书收费信息组成:图书信息=图书名称+作者+出版社+出版日期+图书ISBN+单价+库存数量+页码+类别编号数据量:约5000次/日图3.3 图书管理模块图3.图书借阅模块数据流名:借阅信息简述:系统管理员登录成功后可以添加、编辑和删除图书借阅信息组成:借阅信息=读者编号+图书编号+借阅天数+借阅时间+归还时间+备注数据量:约100次/日图3.4 图书借阅模块图 4.读者管理模块数据流名:读者信息简述:系统管理员登录成功后可以添加、编辑和删除读者信息组成:读者信息=姓名+性别+年龄+住址+联系方式+借书证号数据量:约100次/日图3.5 读者管理模块图5.修改密码模块图3.6 修改密码模块图3.3 系统业务流程分析系统管理员进入用户登录界面后,在登录功能区输入系统管理员的用户账号与密码,登录成功后跳转到系统主窗体。系统可以查看图书信息,并对其进行查找或删除等操作;查看读者信息,对不符合系统规定的进行删除操作;添加图书借阅信息,并对其进行编辑或删除等操作。结束各项操作后退出,回到系统主窗体。图3.7 系统管理员业务流程图3.4 数据库设计1.数据库概念设计E-R模型概念模型是对信息世界建模,其表示方法有很多,其中最为常用的是实体联系模型,即ER模型,它是用ER图来描述现实世界的概念模型。下列ER图清楚简便的描述出了本系统实体与其属性之间的关系。 图3.8 数据库概念模型E-R图、2.数据库逻辑设计关系模型图书类别信息(ID,类别名称,备注信息)图书信息(ID,名称,出版社,出版日期,ISBN,页码,库存,类别ID)读者信息(ID,姓名,性别,年龄,住址,联系方式,借书证号)借阅信息(ID,图书ID,读者ID,借阅数量,借阅时间,归还时间)管理员信息(用户名,密码)3.数据库表结构设计本系统后台数据库中总共设计了5张数据表,分别为黑名称图书类别信息表(t_catelog)、图书信息表(t_book)、读者信息表(t_user)、借阅表(t_jieyue)和管理员信息表(t_admin)。具体结构设计如下:(1)图书类别信息表(t_catelog)图书类别信息表主要用于存放图书类别的信息,主要字段包括:ID,类别名称,备注信息等。表3.1 图书类别信息表(t_catelog)字段名数据类型字段描述长度主键IDintID4Mingchengvarchar类别名称50Beizhuvarchar备注信息500(2)图书信息表(t_book)图书信息表主要用于存储图书信息,主要字段有ID、图书名称、出版社、出版日期、ISBN号、页码、库存数量、类别ID等。表3.2 图书信息表(t_book)字段名数据类型字段描述长度主键IDInt编号4NameVarchar图书名称50ChubansheVarchar出版社50ChubanriqiVarchar出版日期4IsbnVarchar图书ISBN50PriceVarchar单价50Kucunint库存数量50Catalog_idVarchar类别ID50(3)读者信息表(t_user)读者信息表主要用于存储读者信息,主要字段有姓名、性别、年龄、住址、联系方式、借书证号等。表3.3 读者信息表(t_user)字段名数据类型字段描述长度主键IDInt编号4NameVarchar姓名50SexVarchar性别50AgeInt年龄4AddressVarchar住址50TelVarchar联系方式50JiehaoVarchar借书证号50(4)借阅信息表(t_jieyue)读者信息表主要用于存读者借阅图书的信息,主要字段有ID、图书ID、读者ID、借阅时间、归还时间、借阅数量等。表3.4 借阅信息表(t_jieyue)字段名数据类型字段描述长度主键IDInt编号4Book_idInt图书编号4User_idInt读者编号4JieyueshijianVarchar借阅时间50JieyueshuliangVarchar借阅数量50GuihuanshijianVarchar归还时间50BeizhuVarchar备注50(5)管理员信息表(admin)管理员信息表主要用于系统管理员的信息,主要字段包括:编号、登陆账号、登陆密码。表3.5 管理员信息表(admin)字段名数据类型字段描述长度主键IDInt编号10Namevarchar登陆账号50Pwdvarchar登陆密码504.数据库表间关系设计关系型数据库的关系主要体现在表和表之间的对应关系,及表间的关系。在数据库中一共有5张表,分别是管理员信息表,借阅信息表,图书信息表,图书类别信息表和读者信息表。各个表之间有存在一对多或多对多的关系。图3.9 数据库表间关系图3.5 系统开发工具与开发模式的选择1.系统开发工具本系统主要使用JSP、SERVLET技术对系统进行设计和开发。JSP,即Java Server Page,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语法支持,可以和Java Bean无缝整合。 ASP采用了解析执行的机制,而JSP则是先编译后执行。因此,在第一次访问时JSP比ASP要慢,但是JSP的执行则比每次都解析执行的ASP快若干个数量级。微软随后推出了ASP.NET,号称提供了丰富的面向对象类库,引入中间语言的概念来支持多种语言,完整地集成了XML及Web Service的支持,利用代码托管机制避免危害服务器,并期盼以此代替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技术。2.系统设计模式B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然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系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. 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-B B-C B-G等信息、流向的变化, 更像交易中心。3.6 开发技术 1.Struts Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。Struts就是在JSP Model2的基础实现了MVC设计模式的WEB Framework。采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。基于Struts构架的WEB应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。Struts的目的是为了减少在运用MVC设计模型来开发Web应用的时间,完成其中一些繁重的工作。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。struts可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。2.Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 4 系统实现4.1 登陆模块的实现1.登陆界面要想使用本系统,必须先登陆到系统中,在登陆页面,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。图4.1 登陆模块界面2.登陆模块关键代码public String login(String userName,String userPw,int userType)tryThread.sleep(700); catch (InterruptedException e)/ TODO Auto-generated catch blocke.printStackTrace();String result=no;if(userType=0)/系统管理员登陆String sql=select * from t_admin where userName=? and userPw=?;Object params=userName,userPw;DB mydb=new DB();mydb.doPstm(sql, params);try ResultSet rs=mydb.getRs();boolean mark=(rs=null|!rs.next()?false:true);if(mark=false) result=no;else result=yes; TAdmin admin=new TAdmin(); admin.setUserId(rs.getInt(userId); admin.setUserName(rs.getString(userName); admin.setUserPw(rs.getString(userPw); WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); session.setAttribute(userType, 0); session.setAttribute(admin, admin);rs.close(); catch (SQLException e)System.out.println(登录失败!);e.printStackTrace();finallymydb.closed();4.2 图书类别管理模块1.图书类别管理模块界面管理员登陆系统后,点击左面的菜单“图书类别管理”,页面调转到图书类别管理界面,录入图书类别的基本信息。如类别名称、备注信息等,点击保存按钮,调用后台的java类catelogServlet把图书类别信息保存到数据库。图4.2 图书类别管理模块界面2.图书类别管理模块关键代码/图书类别添加public void catelogAdd(HttpServletRequest req,HttpServletResponse res)String name=req.getParameter(name);String jieshao=req.getParameter(jieshao);String del=no;String sql=insert into t_catelog values(?,?,?);Object params=name,jieshao,del;DB mydb=new DB();mydb.doPstm(sql, params);mydb.closed();req.setAttribute(message, 操作成功);req.setAttribute(path, catelog?type=catelogMana); String targetURL = /common/success.jsp;dispatch(targetURL, req, res);/图书类别删除public void catelogDel(HttpServletRequest req,HttpServletResponse res)String sql=update t_catelog set del=yes where id=+Integer.parseInt(req.getParameter(id);Object params=;DB mydb=new DB();mydb.doPstm(sql, params);mydb.closed();req.setAttribute(message, 操作成功);req.setAttribute(path, catelog?type=catelogMana); String targetURL = /common/success.jsp;dispatch(targetURL, req, res);4.3 图书管理模块1.图书管理界面管理员登陆系统后,点击左面的菜单“图书管理”,页面调转到图书管理界面,录入图书的基本信息。包括名称、出版社、出版日期、ISBN、库存数量、单价等,点击保存按钮,调用后台的java类BookServet把图书信息保存到数据库。图4.3 图书管理模块界面2.图书管理模块关键代码String name=req.getParameter(name);String zuozhe=req.getParameter(zuozhe);String chubanshe=req.getParameter(chubanshe);String chubanriqi=req.getParameter(chubanriqi);String isbm=req.getParameter(isbm);String price=req.getParameter(price);String yeshu=req.getParameter(yeshu);String kucun=req.getParameter(kucun);String catelog_id=req.getParameter(catelog_id);String sql=insert into t_book values(?,?,?,?,?,?,?,?,?,?);Object params=name,zuozhe,chubanshe,chubanriqi, isbm,price,yeshu,kucun, catelog_id,no;DB mydb=new DB();mydb.doPstm(sql, params);mydb.closed();List bookList=new ArrayList();String sql=select * from t_book where del=no;Object params=;DB mydb=new DB();trymydb.doPstm(sql, params);ResultSet rs=mydb.getRs();while(rs.next()TBook book=new TBook();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(Exception e)e.printStackTrace();mydb.closed();req.setAttribute(bookList, bookList);req.getRequestDispatcher(admin/book/bookMana.jsp).forward(req, res);4.4 读者管理模块1.读者管理界面 在该界面中首先输入读者基本信息。单击“提交”按钮,即可完成读者录入操作。如果需要删除不需要的读者信息,单击“删除”后会从数据库的表中将相应的读者信息删除。并返回前台,不再出现该读者的信息。图4.4 读者管理模块界面2.读者管理模块关键代码public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException String type=req.getParameter(type);if(type.endsWith(userMana)userMana(req, res);if(type.endsWith(userAdd)userAdd(req, res);if(type.endsWith(user

温馨提示

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

评论

0/150

提交评论