1、本科生毕业设计(论文)题目: 图书信息管理系统 姓 名 李 * * 学 号 3109* 专 业 电* 指导教师 王* 2013 年 05 月河南理工大学毕业设计(论文)说明书 摘要系统以 xp 为环境,采用 SSH 技术,即 Strtus2,Spring,Hibernate 随着信息化社会的快速发展,图书馆在管理中总是面对大量的书籍和读者信息。采用适宜的结构化系统与设计方法,开发一套有效的图书管理系统,实现读者与图书的高效管理,使图书馆的信息管理工作系统化、规范化、自动化。该系统可以有效的管理学校图书资源,记录学生的使用书籍情况。此外,根据读者的要求和现实的需要,实现书籍基本信息的输入,查询,
2、修改等几个方面的功能。随着现代科学技术的进步,人类社会正逐走向信息化。Along 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 ro
3、le in the information society, more and more 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,
4、 especially after 1990s, the library information 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 informatio
5、n system process. 文章介绍了图书馆管理信息系统的系统分析部分,包括可行性分析、图书借阅流程分析等; 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 des
6、ign and database design and code design; 河南理工大学毕业设计(论文)说明书 系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。 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 infor
8、mation is always faced with a lot of books and readers. Using appropriate structured 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, standa
9、rdization and automation.System introduces the development process of the library 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 develop
10、ment tools, first build system application prototype in a short time, and then to 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 bo
11、oks. In addition, according to the requirements of readers and the realistic need, 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 m
12、anagement system, the system can be used as a independent system, which includes 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 informat
13、ion in a timely manner. For each different data table module to add, delete, modify, 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 proces
14、s, and detailed data on the system analysis and design.Keywords:Books Management 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 构建数字化
15、图书馆 .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 技术概况 .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 版本介绍 .
16、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.1 J2EE 概述 .142.7.2 J2EE 优势 .152.8 流程图 162.8.1 流程图概念 162.8.2 构图成分 16河南理工大学毕业设计(论文)说明书 2.9 E-R 图 .162.9.1 E-R 图概念
17、 .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.3 数据库性能比较 263.7.4 数据库概念设计 .263.7.5 数据逻辑结构设计 293.8 系统的开发环境
18、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 图书信息管理模块 404.5.1 检测书籍编号是否已存在 404.5.2 图书信息添加 4
19、14.5.3 图书修改信息 414.5.4 图书信息显示 414.6 借阅管理模块 42河南理工大学毕业设计(论文)说明书 4.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
20、 学生模块代码 593 操作员模块代码 624 借阅模块 645 预约模块 .66河南理工大学毕业设计(论文)说明书 01 绪论1.1 选题背景与意义1.1.1 问题背景图书管理是每一个图书馆及书店都必须切实面对的工作,但一直以来人们习惯使用传统的人工方式来管理图书资料。这种方式存在着许多缺点,如效率低、保密性差且较为繁琐。另外,随着图书资料数量的增加,其工作量也将大大增加,这必将增加图书资料管理者的工作量和劳动强度,同时给图书资料信息的查找、更新和维护带来了很多困难。在调研农村中学时发现这些农村中学图书室都藏书达六、七万余册,但其现行图书管理工作都是采用传统的手工管理,经过对其图书管理工作中
21、的图书信息、读者管理及借阅管理工作做全面调查研究,其现行手工流程具体分析如下:图书登记:对上级分配、学校购入和社会捐赠的图书进行图书信息登记;读者登记:图书管理员根据学校档案室提供的教师花名册和学生花名册进行读者登记,然后填发借书证,学生毕业和教师调出时将其借书证注销。借阅管理:读者特别是学生读者持借书证到图书室借阅图书,图书管理员将借阅日期填写在书籍卡片上,将卡片夹在借书证中间,存放在图书室,学生看完后,送还所借书籍,收回借书证或另借其它书籍。这种传统人工的管理方式存在着许多缺点,如:效率低、保密性差, 一方面导致教师、学生对学校图书室藏书情况不了解,图书室究竟有哪些图书也不知道;另一方面图
22、书管理员对图书管理工作倍感头痛,因为时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难,耗费劳动力大,难于避免错误的产生,如借书证挂失后,仍有少数学生冒用已挂失的借书证借出图书,造成图书外流。1.1.2 计算机已经成为学校工作的得力助手今天,计算机的价格已经十分低廉,性能却有了长足的进步。在农村初级中学都装备有一定数量的电脑,农村中学教师都掌握了一定的计算机知识,它已经被学校应用于学校工作的许多领域。计算机之所以在农村中学发挥如此重要的作用的原因主要有以下几个方面:河南理工大学毕业设计(论文)说明书 1(1)计算机可以代替人工进行许多繁杂的劳动;(2)计算机可以为农村初
23、级中学节省许多资源;(3)计算机可以大大的提高教职工的工作效率;(4)计算机可以使敏感文档更加安全,等等。1.1.3 用计算机管理图书的意义图书管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率。因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书管理系统,将是非常必要的,也是十分及时的。利用计算机来管理图书,其好处归纳起来,大约有以下几点:(1)可以存储学校图书室的图书信息、读者信息和借阅信息,安全、高效;(2)只需一名图书管理员即可操作系统,节省大量人力;(3)可以迅速
24、查到所需信息,图书管理系统可以为学校教师和学生提供充足的信息和快捷的查询手段,让教师和学生能够及时查询图书信息,更好地为读者服务。因此计划在现行手工流程基础上开发图书管理系统,以适应现行图书管理工作的要求,提高工作效率。1.2 国内外研究现状1.2.1 系统功能国内图书馆自动化管理系统均根据图书馆的工作流程,设置了采访、编目、流通、期刊、参考咨询、联机检索、公共查询等子系统,功能涵盖了图书馆的各个业务环节。各子系统之间共享书目数据库,整个系统统一、和谐、数据冗余最小。子系统之间数据资源高度共享和一致,数据资源具有较高的集成性,系统功能也具有较高的集成性。还对 Internet 应用充分支持,提
25、供基于 HTTP 的 WWW 检索,及对 Z39.50 协议的支持。随着计算机与网络等技术的发展,各图书馆业务的深入开展和新业务的增加,图书馆新情况的产生(如多馆舍情况等),要求图书馆集成系统应充分地考虑与适应这些新的变化。在这方面,各个系统都有自己的特色,大多表现在对网络化服务功能的开拓与加强方面。这主要通过几个方面来体现:提供网际应用,支持资源的共建、共享,实现联机编目、馆际互借、馆际文献查询等。还包括能实现个人图书馆、信息服务台、用户服务、河南理工大学毕业设计(论文)说明书 2文献预约、各类请求等。如河南理工大学的资源整合平台功能模块,该模块实现了联合采购、联合编目、馆际互借功能,打开资
26、源共享之门。馆际互借系统:采用本地借书、异地或本地归还的流通新模式,特别适用于多校合并的情况,改变传统的明合实分现象,实现真正意义上的馆际互借;远程联合编目:编目系统全面接受外部的标准 CNMARC 和 USMARC 数据以及其它以 ISO2709 格式存放的目录数据,远程自动实时查重,可上传和下载数据,实现在线(远程)多馆联合编目和本馆联机编目。特别适用于多校合并后总馆与各分馆之间的联合编目和数据汇总;联合采购:采访系统可以直接处理网上订单,实时自动查重,实时发布本馆采访信息,帮助实现图书馆间的联合采购。这一技术率先解决了学校合并后出现的总馆与各分馆之间协调采购的技术难题。多馆多层次管理模式
27、,院校合并是近几年来社会潮流,合并后的各馆图书馆自动化系统资源的整合已迫在眉睫;校级图书馆自动化系统的建立和稳定运行带动了院级分馆和系统资料室的文献管理自动化的步伐,建立以校图书馆为中心、分馆/资料室独立管理、信息资源高度共享的系统势在必行。数据共享,管理独立,高度兼容 0 是 GDLISXP 在设计多馆多层次管理模式的方针。GDLISXP 充分考虑了多馆自动系统资源整合过程中出现的问题,如:自成体系的索书号,合并后出现的登录号和条形码重复,不用修改物理标识(如条形码)就实现了系统资源的合并和使用。1.2.2 系统结构一个较好的集成系统应该具有先进而稳定的体系结构,因为体系结构是系统的根基。目
28、前大多数系统选用先进的体系结构和最佳的数据库平台。采用国际流行Browser/Server 两层或三层的体系结构。现有的大型图书馆自动化集成管理系统,全部采用 B/S 结构,即浏览器/服务器模式,它是随着 Internet 技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过 WWW 浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层 3-tier 结构。 B/S 结构(Browser/Server,浏览器/服务器模式),是WEB 兴起后的一种网络结构模式,WEB 浏览器是客户端最主要的应用
29、软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如 Netscape Navigator 或Internet Explorer,服务器安装 Oracle、Sybase 、Informix 或 SQL Server 等数据库。浏览器通过 Web Server 同数据库进行数据交互。这样就大大简化了客户端电脑载河南理工大学毕业设计(论文)说明书 3荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。1.2.3 开发平台在图书馆自动化集成系统中,底层数据库是整个系统的基础,数据库质量也
30、是评价一个系统的最为重要的指标之一。适合一个图书馆,尤其是大中型图书馆管理的数据库管理系统必须是一个分布式的关系型数据库系统,同时还应具有开放的特点,能支持标准化结构查询语言(SQL)并提供支持第四代语言(4GL)的高效开发工具。河南理工图书馆集成管理系统(V7.0),软件开发采用面向对象的第四代编程语言,保证系统运行的稳定快速,并能全面处理图象、音频、视频和超文本,在著录中解决了书刊目次页、文摘页、全文、插图、照片和书刊重要附件与目录信息的有机结合。多种国内系统,大多采用大型关系型数据库,其中包括SQLserver、Oracle、Informix、Sybase 等,也有少数的系统采用自己开发
31、的文件流方式进行数据存储。底层采用大型关系型数据库具有一些明显优点,也是发展趋势。原因在于数据库自身的安全性、稳定性及可用性、方便的二次开发特性(如针对某项数据,进行数据库统计)等。还有利用数据库自身功能,或对数据直接作为检索点,而不用通过开发商追加索引等优点。河南理工图书馆集成管理系统(V7.0)的 Web 检索查询采用 Internet 上最热门的服务器端 HTML-嵌入式脚本描述语言-PHP,全面支持各种大型数据库,并可同时运行于Windows、U2nix、Linux 等多种平台,执行动态网页更为快速。1.2.4 标准网络化是图书馆自动化集成系统的发展方向,系统采用共享资源的各种先进新兴
32、技术和标准,是系统应该共同遵循的。国内的系统,都对世界的许多标准支持,但其支持程度有所不同。现在国际上与图书馆自动化集成系统有关的行业标准和协议大致有 39 个,国内一般只支持其中的 4 个,即 Z39.50,TCP/IP,IS02709,IS010160/10161。系统对这些标准的支持,促进了图书馆业务的发展,促进了信息服务。真正实现联合编目、馆际互借、远程查询预约、数据资源共享。如采用 ISO10160/10161 协议进行网上馆际互借的传送与接收;采用 ANSI/NISIZ39.50 协议实现网上获取等。河南理工大学毕业设计(论文)说明书 41.2.5 管理功能一个图书馆集成系统的特点
33、,不仅表现其业务功能处理方面,在图书馆的管理功能方面。国内系统虽充分注意由自动化向数字化发展的需要,不断提升自动化管理系统的水平,但居于国内图书馆的普遍水平仍处于自动化或半自动化阶段,因此更多注重于处理传统型图书馆业务,其管理思想与现代化图书馆相比也有相当的局限。对现代化、网络化与数字化图书馆方面考虑的还不够。系统都有较为方便参数设置功能,这为系统带来了很大的灵活性,对图书馆具体业务的处理很有帮助。大多数系统可以提供多种报表,包括长期逾期文献、部分收到定单、未付款定单、帐目总计、预约文献、指定日期内的定单等报表。在系统的个性化特点方面,随着各种电子资源的增加和网上资源的发展,资源整合、用户个性
34、化界面成为图书馆自动化集成系统的又一发展趋势。为不同级别的用户提供不同的使用界面,一次检索就可以查看所有的资源已经成为现实。1.2.6 构建数字化图书馆河南理工图书馆集成管理系统(V7.0)实现了信息资源的数字化。编目中增加了对图像、音频和视频的处理,使目次页、文摘页、全文、插图、照片以及书刊重要附件和目录信息有机结合起来。在检索中,可以查阅到与书目相匹配的有关书刊目次页、全文、文摘、图片、音频以及视频等数字化信息。大多数系统实现了实时和开放式的信息服务。检索查询系统放弃了传统图书馆软件将局域网检索与互联网检索分立的模式,设计统一的 Web 查询系统,将信息服务与公共查询统一起来。功能更丰富,
35、操作更简便。以SQLServer2000 为数据库支持软件,数据和信息实时传送并完全共享。主要功能包括:读者借阅查询、书刊目录查询、书刊全文检索、新书通报、定题服务、预约借书、读者新书推荐、读者信箱、阅读导引、网络导航等。办公方式的电子化:预约借书、读者建议、专家荐书、定题服务等通过互联网在线提交,采访系统、流通系统和办公系统自动接收和反馈信息;预约通知、借还催询单、超期罚款单等通过 WEB 自动发布或以电子邮件方式通知,降低了图书馆的办公成本,提高了服务的效率。1.3 论文主要工作 本次毕业设计,定好毕设题目后,首先要进行的是开发工具和数据库的选择,选择的开发工具和数据库必须要满足项目的需求
36、,并且在真正系统开发中应用广泛。数据库存储设计的任务是根据系统功能要求,特别是数据存储要求,决定数据的组织形河南理工大学毕业设计(论文)说明书 5式和存储方法,以便获得最好的文件结构和文件组织形式。(1)规划阶段 确定开发的总目标,给出计划开发的软件系统的功能、性能、可靠性及应用范围等方面的设想。(2)需求分析阶段 认真细致了解用户数据的要求,确定系统的功能与边界。本阶段的主要成果,提供一个可作为设计基础的系统说明书,包括对软硬件环境的要求和一张整个系统的流程图。(3)设计阶段把需求分析阶段所确定的功能细化,主要工作是概念设计阶段,逻辑设计阶段,功能设计阶段,然后对每个功能模块进行细致的分析。
37、本次设计将系统分两个小系统,分别是学生部分和管理员部分,其中学生部分提供了 5 个功能模块,分别是读者信息模块,馆藏图书模块,系统维护模块,电子资源模块和入馆指南模块。管理员部分提供了 5 个功能模块,分别是帐号维护模块,学生管理模块,图书管理模块,借阅管理模块和预约管理模块。这 10 个模块里又有许多子模块,通过这些模块之间的相互连接与配合,完成操作员发出的各种指令。(4)程序编写阶段用 JAVA 语言表达上一阶段设计的各模块控制流程,应用到哪些技术,本模块应用那些代码。本次设计后台代码采用了 Java 中 B/S 架构技术和三大框架即Struts2,Spring,Hibernate 技术,
38、前台页面则采用了 JSP,JavaScript,HTML 技术。后台数据库则应用的是 Oracle 数据库。(5)调试阶段将已编好的程序进行单元测试,整体测试和系统测试。(6)运行和维护模块这是整个设计周期最长的阶段,其工作重点是收集和记录系统运行中的数据,处理运行中所遇到的问题,解决开发中的遗留问题,进行系统完善。1.4 论文组织结构本文以图书管理系统为研究对象,对图书管理系统进行了详细的研究,为系统运行与开发提供了很好的平台。本文主要进行了一下几个方面的工作:(1)简单介绍课题的必要性,图书馆管理系统的国内外研究的现状,论文的主要工作。河南理工大学毕业设计(论文)说明书 6(2)技术设计,
39、对方案中用到的技术进行简单介绍,并对不同技术的性能进行比较,为什么采用该技术。(3)总体设计,首先针对整体方案进行选择及设计,然后阐述基本原理、系统构成框图,最后针对各个子模块采用技术进行具体方案论证及设计。(4)软件设计,各个模块的具体代码和其功能。(5)整体的介绍和详解,不同情况下,对各个模块的测试,如登陆模块密码错误,用户不存在等问题。(6)简要介绍图书管理系统的设计过程、过程中出现的问题及其解决方法。河南理工大学毕业设计(论文)说明书 72 技术设计2.1 JSP 技术2.1.1 JSPJSP(Java Server Pages)是由 Sun Microsystems 公司倡导、许多公
40、司参与一起建立的一种动态网页技术标准,类似于其他技术标准,如 ASP,PHP 等,主要用于开发动态网页内容。JSP 是新一代的动态内容编程技术,继承了 Java 技术的“一次编写,随处运行”的特性,允许 Web 开发人员开发和维护与平台无关,信息丰富动态的 Web 页面,包括HTML,DHTML,XHTML 和 XML,使 Web 开发人员轻易搭建网络平台,建立起功能强大的 Web 网站。JSP 可以把用户界面从内容层次中分离出来,使得 Web 开发人员不必修改在底层的动态内容,就可以修改整体的页面布局。2.1.2 JSP 的运行机制JSP 文档被复制到 Web 服务器的文档目录中。当有人请求
41、这个文档时,服务器识别出这个带有.jsp 扩展名的文档,并意识到需要做特殊处理。第一次请求这个文档时,它被编译成一个 servlet 对象,并存储在内存中,然后输出内容回送给发出请求的用户机。第一请求之后,只要有请求到来,服务器将进行检查,看看这个文件是否做过改动,如果没有变化,服务器调用先前编译过的 servlet 对象。JSP 请求的步骤:(1)用户机请求一个 JSP 页面。(2)JSP 引擎编译该 JSP 成一个 servlet。(3)生成的 servlet 被编译并装载。(4)编译的 servlet 服务请求并把一响应发送回用户机。JSP 主要是针对 Java 程序处理不熟悉的人设计的
42、。与 Servlet 相比,JSP 有如下两个优势:方便与 HTML 混合;在开发、测试方面比 Servlet 方便。河南理工大学毕业设计(论文)说明书 82.1.3 JSP 的优点与缺点JSP 的优点:(1)可移植性。JSP 是用 Java 开发的,因此它是可移植的,可以一处编写,随处运行,支持多平台。(2)有效性。 JSP 的初始化代码仅在 Web 服务器第一次加载时执行一次。一旦加载,在处理一个新的请求时,只须调用一个新的服务方法。与处理每个请求都要全部加载一个完整的可执行程序相比,这是一个相当有效的技术。(3)强大的可伸缩性和可扩充性。它能够在面向对象的语言(Java)中进行开发,并可
43、以在现有对象基础上进行扩展,形成新的对象,从而更好地满足用户的需求。(4)多样化和功能强大的开发工具支持。Java 已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。(5)Java Servlet 是一种开发 Web 应用的理想框架。JSP 以 Servlet 技术为基础,又在许多方面作了改进。利用跨平台的 JavaBeans 组件,JSP 为分离处理逻辑与显示样式提供了卓越的解决方案。JSP 的缺点:(1)为了跨平台的功能,为了极度的伸缩能力,极大的增加了产品的复杂性,Java系统中包括 JRE,JDK,J2EE,EJB 等多种产品,这就需要
44、大量的学习和培训才能掌握它们,将它们有效地搭配在一起,灵活地加以运用。(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的体系结构与 St
45、ruts 1的体系结构差别巨大。Struts 2以 WebWork 为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与 ServletAPI 完全脱离开,所以 Struts 2可以理解为WebWork 的更新产品。虽然从 Struts 1到 Struts 2有着太大的变化,但是相对于河南理工大学毕业设计(论文)说明书 9WebWork,Struts 2的变化很小。2.2.2 Struts2 和 Struts1 的对比在 Action 的实现方面:Struts1要求必须统一扩展自 Action 类,而 Struts2中可以是一个普通的 POJO。(1)线程模型方面:S
46、truts1的 Action 是单实例的,一个Action 的实例处理所有的请求。Struts2的 Action 是一个请求对应一个实例(每次请求时都新 new 出一个对象),没有线程安全方面的问题。(2)Servlet 依赖方面:Struts1的 Action 依赖于 Servlet API,比如 Action 的execute 方法的参数就包括 request 和 response 对象。这使程序难于测试。Struts2中的 Action 不 再依赖于 Servlet API,有利于测试,并且实现 TDD。(3)封装请求参数:Struts1中强制使用 ActionForm 对象封装请求的参
47、数。Struts2可以选择使用 POJO 类来封装请求的参数,或者直接使用 Action 的属性。(4)表达式语言方面:Struts1中整合了 EL,但是 EL 对集合和索引的支持不强,Struts2整合了 OGNL(Object Graph NavigationLanguage) 。(5)绑定值到视图技术:Struts1使用标准的 JSP,Struts2使用“ValueStack”技术。(6)类型转换:Struts1中的 ActionForm 基本使用 String 类型的属性。Struts2中使用 OGNL 进行转换,可以更方便的使用。(7)数据校验:Struts1中支持覆盖 valida
48、te 方法或者使用 Validator 框架。Struts2支持重写 validate 方法或者使用 XWork 的验证框架。(8)Action 执行控制的对比:Struts1支持每一个模块对应一个请求处理,但是模块中的所有 Action 必须共享相同的生命周期。Struts2支持通过拦截器堆栈为每一个Action 创建不同的生命周期。2.3 Spring 技术2.3.1 Spring 技术概况Spring 是一个开源框架,由 Rod Johnson 创建。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而,Spr
49、ing 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。河南理工大学毕业设计(论文)说明书 102.3.2 Spring 技术特点(1)方便解耦,简化开发:通过 Spring 提供的 IoC 容器,我们可以将对象之间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度程序耦合。有了 Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。(2)AOP 编程的支持:通过 Spring 提供的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松应付。(3)声明式事务的支持:在 Spring 中,我们可以从单调烦闷