《图书信息管理系统论文40235.doc》由会员分享,可在线阅读,更多相关《图书信息管理系统论文40235.doc(75页珍藏版)》请在三一办公上搜索。
1、本科生毕业设计(论文) 题目: 图书信息管理系统 姓 名 * * 学 号 专 业指导教师 2013年05月摘要系统以xp为环境,采用SSH技术,即Strtus2,Spring,Hibernate随着信息化社会的快速发展,图书馆在管理中总是面对大量的书籍和读者信息。采用适宜的结构化系统与设计方法,开发一套有效的图书管理系统,实现读者与图书的高效管理,使图书馆的信息管理工作系统化、规范化、自动化。该系统可以有效的管理学校图书资源,记录学生的使用书籍情况。此外,根据读者的要求和现实的需要,实现书籍基本信息的输入,查询,修改等几个方面的功能。随着现代科学技术的进步,人类社会正逐走向信息化。Along
2、with the progress of modern science and technology, human society is driven to informationization. 图书馆拥有丰富的文献信息资源,是社会信息系统的重要组成部分,在信息社会中的作用愈来愈重要。 Libraries have abundant literature information resources, social information system is an important part of the role in the information society, more and m
3、ore important. 我国图书馆计算机等信息技术的应用起步于20世纪70年代末期,随着改革开放的步伐得以迅速发展,特别是90年代以后,我国图书馆信息网络建设取得了较大发展,图书馆信息化建设迈上了一个新台阶。 Chinese library computers started in the application of information technology in the late 1970s, along with the reform and opening-up develop rapidly, especially after 1990s, the library info
4、rmation network construction in China has made great development, library informatization construction to step on to a new step. 本文介绍了在Visual C#.NET环境下开发图书管理信息系统的过程。 This paper introduces in Visual c #.net environment development books management information system process. 文章介绍了图书馆管理信息系统的系统分析部分,包括可
5、行性分析、图书借阅流程分析等; This paper introduces the library management information system of analysis parts, including the feasibility analysis, library process analysis, etc.; 系统设计部分主要介绍了系统功能设计和数据库设计及代码设计; System design part mainly introduced the system function design and database design and code design; 系统
6、实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。 System realize part of several major modules illustrates the algorithm, this system friendly interface, the operation is simple, is more practical.本次课程设计利用JAVA开发工具和Oracle数据库来开发整个图书管理系统,该系统可以作为独立的系统使用,它包括借阅信息管理、书籍信息管理、读者信息管理、系统管理四个主要功能模块。力求给读者方便快捷的途径去及时了解书籍信息。针对各个模
7、块不同的数据表实现添加、删除、修改、查询等功能,所有操作简单快捷,基本实现图书馆里的各项功能。论文将全面介绍所设计的图书馆管理系统的系统功能和业务流程,并对系统进行详细的数据分析和设计。关键词:图书管理系统;三大框架;Oracle;Java AbstractWith the rapid development of information society, the library in the management of information is always faced with a lot of books and readers. Using appropriate structur
8、ed system developing and design method, a set of effective books management system management system, realize the efficient management of the reader and books, the library information management work systematic, standardization and automation. System introduces the development process of the library
9、 system, problems and solutions encountered in the design and improve the current application or the system development progress and improve the working performance, using its provide the various object-oriented development tools, first build system application prototype in a short time, and then to
10、 the initial system needs iteration, constantly revised and improved until customer satisfaction of feasible system formed. The system can effective management of the school library resources, record the students use books. In addition, according to the requirements of readers and the realistic need
11、, realizes the books basic information input, query, modify etc several aspects of the function.The curricul Tum design using the JAVA development tools and Oracle database to develop the whole books management system management system, the system can be used as a independent system, which includes
12、library information management, books management, reader information management, information system management of the four major function modules. Strive to give readers a convenient way to understand the books information in a timely manner. For each different data table module to add, delete, modi
13、fy, query, and other functions, all the operation simple and quick, the basic realization of the functions in the library. Papers will be fully introduce system functions of library management system and business process, and detailed data on the system analysis and design.Keywords:Books Management
14、System ;the three frameworks;Oracle; Java目录1 绪论11.1 选题背景与意义11.1.1 问题背景11.1.2 计算机已经成为学校工作的得力助手11.1.3 用计算机管理图书的意义21.2 国内外研究现状21.2.1系统功能21.2.2系统结构31.2.3开发平台41.2.4标准41.2.5管理功能41.2.6构建数字化图书馆51.3 论文主要工作51.4 论文组织结构62 技术设计82.1 JSP技术82.1.1 JSP技术概述82.1.2 JSP的运行机制82.1.3 JSP的优点与缺点92.2 Struts2技术介绍92.2.1 Struts2技
15、术概况92.2.2 Struts2和Struts1的对比102.3 Spring技术102.3.1 Spring技术概况102.3.2 Spring 技术特点112.4 Hibernate技术112.4.1 Hibernate技术概况112.4.2 Hibernate版本介绍122.5 JavaScript技术122.5.1 JavaScript技术介绍122.5.2 JavaScript技术特点122.6 JavaBeans技术132.6.1 JavaBeans技术介绍132.6.2 JavaBeans技术特点132.6.3 JSP与JavaBeans的关系142.7 J2EE技术142.7
16、.1 J2EE概述142.7.2 J2EE优势152.8 流程图162.8.1 流程图概念162.8.2 构图成分162.9 E-R图162.9.1 E-R图概念162.9.2 构图成分172.10 子模块的实现技术173 总体设计183.1 需求分析183.2 功能分析193.3 业务流程分析193.4 系统功能模块203.5子模块体系结构213.5.1 学生模块213.5.2 管理员模块223.5.3 图书模块223.5.4 操作员管理模块223.5.5 学生管理模块233.6 系统的流程图243.7 数据库设计与分析243.7.1 数据库分析243.7.2 Oracle数据库253.7.
17、3 数据库性能比较263.7.4数据库概念设计263.7.5 数据逻辑结构设计293.8 系统的开发环境324 代码结构与详细设计334.1 读者信息模块334.1.1 学生登陆334.1.2 密码修改344.2 馆藏图书模块344.2.1 图书借阅344.2.2 图书搜索354.2.3 图书预约354.3 帐号维护364.3.1 登陆窗体界面设计与实现364.3.2 操作员添加模块374.3.3 操作员修改模块374.3.4 操作员列表显示模块374.4 读者信息管理模块384.4.1 读者信息添加394.4.2 读者信息修改与删除394.4.3 读者信息显示394.5 图书信息管理模块40
18、4.5.1 检测书籍编号是否已存在404.5.2 图书信息添加414.5.3 图书修改信息414.5.4 图书信息显示414.6 借阅管理模块424.7 预约管理模块425 系统调试435.1 软件安装435.1.1 JDK的安装435.1.2 MyEclipse安装445.1.3 Tomcat安装455.1.4 数据库安装465.2 读者信息模块475.3 馆藏图书模块485.4 帐号维护模块485.5 读者信息管理模块495.6 图书信息管理模块505.7 借阅管理模块515.8 预约管理模块526 总结53致 谢54参考文献55附录561图书模块程序562 学生模块代码593 操作员模块
19、代码624 借阅模块645预约模块661 绪论1.1 选题背景与意义1.1.1 问题背景图书管理是每一个图书馆及书店都必须切实面对的工作,但一直以来人们习惯使用传统的人工方式来管理图书资料。这种方式存在着许多缺点,如效率低、保密性差且较为繁琐。另外,随着图书资料数量的增加,其工作量也将大大增加,这必将增加图书资料管理者的工作量和劳动强度,同时给图书资料信息的查找、更新和维护带来了很多困难。在调研农村中学时发现这些农村中学图书室都藏书达六、七万余册,但其现行图书管理工作都是采用传统的手工管理,经过对其图书管理工作中的图书信息、读者管理及借阅管理工作做全面调查研究,其现行手工流程具体分析如下:图书
20、登记:对上级分配、学校购入和社会捐赠的图书进行图书信息登记;读者登记:图书管理员根据学校档案室提供的教师花名册和学生花名册进行读者登记,然后填发借书证,学生毕业和教师调出时将其借书证注销。借阅管理:读者特别是学生读者持借书证到图书室借阅图书,图书管理员将借阅日期填写在书籍卡片上,将卡片夹在借书证中间,存放在图书室,学生看完后,送还所借书籍,收回借书证或另借其它书籍。这种传统人工的管理方式存在着许多缺点,如:效率低、保密性差, 一方面导致教师、学生对学校图书室藏书情况不了解,图书室究竟有哪些图书也不知道;另一方面图书管理员对图书管理工作倍感头痛,因为时间一长,将产生大量的文件和数据,这对于查找、
21、更新和维护都带来了不少的困难,耗费劳动力大,难于避免错误的产生,如借书证挂失后,仍有少数学生冒用已挂失的借书证借出图书,造成图书外流。1.1.2 计算机已经成为学校工作的得力助手今天,计算机的价格已经十分低廉,性能却有了长足的进步。在农村初级中学都装备有一定数量的电脑,农村中学教师都掌握了一定的计算机知识,它已经被学校应用于学校工作的许多领域。计算机之所以在农村中学发挥如此重要的作用的原因主要有以下几个方面:(1)计算机可以代替人工进行许多繁杂的劳动;(2)计算机可以为农村初级中学节省许多资源;(3)计算机可以大大的提高教职工的工作效率;(4)计算机可以使敏感文档更加安全,等等。1.1.3 用
22、计算机管理图书的意义图书管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率。因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书管理系统,将是非常必要的,也是十分及时的。利用计算机来管理图书,其好处归纳起来,大约有以下几点:(1)可以存储学校图书室的图书信息、读者信息和借阅信息,安全、高效;(2)只需一名图书管理员即可操作系统,节省大量人力;(3)可以迅速查到所需信息,图书管理系统可以为学校教师和学生提供充足的信息和快捷的查询手段,让教师和学生能够及时查询图书信息,更好地为
23、读者服务。因此计划在现行手工流程基础上开发图书管理系统,以适应现行图书管理工作的要求,提高工作效率。1.2 国内外研究现状1.2.1系统功能国内图书馆自动化管理系统均根据图书馆的工作流程,设置了采访、编目、流通、期刊、参考咨询、联机检索、公共查询等子系统,功能涵盖了图书馆的各个业务环节。各子系统之间共享书目数据库,整个系统统一、和谐、数据冗余最小。子系统之间数据资源高度共享和一致,数据资源具有较高的集成性,系统功能也具有较高的集成性。还对Internet应用充分支持,提供基于HTTP的WWW检索,及对Z39.50协议的支持。随着计算机与网络等技术的发展,各图书馆业务的深入开展和新业务的增加,图
24、书馆新情况的产生(如多馆舍情况等),要求图书馆集成系统应充分地考虑与适应这些新的变化。在这方面,各个系统都有自己的特色,大多表现在对网络化服务功能的开拓与加强方面。这主要通过几个方面来体现:提供网际应用,支持资源的共建、共享,实现联机编目、馆际互借、馆际文献查询等。还包括能实现个人图书馆、信息服务台、用户服务、文献预约、各类请求等。如河南理工大学的资源整合平台功能模块,该模块实现了联合采购、联合编目、馆际互借功能,打开资源共享之门。馆际互借系统:采用本地借书、异地或本地归还的流通新模式,特别适用于多校合并的情况,改变传统的明合实分现象,实现真正意义上的馆际互借;远程联合编目:编目系统全面接受外
25、部的标准CNMARC和USMARC数据以及其它以ISO2709格式存放的目录数据,远程自动实时查重,可上传和下载数据,实现在线(远程)多馆联合编目和本馆联机编目。特别适用于多校合并后总馆与各分馆之间的联合编目和数据汇总;联合采购:采访系统可以直接处理网上订单,实时自动查重,实时发布本馆采访信息,帮助实现图书馆间的联合采购。这一技术率先解决了学校合并后出现的总馆与各分馆之间协调采购的技术难题。多馆多层次管理模式,院校合并是近几年来社会潮流,合并后的各馆图书馆自动化系统资源的整合已迫在眉睫;校级图书馆自动化系统的建立和稳定运行带动了院级分馆和系统资料室的文献管理自动化的步伐,建立以校图书馆为中心、
26、分馆/资料室独立管理、信息资源高度共享的系统势在必行。数据共享,管理独立,高度兼容0是GDLISXP在设计多馆多层次管理模式的方针。GDLISXP充分考虑了多馆自动系统资源整合过程中出现的问题,如:自成体系的索书号,合并后出现的登录号和条形码重复,不用修改物理标识(如条形码)就实现了系统资源的合并和使用。1.2.2系统结构一个较好的集成系统应该具有先进而稳定的体系结构,因为体系结构是系统的根基。目前大多数系统选用先进的体系结构和最佳的数据库平台。采用国际流行Browser/Server两层或三层的体系结构。现有的大型图书馆自动化集成管理系统,全部采用B/S结构,即浏览器/服务器模式,它是随着I
27、nternet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装
28、Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server同数据库进行数据交互。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。1.2.3开发平台在图书馆自动化集成系统中,底层数据库是整个系统的基础,数据库质量也是评价一个系统的最为重要的指标之一。适合一个图书馆,尤其是大中型图书馆管理的数据库管理系统必须是一个分布式的关系型数据库系统,同时还应具有开放的特点,能支持标准化结构查询语言(SQL)并提供支持第四代语言(4GL)的高效开发工具。河南理工图书馆集成管理系统(V7.0),软件开发采用面向
29、对象的第四代编程语言,保证系统运行的稳定快速,并能全面处理图象、音频、视频和超文本,在著录中解决了书刊目次页、文摘页、全文、插图、照片和书刊重要附件与目录信息的有机结合。多种国内系统,大多采用大型关系型数据库,其中包括SQLserver、Oracle、Informix、Sybase等,也有少数的系统采用自己开发的文件流方式进行数据存储。底层采用大型关系型数据库具有一些明显优点,也是发展趋势。原因在于数据库自身的安全性、稳定性及可用性、方便的二次开发特性(如针对某项数据,进行数据库统计)等。还有利用数据库自身功能,或对数据直接作为检索点,而不用通过开发商追加索引等优点。河南理工图书馆集成管理系统
30、(V7.0)的Web检索查询采用Internet上最热门的服务器端HTML-嵌入式脚本描述语言-PHP,全面支持各种大型数据库,并可同时运行于Windows、U2nix、Linux等多种平台,执行动态网页更为快速。1.2.4标准网络化是图书馆自动化集成系统的发展方向,系统采用共享资源的各种先进新兴技术和标准,是系统应该共同遵循的。国内的系统,都对世界的许多标准支持,但其支持程度有所不同。现在国际上与图书馆自动化集成系统有关的行业标准和协议大致有39个,国内一般只支持其中的4个,即Z39.50,TCP/IP,IS02709,IS010160/10161。系统对这些标准的支持,促进了图书馆业务的发
31、展,促进了信息服务。真正实现联合编目、馆际互借、远程查询预约、数据资源共享。如采用ISO10160/10161协议进行网上馆际互借的传送与接收;采用ANSI/NISIZ39.50协议实现网上获取等。1.2.5管理功能一个图书馆集成系统的特点,不仅表现其业务功能处理方面,在图书馆的管理功能方面。国内系统虽充分注意由自动化向数字化发展的需要,不断提升自动化管理系统的水平,但居于国内图书馆的普遍水平仍处于自动化或半自动化阶段,因此更多注重于处理传统型图书馆业务,其管理思想与现代化图书馆相比也有相当的局限。对现代化、网络化与数字化图书馆方面考虑的还不够。系统都有较为方便参数设置功能,这为系统带来了很大
32、的灵活性,对图书馆具体业务的处理很有帮助。大多数系统可以提供多种报表,包括长期逾期文献、部分收到定单、未付款定单、帐目总计、预约文献、指定日期内的定单等报表。在系统的个性化特点方面,随着各种电子资源的增加和网上资源的发展,资源整合、用户个性化界面成为图书馆自动化集成系统的又一发展趋势。为不同级别的用户提供不同的使用界面,一次检索就可以查看所有的资源已经成为现实。1.2.6构建数字化图书馆河南理工图书馆集成管理系统(V7.0)实现了信息资源的数字化。编目中增加了对图像、音频和视频的处理,使目次页、文摘页、全文、插图、照片以及书刊重要附件和目录信息有机结合起来。在检索中,可以查阅到与书目相匹配的有
33、关书刊目次页、全文、文摘、图片、音频以及视频等数字化信息。大多数系统实现了实时和开放式的信息服务。检索查询系统放弃了传统图书馆软件将局域网检索与互联网检索分立的模式,设计统一的Web查询系统,将信息服务与公共查询统一起来。功能更丰富,操作更简便。以SQLServer2000为数据库支持软件,数据和信息实时传送并完全共享。主要功能包括:读者借阅查询、书刊目录查询、书刊全文检索、新书通报、定题服务、预约借书、读者新书推荐、读者信箱、阅读导引、网络导航等。办公方式的电子化:预约借书、读者建议、专家荐书、定题服务等通过互联网在线提交,采访系统、流通系统和办公系统自动接收和反馈信息;预约通知、借还催询单
34、、超期罚款单等通过WEB自动发布或以电子邮件方式通知,降低了图书馆的办公成本,提高了服务的效率。1.3 论文主要工作 本次毕业设计,定好毕设题目后,首先要进行的是开发工具和数据库的选择,选择的开发工具和数据库必须要满足项目的需求,并且在真正系统开发中应用广泛。数据库存储设计的任务是根据系统功能要求,特别是数据存储要求,决定数据的组织形式和存储方法,以便获得最好的文件结构和文件组织形式。(1) 规划阶段 确定开发的总目标,给出计划开发的软件系统的功能、性能、可靠性及应用范围等方面的设想。(2) 需求分析阶段 认真细致了解用户数据的要求,确定系统的功能与边界。本阶段的主要成果,提供一个可作为设计基
35、础的系统说明书,包括对软硬件环境的要求和一张整个系统的流程图。(3) 设计阶段把需求分析阶段所确定的功能细化,主要工作是概念设计阶段,逻辑设计阶段,功能设计阶段,然后对每个功能模块进行细致的分析。本次设计将系统分两个小系统,分别是学生部分和管理员部分,其中学生部分提供了5个功能模块,分别是读者信息模块,馆藏图书模块,系统维护模块,电子资源模块和入馆指南模块。管理员部分提供了5个功能模块,分别是帐号维护模块,学生管理模块,图书管理模块,借阅管理模块和预约管理模块。这10个模块里又有许多子模块,通过这些模块之间的相互连接与配合,完成操作员发出的各种指令。(4) 程序编写阶段用JAVA语言表达上一阶
36、段设计的各模块控制流程,应用到哪些技术,本模块应用那些代码。本次设计后台代码采用了Java中B/S架构技术和三大框架即Struts2,Spring,Hibernate技术,前台页面则采用了JSP,JavaScript,HTML技术。后台数据库则应用的是Oracle数据库。(5) 调试阶段将已编好的程序进行单元测试,整体测试和系统测试。(6) 运行和维护模块这是整个设计周期最长的阶段,其工作重点是收集和记录系统运行中的数据,处理运行中所遇到的问题,解决开发中的遗留问题,进行系统完善。1.4 论文组织结构本文以图书管理系统为研究对象,对图书管理系统进行了详细的研究,为系统运行与开发提供了很好的平台
37、。本文主要进行了一下几个方面的工作:(1)简单介绍课题的必要性,图书馆管理系统的国内外研究的现状,论文的主要工作。(2)技术设计,对方案中用到的技术进行简单介绍,并对不同技术的性能进行比较,为什么采用该技术。(3)总体设计,首先针对整体方案进行选择及设计,然后阐述基本原理、系统构成框图,最后针对各个子模块采用技术进行具体方案论证及设计。(4)软件设计,各个模块的具体代码和其功能。(5)整体的介绍和详解,不同情况下,对各个模块的测试,如登陆模块密码错误,用户不存在等问题。(6)简要介绍图书管理系统的设计过程、过程中出现的问题及其解决方法。 2 技术设计2.1 JSP技术2.1.1 JSPJSP(
38、Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,类似于其他技术标准,如ASP,PHP等,主要用于开发动态网页内容。 JSP是新一代的动态内容编程技术,继承了Java技术的“一次编写,随处运行”的特性,允许Web开发人员开发和维护与平台无关,信息丰富动态的Web页面,包括HTML,DHTML,XHTML和XML,使Web开发人员轻易搭建网络平台,建立起功能强大的Web网站。JSP可以把用户界面从内容层次中分离出来,使得Web开发人员不必修改在底层的动态内容,就可以修改整体的页面布局。2.1.2 JSP的运行机制 JSP
39、文档被复制到Web服务器的文档目录中。当有人请求这个文档时,服务器识别出这个带有.jsp扩展名的文档,并意识到需要做特殊处理。第一次请求这个文档时,它被编译成一个servlet对象,并存储在内存中,然后输出内容回送给发出请求的用户机。第一请求之后,只要有请求到来,服务器将进行检查,看看这个文件是否做过改动,如果没有变化,服务器调用先前编译过的servlet对象。 JSP请求的步骤: (1)用户机请求一个JSP页面。 (2)JSP引擎编译该JSP成一个servlet。 (3)生成的servlet被编译并装载。 (4)编译的servlet服务请求并把一响应发送回用户机。JSP主要是针对Java程序
40、处理不熟悉的人设计的。与Servlet相比,JSP有如下两个优势:方便与HTML混合;在开发、测试方面比Servlet方便。2.1.3 JSP的优点与缺点JSP的优点:(1)可移植性。JSP是用Java开发的,因此它是可移植的,可以一处编写,随处运行,支持多平台。 (2)有效性。JSP的初始化代码仅在Web服务器第一次加载时执行一次。一旦加载,在处理一个新的请求时,只须调用一个新的服务方法。与处理每个请求都要全部加载一个完整的可执行程序相比,这是一个相当有效的技术。 (3)强大的可伸缩性和可扩充性。它能够在面向对象的语言(Java)中进行开发,并可以在现有对象基础上进行扩展,形成新的对象,从而
41、更好地满足用户的需求。 (4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 (5)Java Servlet是一种开发Web应用的理想框架。JSP以Servlet技术为基础,又在许多方面作了改进。利用跨平台的JavaBeans组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。 JSP的缺点: (1)为了跨平台的功能,为了极度的伸缩能力,极大的增加了产品的复杂性,Java系统中包括JRE,JDK,J2EE,EJB等多种产品,这就需要大量的学习和培训才能掌握它们,将它们有效地搭配在一起,灵活地加以
42、运用。 (2)Java的运行速度快是由于用户将class常驻内存,这样使用的内存空间就比较大。另一方面,它还需要硬盘空间来存储一系列.Java文件和.class文件以及对应的版本文件。 (3)JSP只有对Java相当熟悉的人才能用得很好。(4)JSP程序调试困难。2.2 Struts2技术介绍2.2.1 Struts2技术概况Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户
43、的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。2.2.2 Struts2和Struts1的对比在Action的实现方面:Struts1要求必须统一扩展自Action类,而Struts2中可以是一个普通的POJO。(1)线程模型方面:Struts1的Action是单实例的,一个Action的实例处理所有的请求。Struts2的Action是一个请求对应一个实例(每次请求时都新new出一个对象),没有线程
44、安全方面的问题。(2)Servlet依赖方面:Struts1的Action依赖于Servlet API,比如Action的execute方法的参数就包括request和response对象。这使程序难于测试。Struts2中的Action不 再依赖于Servlet API,有利于测试,并且实现TDD。(3)封装请求参数:Struts1中强制使用ActionForm对象封装请求的参数。Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。(4)表达式语言方面:Struts1中整合了EL,但是EL对集合和索引的支持不强,Struts2整合了OGNL(Object G
45、raph NavigationLanguage)。(5)绑定值到视图技术:Struts1使用标准的JSP,Struts2使用“ValueStack”技术。(6)类型转换:Struts1中的ActionForm基本使用String类型的属性。Struts2中使用OGNL进行转换,可以更方便的使用。(7)数据校验:Struts1中支持覆盖validate方法或者使用Validator框架。Struts2支持重写validate方法或者使用XWork的验证框架。(8)Action执行控制的对比:Struts1支持每一个模块对应一个请求处理,但是模块中的所有Action必须共享相同的生命周期。Stru
46、ts2支持通过拦截器堆栈为每一个Action创建不同的生命周期。2.3 Spring技术2.3.1 Spring技术概况Spring是一个开源框架,由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。2.3.2 Spring 技术特点(1)方便解耦,简化开发:通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦
47、合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。(2)AOP编程的支持:通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。(3)声明式事务的支持:在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。(4)方便程序的测试:可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。(5)方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直