点击下载源码
基于JAVA-JSP电子书下载系统
目 录
第1章 绪论 1
课题的研究背景、内容和意义 1
第2章 主要技术概述 3
2.1 B/S结构 3
2.2 JSP技术 4
2.2.1 JSP技术的强势 5
2.2.2 JSP技术的弱势 5
2.3 SQL SERVER 2000数据库 5
2.4 JDBC数据库连接 6
2.4.1 JDBC接口 7
2.4.2 JDBC的驱动程序 7
2.5 TOMCAT应用服务器 8
第3章 需求分析 10
3.1.1 用户及主要操作功能 10
3.1.2 系统角色管理模块 10
包括系统管理员模块和会员模块 10
3.1.3 电子书管理模块 10
3.1.4 公告模块 11
3.2 系统性能需求分析 11
3.3 开发环境及开发工具 11
第4章 概要设计 12
4.1 系统的体系结构 12
4.2 系统功能结构设计 12
4.2.1 管理员模块 14
4.2.2 会员模块 14
4.3 系统流程图 15
4.3.1 会员管理 15
4.4 数据库设计 16
第5章 详细设计 19
5.1 公告管理模块 19
5.1.1 浏览公告 19
5.1.2 发布公告 20
5.1.3 管理公告 21
5.2 会员模块 23
5.2.1 会员注册 23
5.2.2 点券充值 25
点券充值的核心代码如下: 25
5.2.3 搜索和下载书籍 27
5.3 书籍管理模块 29
5.3.1 电子书类别的管理 29
5.3.2 电子书管理 31
5.3 留言版模块 33
5.4 通用模块 34
5.4.1 登录、修改个人信息及注销退出 35
5.4.2 数据库的连接接 35
5.5 小结 37
第6章 系统测试 38
6.1 公告管理模块 38
6.1.1 公告的浏览 38
6.1.2 公告的添加 38
6.1.3 公告的编辑、删除 38
6.2 会员管理模块 38
6.2.1 成员注册 38
6.2.2 点券充值 39
6.2.3 搜索书籍 39
6.3 书籍管理模块 39
6.3.1 电子书类别的管理 39
6.3.2 电子书管理 39
6.3.3 留言版 39
第7章 结论与展望 40
参考文献 41
致 谢 42
第1章 绪论
课题的研究背景、内容和意义
电子书代表人们所阅读的数字化出版物, 从而区别于以纸张为载体的传统出版物, 电子书是利用计算机技术将一定的文字、图片、声音、影像等信息, 通过数码方式记录在以光、电、磁为介质的设备中, 借助于特定的设备来读取、复制、传输,已经为人们所熟悉。
众所周知,自20世纪80年代以来,电子图书的出现和迅速发展已经引起社会各界的普遍关注。在信息社会化和社会信息化的今天,电子图书极大地刺激了传统图书出版、发行市场,改变了读者阅读习惯,给人类社会文化和社会生活带来了深刻的变革。一般情况下,阅读电子图书主要有两种形式,一种是在线或在PC机上阅读,即通过台式电脑或笔记本电脑直接阅读网站提供的免费或付费的电子图书,也可以下载到本地计算机上阅读;另一种是离线或脱机阅读,即通过使用专用的手持阅读器阅读。手持阅读器具有体积小,分量轻,容易携带的特点,不受时间、地点、环境的限制。而且,随着阅读器材技术、内容、格式的日臻完善,电子图书必将展示其更为广阔的发展空间。
对比传统的图书出租的书店,电子书租借平台有许多的优越性。对租借者来说,方便了大家租借图书的途径,不必走出家门,只需有一台电脑,一根网线,连上网就可以访问因特网上大量的电子书网站。随着因特网发展和上网用户的增加,农村也已开始有越来越多的网络连接,上网早已不是难事,所以,一个网络的电子书租借平台可以适应大众的需求。对于管理者来说,便于管理,运营成本低,没有地域限制。总之,电子书租借平台有着很高的灵活性和方便性,随着社会的发展,会为越来越多的人所接受,有着极高的应用前景。
在国外,电子图书的发展体现在阅读软件和阅读硬件两个方面。阅读软件主要指在线阅读器,阅读硬件一般是手持式阅读器,也包括手机。各软硬件生产厂商为了更好的吸引消费者,在这上面都下了不小的精力来完善自己产品的功能,保证产品质量和提高其可用性,竞争也比较激烈。
在国内,最为普遍的电子书阅读终端是PC,手机阅读电子书的方式也在逐渐增加,而专用的手持阅读器还有待推广。国内已经出现了很多的电子书网站,比较出名的有晋江文学、潇湘书院、小说阅读网等,内容包括一些原创,各类小说和国内外名著。为了自身发展,网站往往和一些网络作家签约,网络作家在签约网站发表自己的原创并获得不低的著作费,这样也丰富了网站的内容,更好地吸引读者,达到双赢的目的。网站盈利的方式主要是向读者收取阅读费,收费方式不尽相同,一般分为按字数收取,按本数收取和按时间收取费用,所以,拥有一个广大的用户群是保证网站持续良好发展的基础。网站也可以靠出租广告位置获得额外的利益,但是过多的广告,会影响网页的美观简洁,一些弹窗广告甚至会影响读者的操作,给用户造成不必要的麻烦,所以广告的投放一般不会过多。
第2章 主要技术概述
2.1 B/S结构
B/S 是 Brower/Server 就是用浏览器(如IE)为应用程序客户端操作服务器。这样用浏览器来操作简单易用,但是对输入没有很好的验证。逻辑实现不多。本地只是用于获取数据然后大部分验证需要提交服务器来完成。
B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构[4]。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
B/S架构软件的优势与劣势:
(1)维护和升级方式简单。
目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
(2)成本降低,选择更多。
大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。
(3)应用服务器运行数据负荷较重。
由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。
2.2 JSP技术
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与Java Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览[5]。
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
2.2.1 JSP技术的强势
(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。
2.2.2 JSP技术的弱势
(1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。
2.3 SQL Server 2000数据库
SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的一个版本。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。
SQL Server 2000 系统之间之所以成为目前流行的大型商用数据库系统,有着其深刻的内在因素,这与它鲜明的特点是分不开的:
①与Internet 的高度集成。
SQL Server 2000与其它Microsoft Back Office产品紧密集成,在安全、事件浏览、Windows NT服务程序、性能监视器、多处理器支持、索引服务器等方面充分利用了它们的长处,形成了自己独特的优势。
②高伸缩性和适应性。
同一SQL Server 2000数据库引擎运行在Windows 2000 Professional、Windows 2000 Server、Windows 2000 Advanced Server、Windows 98和Windows Millennium Edition上。还运行在Windows NT 4.0版的所有版本上。此数据库引擎是一个功能强健的服务器,可管理供上千用户访问的TB数据库。同时,当以默认设置运行时,SQL Server 2000还具有动态自调整等功能,这使得它可以有效地运行在便携式电脑和台式机中,用户无需承担管理任务。SQL Server 2000 Windows CE版将SQL Server 2000程序设计模型扩展到移动的Windows CE设备上,并且可以很容易地集成到SQL Server 2000环境中。
③企业级数据库功能强。
SQL Server 2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护资料完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000分布式查询使您得以引用来自不同资料源的资料,就好象这些资料是SQL Server 2000数据库的一部分,同时分布式事务支持充分保护任何分布式资料更新的完整性。复制同样使您得以维护多个资料复本,同时确保单独的资料复本保持同步。可将一组资料复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。
④易于安装和使用。
SQL Server 2000中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用SQL Server的过程。SQL Server 2000还支持基于标准的、与Windows DNA集成的程序设计模型,使SQL Server 2000数据库和资料仓库的使用成为生成强大的可伸缩系统的无缝部分。
⑤具有决策支持的资料仓库。
SQL Server 2000提供了数据转换服务、联机分析处理(OLAP)、数据挖掘支持、English Query、Meta Data Services等等工具,以便对数进行析取、分析汇总资料并对数据库的设计提供帮助。
2.4 JDBC数据库连接
JDBC(Java DataBase Connectivity)称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成。JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序。
JDBC定义了Java语言同SQL数据之间的程序设计接口。JDBC有一个非常独特的动态连接结构,它使得系统模块化。使用JDBC来完成对数据库的访问包括以下四个主要组件:Java的应用程序、JDBC驱动器管理器、驱动器和数据源。简单地说,JDBC可做三件事:与数据库建立连接、发送SQL语句,处理结果。
2.4.1 JDBC接口
一般来说,JDBC API中有两层接口:应用程序层,开发人员用API通过SQL调用数据库和取得结果;驱动程序层,处理与具体驱动程序版本的所有通讯。
JDBC API是一系列抽象的接口,应用程序开发人员通过它可以编写访问数据库的Java应用程序。JDBC API中,抽象类的实现是由驱动程序开发商提供的。驱动程序实现了应用程序和某个数据库产品之间的接口,它的管理器则对应用程序和驱动程序之间的交互进行控制。JDBC API主要用来连接数据库和直接调用SQL命令,执行各种SQL语句。利用JDBC API可以执行一般的SQL语句、动态SQL语句,以及带IN和OUT参数的存储过程。
JDBC API是一个标准统一的SQL数据存取接口,它为Java程序提供了一个统一无缝地操作各种数据库的接口,程序员编程时,可以不关心它所要操作的数据库是哪个厂家的产品,从而提高了软件的通用性。而且在Internet上确实无法预料你的用户想访问什么类型的数据库,只要系统上安装了正确的驱动器组,JDBC应用程序就可以访问其相关的数据库。您只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL语句。而且,使用Java编程语言编写的应用程序,就无须去忧虑要为不同的平台编写不同的应用程序。将Java和JDBC结合起来将使程序员只需写一遍程序就可让它在任何平台上运行。
2.4.2 JDBC的驱动程序
JDBC的数据库访问要通过JDBC驱动程序来完成,JDBC驱动程序是Java应用程序与物理数据库之间桥梁。JDBC驱动程序可以分为下面四种类型,分别适用于不同的场合[6]。
(1)JDBC-ODBC桥驱动程序
这类驱动程序负责将JDBC转换为ODBC,然后通过JDBC-ODBC的方法调用ODBC驱动程序来存取数据库。
(2)本机应用编程接口的JDBC驱动程序
这类驱动程序部分采用Java语言编写,部分采用本地代码编写。这种JDBC驱动会将客户机的JDBC调用转换为对特定数据库驱动程序的调用,进而存取数据库,因此必须先在客户机上安装好特定的数据库的数据访问驱动库才能使用。
(3)数据库中间件的纯JDBC驱动程序
这种类型的驱动程序把客户端的JDBC调用转换为一种独立于特定数据库的协议,然后将数据库访问请求传输给服务器组件,最后该服务器组件将访问请求转换为特定数据库的协议。
(4)直接连接数据库的纯JDBC驱动程序
这种类型的驱动程序可以将客户端的JDBC请求直接转换成特定数据库的协议,所有存取数据库的操作,都直接由驱动程序来完成。
2.5 TOMCAT应用服务器
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapps目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用,当然本地也可以。Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。
第3章 需求分析
3.1 系统功能描述
该系统是用于用户对电子书的租借和相互交流,运营者可以管理此平台盈利,是一个基于在线阅读的平台,怎样可以方便管理者的管理并实现盈利,方便用户的使用,提供搜索和租借功能并且提供一个给用户的交流平台是研究的主要内容。重点在于对访问该系统的身份进行基于角色的识别,使系统可以允许三种不同的角色进行访问,即游客、会员、管理员,并赋予他们不同的访问权限。
3.1.1 用户及主要操作功能
游客可以浏览网站的主页,但是需要注册为会员后才能对电子书进免费行阅读或租借。会员登录需要输入帐号和密码信息,每个会员的帐号下都会对应有相关的个人信息,如个人邮箱,地址等,不同的会员等级在租借图书时会有不同的待遇。以管理员身份登录也需要输入账号和密码,可以管理会员信息,添加公告,管理留言板等,管理员的角色在该系统中拥有最高的权限。
3.1.2 系统角色管理模块
包括系统管理员模块和会员模块
(1)在会员模块,作为会员,可以查看个人的信息,修改自己的密码;作为管理员可以查看,管理,删除会员信息。
(2)在管理员模块,可以添加、删除管理员,管理员可以修改自己的密码。
3.1.3 电子书管理模块
电子书管理模块包括不同电子书类别的添加,删除以及电子书的上传,删除管理。
(1)电子书类别的添加是由管理员进行的,可以包括武侠小书,都市言情,穿越小书等各个类别。按照付费与否可以添加免费和付费两种类别,当然这和前一种分类方式并不冲突。
(2)各类电子书由管理员上传,上传时如果是付费电子书,可以设置下载此电子书是所需费用。
(3)对于一些过时,或人气不高的电子书,系统管理员可以进行删除操作。
3.1.4 公告模块
公告模块主要包括了公告的发布、编辑、删除和浏览;公告的发布、编辑和删除只能由管理员来进行。
3.2 系统性能需求分析
电子书租赁下载系统是对广大读书爱好者设计的一个系统,提供给读者一个寻找读物的平台,因此必须方便用户的注册,搜索和下载等功能,并提供一个交流平台。系统应该具有开放性和可靠性,同时又要方便进行操作和维护。
3.3 开发环境及开发工具
操作系统:Windows XP SP3;
语言选择:JSP 、JavaScript;
数据库选择:SQL Server 2000;
主要开发工具:Dreamweaver CS3、Eclipse 3.4;
Web应用服务器:Tomcat 5.5。
第4章 概要设计
本章详细的介绍了本系统的设计实现,包括系统功能模块的设计和数据库的设计,系统功能模块设计主要介绍了系统的功能和各功能实现的流程,数据库设计主要介绍了数据库表的设计和各字段的意义。
4.1 系统的体系结构
结构设计是系统设计的关键,结构是整个系统的骨架,将对系统的性能起决定性的作用,采用如图4-1所示的结构模式。图中客户端可分别为:管理员、游客、和会员三种角色。
4.2 系统功能结构设计
系统功能框图如图4-2所示。
电子书租赁下载系统包括了用户登录模块和匿名模块,在用户登录模块中角色分为管理员和会员三种角色。管理员可以对用户进行管理,可以建立数目类别,上传电子书,公告的编辑和发布;会员可以浏览系统公告、电子书信息,可以同其他会员进行交流。
4.2.1 管理员模块
本模块包括会员管理、公告管理和书籍管理三部分。具体功能结构分析如图4-3所示。
4.2.2 会员模块
本模块包括信息管理,点券充值,书籍搜索三部分,具体的功能结构如图4-4所示。
4.3 系统流程图
4.3.1 会员管理
会员管理包括对公司新近员的信息进行查看和删除等操作。还有对点券充值的确认。
(1)删除会员
首先查看会员的信息,查看的会员的信息必须在库里存在,如果有即可找到,如果没有就不能看到。当找到相应的记录后就会显示出来,然后对会员信息进行删除,删除完成该会员的信息就不存在数据库中。
具体的操作流程如图4-5所示。
4.3.2 公告管理
系统公告的管理由管理员来进行管理,系统公告发布后所有人都可以看见,系统公告的数据表(newsinfo),所有公司公告的相关操作均在本表了进行操作。
4.4 数据库设计
数据库设计是系统设计中非常重要的环节。数据库设计是整个系统的根基,如果设计不好,在后来的系统维护、变更和功能扩充时,甚至在系统开发过程中,将会引起比较大的问题,有时将会重新进行大量的工作。
创建数据库:
数据库名:manage(软件项目团队管理系统)
本系统中一共用到了以下几个数据表:
(1)电子书类别表(t_catelog):存储电子书类别信息,具体为表4-1所示。