1、本科毕业论文(20 届)基于 JSP 图书管理系统的设计与实现前台管理所在学院专业班级 计算机科学与技术学生姓名指导教师完成日期摘要在网络越来越发达的今天,人们已经不再满足于信息的浏览和发布,而是希望能够充分享受网络所带来的便利。因此,图书管理系统以方便、快捷的优点正慢慢地进入人们生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工作人员以往繁忙的工作,减小出错概率,使读者可以花更多的时间再选择书和看书上。Java 是一种程序设计语言,它具有简单的、完全面向对象以及与平台无关的结构,也具有可移植性、高性能和安全性等特点,而 Java 语言最大的成功之处在于它的平台无关性和具有强大的网络编
2、程功能。因此我将用 JAVA 编写一个图书管理系统。本系统是采用 JSP+servlet 在网络上构架一个动态的图书管理系统,它是以 tomcat 作为服务器并且以 MySQL 作为数据库来开发,采用 JSP 技术开发的图书管理系统。主要实现 3 个方面功能:1.图书管理系统首页 2.登录区域 3.用户系统查询功能 4.用户借阅、归还功能关键词:图书管理,系统设计,dreamweaver,数据库ABSTRACTIncreasingly developed in the network today,people had no longer meet the purpose of informat
3、ion browsing and publishing,but hope to enjoy more and more convenient brought by Internet.Therefore,Book Management System the advantages of convenient,fast is slowly into peoples life,the traditional books management way thorough liberation,improve efficiency,reduce staff ever busy job,reduce the
4、error probability,so that readers can spend more time to choose books and read on.Java is a programming language, it has a simple, fully object-oriented and platform independent structure, also with portability, high performance and safety, while Java language greatest success lies in its platform i
5、ndependence and has strong network programming function. So I will use JAVA to write a Book Management System.This system is try to use the JSP+servlet on the network architecture of a dynamic books management system,it is a tomcat as the server,using MySQL as database to development ,using the JSP
6、technology development books management system. Main realize three aspects of function:1. The books management system home page 2. Log in and registered area 3. The users system query functionsKey words: Management of books,systematic design,dreamweaver,database 目录1.绪论 .11.1 课题研究的目的和意义 .11.2 国内外概况 .
7、12.实现技术 .22.1 JAVA技术 .22.2 MYSQL.32.3 B/S 结构 .42.3.1 作用 .52.3.2 架构软件 .52.4 ECLIPSE 开发环境 .62.5 DREAMWEAVER.62.6 WEB 服务器 .73.需求分析 .83.1 系统需求概述 .83.2 系统的功能分析 .83.3 经济可行性分析 .83.4 性能需求分析 .94.系统设计与实现 .94.1 模块分析 .94.2 数据流程图 .104.2.1 系统数据流图 .104.3 数据字典 .114.4 主要代码 .124.5 系统 实现 .155.总 结 .17参 考 文 献 .18致 谢 .18
8、11.绪论随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而图书作为信息存储及传播的主要媒体之一,其需求量越来越大。由于手工管理方式的落后,处理数据的能力有限,工作效率低,不能及时为读者提供所需信息,各种数据得不到充分利用,这对于图书馆的图书管理要求越来越高。在计算机日益普及的今天,对图书管理而言,可以采用图书管理系统来管理图书,从而实现图书信息管理的自动化。本文所介绍的图书管理系统前台管理,系统前台开发页面用 Dreamweaver 设计,当网页页面元素需要调用数据库的数据时,通过 JSP 服务器提取数据库数据返回前台显示。其主要特性是能动态、实时的完成信息的传递,且具有高
9、效的交互性,更有效的处理客户请求,易于维护和更新,其运行所需环境及其工作流程和各个功能控件的工作原理将在本文依次介绍,并且文中提供了部分程序源代码。1.1 课题研究的目的和意义随着社会的发展、信息化的普及和发展,现在网络不仅在各企事业单位中的应用越来越广泛而且也已经逐渐融入了每个人的生活当中,逐渐的成为人们生活中不可或缺的一部分。在这种情况下,书籍就渐渐地成为人们获取并增长知识的主要途径,如何科学的管理图书馆不但关系到读者阅读的方便程度,也关系到图书馆的发展。为了更好的充实人们的生活,我特做此系统更满足人们在日常生活的需要和需求。图书管理系统主要功能实现图书管理的自动化,只需一名图书管理员即可
10、操作系统,节省人力;可以迅速查到所需信息,也可为学校老师和学生提供充足的信息和快捷的查询手段。开发图书管理系统,以适应现行图书管理工作的要求,提高工作效率。1.2 国内外概况随着计算机技术的发展越来越快,全球信息化和高新技术的发展也为图书馆提供了更好的发展机遇。随着科学技术的不断提高,计算机科学日渐成熟,作为计算及应用的一部分,使用计算机对图书信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、易修改、存储量大、数据处理快、成本低、寿命长、便于打印等。这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,与世界接轨的重要条件。高校图书馆的工作理念与工作方式也在
11、逐步转变:首先,从“重藏轻用”逐步转向“藏用并举” ,从“小而全” “大而全”的封闭性管理逐步转向信息化、网络化的开放式管理。其次,图书馆馆藏资源由现实馆藏想向现实馆藏与虚拟2馆藏并存转移。再次,图书馆的工作对象已由单一媒体转变为多种媒体。最后,图书馆信息需求的深度正在变化,人们不再满足于初级信息提供方式,需要更深层次的信息服务。这种服务以用户为中心,根据用户问题和问题环境确定用户需求,通过信息分析和重组形成符合用户需求的知识,或者帮助用户找到解决的方案。在一些先进的西方国家,数字图书馆的定位,建立,应用相对比较成熟。而其应用价值,则更多体现在教育领域。数字图书馆教育涉及图书、情报学、计算机、
12、网络、法律、经济、行为学、伦理学等学科和领域。理论和实践性紧密结合,不仅在理论上涉及面广,而且在实践操作方面对学生提出了较高的要求。而且,数字图书馆教育是动态的,它需要根据不同的受教育者施行不同层次的教育内容,随着数字图书馆理论和实践研究的不断深入而要对课程内容进行更新。 数字图书馆是伴随着互联网发展而产生的一个正在成长的新生事物。目前,世界中许多发达国家都在抓紧数字图书馆的建设,数字图书馆已成为国际高科技竞争中新的制高点,成为评价一个国家信息基础设施水平的重要标志。对我国来说,数字图书馆的建设可以建立以中文信息为主的各种信息资源,互联网上中文信息缺乏的状况就可以得到解决,形成中华文化在互联网
13、上的整体优势。数字图书馆还是保存和延续发展民族文献遗产的最佳手段,所有的珍贵资料都可以经数字化处理后,将原件保存在更适宜的环境中,而数字化的资料由于实现原件的复制,并不影响一般意义上的查阅。因此,加快中国数字图书馆建设势在必行。2.实现技术2.1 Java 技术Java,是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由Sun 公司的詹姆斯高斯林(James Gosling)等人于 1990 年代初开发。它最初被命名为 Oak,目标设置在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun 放弃了
14、该项计划。就在 Oak 几近失败之时,随着互联网的发展,Sun 看到了 Oak 在计算机网络上的广阔应用前景,于是改造了 Oak,在 1995 年 5 月以“Java”的名称正式发布了。Java 伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java 编程语言的风格十分接近 C+语言。继承了 C+ 语言面向对象技术的内核,Java 舍弃了 C+语言中容易引起错误的指针(以引用取代) 、运算符重载(operator overloading) 、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。在 Java SE 1.5 版本中Java 又引入
15、了泛型编程(Generic Programming) 、类型安全的枚举、不定长参3数和自动装拆箱等语言特性。Java 不同于一般的编译运行计算机语言和解释执行计算机语言。它首先将源代码编译成字节码(bytecode) ,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE1.4.2 发布后,Java的运行速度有了大幅提升。与传统程序不同 Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。 “J
16、ava语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。Java 语言有以下特点简单(Simple):指的是去除了 C/C+中较少使用或可能不安全的功能,例如指标,运算子重载,多重继承等。 物件导向的(Object-oriented):利用 OOP 的三种基本特性:PIE(多型,继承,封装),来设计出可重複使用的元件,使系统有弹性易于维护。 网路的(
17、Network-Savvy):提供容易使用的 API 来撰写网路程式 。直译式的(Interpreted):bytecode 在 JVM 上执行时,JIT 负责转换为机器码。 稳健的(Robust):捨弃了对记忆体的指标运作。 安全性(Secure) : 资源回收处理 (Garbage Collection)由 JVM 自行作记忆体管理,例外处理 (Exception) 可预防突发错误的产生。 结构中立(Architecture Neutral):程式执行在虚拟机器上。 可携的(Portable): Write once, run anywhere 指的是由 JVM 与不同的作业系统沟通。 高
18、效率的(High Performance):利用 HotSpot, JIT 技术改善效能。 多执行绪的(Multithreaded):Java 程序可发出多隻并行的轻量化行程。 动态的(Dynamic):Java 程式执行时动态的连结类别库。2.2 MySQLMySQL 是 一 个 小 型 关 系 型 数 据 库 管 理 系 统 , 开 发 者 为 瑞 典 MySQL AB 公司 。 在 2008 年 1 月 16 号 被 Sun 公 司 收 购 。 而 2009 年 ,SUN 又 被 Oracle 收购 .对 于 Mysql 的 前 途 ,没 有 任 何 人 抱 乐 观 的 态 度 .目 前
19、 MySQL 被 广 泛 地 应 用在 Internet 上 的 中 小 型 网 站 中 。 由 于 其 体 积 小 、 速 度 快 、 总 体 拥 有 成 本 低 ,尤 其 是 开 放 源 码 这 一 特 点 , 许 多 中 小 型 网 站 为 了 降 低 网 站 总 体 拥 有 成 本 而 选4择 了 MySQL 作 为 网 站 数 据 库 。 MySQL 的 官 方 网 站 的 网 址 是 : MySQL 最初的开发者的意图是用 mSQL 和他们自己的快速低级例程(ISAM)去连接表格。不管怎样,在经过一些测试后,开发者得出结论:mSQL 并没有他们需要的那么快和灵活。这导致了一个使用
20、几乎和 mSQL 一样的 API 接口的用于他们的数据库的新的 SQL 接口的产生,这样,这个 API 被设计成允许为用于 mSQL 而写的第三方代码更容易移植到 MySQL。MySQL 特性1.使 用 C 和 C+编 写 , 并 使 用 了 多 种 编 译 器 进 行 测 试 , 保 证 源 代 码 的 可移 植 性 。 2.支 持 AIX、 FreeBSD、 HP-UX、 Linux、 Mac OS、 Novell Netware、 OpenBSD、 OS/2 Wrap、 Solaris、 Windows 等 多 种 操 作 系 统 。 3.为 多 种 编 程 语 言 提 供 了 API。
21、 这 些 编 程 语 言 包 括C、 C+、 Python、 Java、 Perl、 PHP、 Eiffel、 Ruby 和 Tcl 等 。 4.支 持 多 线 程 , 充 分 利 用 CPU 资 源 。 5.优 化 的 SQL 查 询 算 法 , 有 效 地 提 高 查 询 速 度 。 6.既 能 够 作 为 一 个 单 独 的 应 用 程 序 应 用 在 客 户 端 服 务 器 网 络 环 境 中 , 也能 够 作 为 一 个 库 而 嵌 入 到 其 他 的 软 件 中 提 供 多 语 言 支 持 , 常 见 的 编 码 如 中 文的 GB 2312、 BIG5, 日 文 的 Shift_
22、JIS 等 都 可 以 用 作 数 据 表 名 和 数 据 列 名 。7.提 供 TCP/IP、 ODBC 和 JDBC 等 多 种 数 据 库 连 接 途 径 。 8.提供用于管理、检查、优化数据库操作的管理工具。 9.可以处理拥有上千万条记录的大型数据库。2.3 B/S 结构B/S 结构(Browser/Server,浏览器/服务器模式),是 WEB 兴起后的一种网络结构模式,WEB 浏览器是客户端最主要的应用软件 。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如 Netscape Navigat
23、or 或Internet Explorer,服务器安装 Oracle、Sybase 、Informix 或 SQL Server等数据库。浏览器通过 Web Server 同数据库进行数据交互。图 2.15图 2.1 B/S 结构图 2.3.1 作用B/S 最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。B/S 结构的使用越来越多,特别是由需求推动了 AJAX 技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。2.3.2 架构软件(1)维护
24、和升级方式简单。目前,软件系统改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但 B/S 架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦” ,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户
25、人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机, “胖”服务器。(2)成本降低,选择更多。大家都知道 windows 在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上 windows 并不是处于绝对的统治地位。 现在的趋势是凡使用 B/S 架构的应用管理软件,只需安装在Linux 服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用 windows 作为桌面操作系统电脑不受影响,这就使得最流行免费的 Linux 操作系统快速发展起来,Linux 除了6操作系统是免费的以外,连数据库
26、也是免费的,这种选择非常盛行。比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用 windows 操作系统,但用户的电脑本身安装的大部分是 windows 操作系统。(3)应用服务器运行数据负荷较重。由于 B/S 架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过 WWW 浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生
27、服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。2.4 Eclipse 开发环境 Eclipse 最初是由 IBM 公司开发的替代商业软件 Visual Age for Java 的下一代 IDE 开发环境,是著名的跨平台的自由集成开发环境。最初主要用来 Java 语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C+和 Python 的开发工具。 Eclipse 的本身只是一个框架平台,但是众多插件的支持使得 Eclipse 拥有其他功能 相对固定的 IDE 软件很难具有的灵活性。许多软件开发商以 Eclipse 为框架开发自己的 IDE。 Ec
28、lipse 采用的技术是 IBM 公司开发的(SWT) ,这是一种基于 Java 的窗口组件, 类似 Java 本身提供的 AWT 和 Swing 窗口组件;不过 IBM 声称 SWT 比其他 Java 窗口 组件更有效率。Eclipse 的用户界面还使用了 GUI 中间层 JFace,从而简化了基于 SWT 的应用程序的构建。 Eclipse 的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse 使用插件 来提供所有的附加功能,例如支持 Java 以外的其他语言。 已有的分离的插件已经能够 支持 C/C+(CDT) 、Perl、Ruby,Python、telnet 和数据库开发。
29、插件架构能够支持将 任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。 Eclipse 的设计思想是:一切皆插件。Eclipse 核心很小,其它所有功能都以插件的 形式附加于 Eclipse 核心之上。Eclipse 基本内核包括:图形 API (SWT/Jface), Java 开发环境插件(JDT) ,插件开发环境(PDE)等。2.5 DreamweaverDreamweaver 可以用最快速的方式将 Fireworks,FreeHand,或 Photoshop等档案移至网页上。使用检色吸管工具选择荧幕上的颜色可设定最接近的网页安全色。对于选单,快捷键与格式控制,都只要一个简单步骤便可完成。Dreamweaver 能与您喜爱的设计工具,如 Playback Flash,Shockwave 和外挂