1、大学毕业设计(论文)任务书学院(直计算机科学与技术 时间:2014年 11月15日学 生 姓 名指 导 教 师设计(论文)题目基于java的图书管理系统主要研究内容1.调查各个学校图书馆管理系统的使用情况2.研究可行的提升图书管理效率的方案3.研究开发改进图书管理系统的核心技术手段研究方法1.分析开发过程中核心模块2.分步骤解决开发过程中遇到的问题3.通过各种途径需找决绝方法主要技术指标(或研究目标)主要技术:servlet、jsp、html、xml、研究目标:开发出实用、高效的系统主要参考文献1石志国,薛为民,董洁.JSP应用教程.北京:清华大学出版社.北 京交通大学出版社,20042李曙光
2、.JSP开发实例完全剖析.北京:中国电力出版社,20063杨易.JSP高级程序设计.人民邮电出版社,20064Vivek Chopra.JSP高级程序设计,机械工业出版社,2001基于Java的图书管理系统的设计与实现摘要 本文对图书管理系统的设计与开发过程进行了分析与叙述。依照系统开发的实际操作步骤,文章从系统概述、系统分析、系统设计和系统实现这四大章节对系统开发过程进行分别阐述。系统概述中主要进行了课题背景、课题意义和现状分析;系统分析中主要包括了系统设计前的需求分析、业务流程分析、数据流程分析和数据字典分析;而系统设计则是对系统体系结构、各功能模块、数据库结构设计等具体的系统实现过程进行
3、剖析展示,在系统设计章节中有详细的文字解释并配有表图说明。文章还列举了关键的功能模块实现代码。 本文力求可以为图书管理系统的开发设计找到一种切实可行的解决方案,在分析了目前国内外图书管理系统的现状的基础上,并经过反复摸索和学习研究后,借助编程语言JSP和SQL 数据库最终实现了图书管理的开发,并在一系列测试后,达成了人性化、所需功能完善、操作清晰的设计目标。关键词: JSP,Servlet,MySQLIIILAN of library management systemAbstract In this paper, book management system design and devel
4、opment 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 outline
5、d 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 desi
6、gn 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
7、 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
8、, functional requirements, operations designed to clear.Key Words: JSP,Servlet,MySQLIII目 录第一章 绪论- 1 -1.1 课题背景、目的及意义- 1 -1.2 国内外研究现状- 2 -第二章 可行性分析- 3 -2.1 社会可行性- 3 -2.2 技术可行性- 3 -2.3 操作可行性- 3 -2.4 系统的技术介绍- 3 -2.5 系统开发平台及运行环境- 6 -第三章 需求分析- 8 -3.1 系统功能模块概述和分析- 8 -3.2 系统功能模块设计- 9 -3.3 数据库分析- 10 -第四章 基于J
9、AVA的图书管理系统前台设计与实现- 15 -4.1首页设计- 15 -4.2用户模块- 16 -4.3图书模块- 18 -4.4借书单- 19 -4.5图书预约单模块- 20 -第五章 基于JAVA的图书管理系统后台设计与实现- 22 -5.1管理员登录- 22 -5.2后台主页- 22 -5.3分类管理- 23 -5.4图书管理- 25 -5.5图书预约单管理- 27 -III第六章 系统测试- 29 -6.1 测试的目的与目标- 29 -6.2 测试方法- 29 -6.3 测试用例- 30 -6.4 测试结论- 31 -第七章 结论- 32 -参考文献- 33 -致谢- 34 -附录:-
10、 35 -III第一章 绪论1.1 课题背景、目的及意义1.1.1 课题背景随着社会的发展,人们对知识的需求也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书不但关系到读者求知的方便程度,也关系到图书的发展,因此,开发一套完善的图书管理系统就必不可少了,本文介绍了在Windows7及Java、JSP、SQL、MyEclipse环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发本系统的详细过程,提出实现图书信息管理、资源共享的基本目标,从而推动迈向数字化图书的步伐,并阐述系统结构设计和功能设计
11、,从图书的入库登记到查询浏览,从借书证发放到图书的借阅,形成了一个整体自动化管理模式,从软件工程的角度进行了科学而严谨的阐述。图书作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范
12、的信息管理手段。尽管有的图书有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书管理系统的开发的基本环境。1.1.2 课题目的和意义在各行各业竞争日益激烈的今天,提高工作效率和工作质量是每个企业必须面临并且必须解决的重大课题。有了基于JAVA的图书管理系统就不需要客户到书城手工查询需要的图书,而只需在自家的电脑前输入查询条件,或通过类别查询,快速而准确的找到需要的图书,大大加快了查询速度。基于JAVA的图书管理系统不仅可以大量减少人力、物力,降低了成本,而且突破了时间和空间的限制,使得图书交易活动可以在任何时间、任何地点进行,实现24小时营业,不需要营业员,图书管理系
13、统可以被设置成一个自动售货机。同时,基于JAVA的图书管理系统更容易开拓全球市场从而大大提高了效率,对推动基于JAVA的图书管理系统未来的发展有着一定的实际意义。鉴于互联网的优势以及对国内外相关图书管理系统网站现状的研究分析,我决定以基于Web的基于JAVA的图书管理系统开发作为我的毕业设计主题。立足于设计一个在网络平台上运行的集购物、确认和配送等功能于一体的图书管理系统,以小小的力量推动中国互联网的发展。1.2 国内外研究现状1.2.1 国外的研究现状网上售书这是信息社会发展的必然要求。国际互联网的开通,为信息社会的飞速发展创造了条件。在美、日等信息化程度较高的国家和地区,网上图书销售发展速
14、度迅猛。据InternetWorldStatS的统计,今天的互联网有17亿用户。而目前的全球人口为67亿,到2020年毫无疑问会有更多的人使用互联网。美国国家科学基金会预计,到那时互联网的用户数量将接近50亿。网民队伍的迅速扩充,无疑为网上售书的发展提供了巨大的市场空间。加上图书因其具有标识清晰、规格统一、特征容易描述、同种商品个体之间无差异等特性而能成为发展电子商务的最为理想的商品类型。因此,网上售书成为各国发展电子商务的首选目标,国际互联网开通后,各国电子商务网站很大一部分都是网上书店。只要网络发展没有停止,网上售书的发展就不会停止。1.2.2 国内的研究现状近年来,随着计算机网络技术的飞
15、速发展,网络技术应用已经相当普及,使得在线借阅成为现实,各种各样的网上图书销售系统层出不穷,国内各大图书商都在创建自己的计算机网上电子商务系统。随着科学技术的飞速发展,Internet这个昔日少数科学家接触和使用的科研工具已经成了普通百姓都可以触及的大众型媒体传播手段。第二章 可行性分析2.1 社会可行性随着计算机技术的发展和网络人口的增加,网络世界也越来越广博,越来越丰富,网上售书已经成为网上的一股潮流。相信要不了太长有时间,顾客就可以在网络世界上获得他们在现实世界上可以获得的任何图书。基于JAVA的图书管理系统系统主要目的是进行网上售书,并且严格按照国家法律法规来进行研究和实践,并无法律和
16、政策方面的限制。2.2 技术可行性本系统采用的是JSP、Servlet和MySQL开发,Windows XP Professional操作系统,用Dreamweaver进行前台网页界面设计、采用JDBC方式与后台数据库进行连接,完成数据的添加、修改、删除、查询等功能。由于JSP、Servlet功能强大,而MySQL灵活易维护在开发方面具有方便快捷、使用灵活的特点,以及目前的广泛实际应用,因此使用JSP、Servlet、MySQL是开发轻平台的最佳组合从而说明本系统在技术方面可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满
17、足此系统的需要。2.3 操作可行性目前,大多数计算机都能运行该系统,该系统的安装、调试、运行不会改变原计算机系统的设置和布局,并且系统界面简单,提示信息完整,由相关人员指导便能够方便的操作此软件。2.4 系统的技术介绍2.4.1 JavaScriptJavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。JavaScript语言与Java语言在语法上比较
18、相似,但随着对JavaScript的深入了解后你会发现,它们说到底是两种语言!2.4.2 JQueryJQuery是一个兼容多浏览器的JavaScript框架,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。如今,JQuery已经成为最流行的JavaScript框架,在世界前10000个访问最多的网站中,有超过55%在使用JQuery。JQuery是免费、开源的,使用MIT许可协议。JQuer
19、y的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。除此以外,JQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。2.4.3 MySQLMySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。自从Oracle公司收购了MySQL后不久,就发行了MySQL
20、的企业版(不再免费)!2.4.4 MVCMVC即模型视图控制器,是Xerox PARC在八十年代为编程语言Smalltalk80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。MVC是一种设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。(1)模型模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来
21、处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。(2)视图视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实
22、没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。(3)控制器控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何的处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。综上所述,MVC的处理过程是首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。2.4.5 JDBCJDBC
23、(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程
24、序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。2.4.6 DbutilsCommon Dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。传统操作数据库的类指的是JDBC(java database connectivity:java数据库连接,java的数据库操作的基础API。)。Dbutils是java编程中的数据库操作实用工具,小巧简单
25、实用,特色:1.对于数据表的读操作,他可以把结果转换成List,Array,Set等java集合,便于程序员操作;2.对于数据表的写操作,也变得很简单(只需写sql语句)3.可以使用数据源,使用JNDI,数据库连接池等技术来优化性能-重用已经构建好的数据库连接对象,而不像php,asp那样,费时费力的不断重复的构建和重构这样的对象。2.4.7 C3P0C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。2.5 系统开发平台及运行环境2.5.1 系统开发平台系统的开发是在Tomcat
26、环境下进行的。Tomcat是一个免费的开源的Servlet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被Java World杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。 Tomcat的环境主要有以下几方面技术优势:1Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。2在Tomcat中,应用程
27、序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。3Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理html页面。4Tomcat也可以与其它一些软件集成起来实现更多的功能。2.5.2 运行环境操作系统:Windows XP以上版本。服务器软件:Tomcat6.0以上版本。浏览器:IE、Fire Fox、Google Chrome等。第三章 需求分析3.1 系统功能模块概述和分析基于JAVA的图书管理系统模型是典型的企业级开发实践中最为普遍的企业对客户(B2C)模式,主要包括:学生注册、用户登陆
28、、搜索查询、读者借书、读者还书、用户退出等基本功能。此外,本系统也将实现图书管理的后端操作,包括图书入库、图书删除、借图书预约单的处理等功能。本系统基于JAVAEE技术,在系统的设计与开发过程中严格遵守软件工程的规范,运用软件设计模式,从而减少系统模块间的耦合,力求做到系统的稳定性、可重用性和可扩充性。基于JAVA的图书管理系统主要功能如下:(1) 前台(学生借阅)部分:用户管理:学生注册、登录、激活、退出、修改密码;分类显示:显示所有1级和2级分类;图书显示:按分类查询图书、通过关键字搜索图书、高级搜索图书、查看某本图 书的详细等;借书单管理:向借书单中添加图书、修改借书单中图书数量、删除借
29、书单中图书、 我的借书单;图书预约单管理:通过借书单中图书生成图书预约单、查看我的图书预约单、查 看某个图书预约单的详细、取消图书预约单。(2)后台(管理员管理)部分:管理员:管理员登录;分类管理:查看所有分类、添加1级分类、添加2级分类、修改1级分类、修改2 级分类、删除1级分类、删除2级分类;图书管理:按分类搜索图书、高级搜索图书、添加新图书、查看图书详细信息、编 辑图书、删除图书;图书预约单管理:按状态搜索图书预约单、查看图书预约单详细信息、取消图书预 约单、确认借出;3.2 系统功能模块设计根据系统功能分析,可以画出系统的功能模块图。前台:用户借书功能图图3.2.1 用户借书功能后台:
30、管理员功能图:图3.2.2 管理员功能3.3 数据库分析信息系统的主要任务是通过大量数据获得管理所需要的信息,这就要求系统本身能够存储和管理大量的数据,而这一功能的实现必须借助大型数据库系统。本系统的开发选择MySQL作为后台数据库开发工具。1. 概念模型设计概念模型用于信息世界的建模,与具体的DBMS无关。为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型。人们常常首先将现实世界抽象为信息世界,然后再将信息世界转换为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统和具体的DBMS,而是概念级的模型,然后再把模型转换为计算
31、机上某一个DBMS支持的数据模型。实际上,概念模型是现实世界到机器世界的一个中间层次。 信息世界中包含的基本概念有实体和联系。 (1) 实体 (entity)客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个学生、一门课、一个供应商、一个部门、一本 书、一位读者等都是实体。 (2) 联系 (relationship)在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是组成实体的各属性之间的联系。两个实体型之间的联系可以分为3类,一对一联系,(1:1);一对多联系(1 : n
32、);多对多联系(m : n)。 概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示信息世界中的常用概念。概念模型的表示方法很多,其中最为常用的是P.P.S.Chen于1976年提出的实体,联系方法(Entity-Relationship Approach)简记为E-R表示法)。该方法用E-R图来描述现实世界的概念模型,称为实体-联系模型,简称E-R模型。根据数据流程分析,绘制图书管理系统的全局E-R模型如图所示。图3.3.1 数据库概念模型E-R图2. 数据库表设计数据库表设计主要是把概念结构设计时设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。它包括
33、数据项、记录及记录间的联系、安全性和一致性约束等等。导出的逻辑结构是否与概念模式一致,从功能和性能上是否满足用户的要求,要进行模式评价。本系统数据库表如下:(1)读者信息表(t_user)读者信息表主要用于存储读者信息,主要字段有姓名、性别、年龄、住址、联系方式、借书证号等信息。表3.3.1 读者信息表(t_user)字段名称数据类型主键是否空说明uidchar(32)YN主键loginnamevarchar(50)NN登录名loginpassvarchar(50)NN登录密码emailvarchar(50)NN邮箱地址statusbooleanNN是否激活activationCodechar
34、(64)NN激活码(唯一)(2) 图书类别信息表(t_catelog)图书类别信息表主要用于存放图书类别的信息,主要字段包括:ID,类别名称等。表3.3.2 图书类别信息表(t_catelog)字段名称数据类型主键是否空说明cidchar(32)YN主键cnamevarchar(50)NN分类名称pidchar(32)NY父分类IDdescvarchar(100)NY分类描述orderByintNY序号,用来排序(3) 图书信息表t_book图书信息表主要用于存储图书信息,主要字段有ID、图书名称、出版社、出版日期、ISBN号、类别ID等。表3.3.3 图书信息表(t_book)字段名称数据类
35、型主键是否空说明bidchar(32)YN主键bnamevarchar(200)NN书图名称authorvarchar(50)NY作者pricedecimal(8,2)NY定价currPricedecimal(8,2)NY当前价discountdecimal(3,1)NY折扣pressvarchar(100)NY出版社publishtimechar(10)NY出版时间editionintNY版次pageNumint NY页数wordNumintNY字数printtimechar(10)NY印刷时间booksizeintNY开本papervarchar(50)NY纸质cidchar(32)NY所
36、属分类IDimage_wvarchar(100)NY大图路径image_bvarchar(100)NY小图路径orderByintNY序号,用来排序(4) 借阅信息表t_cartitem读者信息表主要用于存读者借阅图书的信息,主要字段有ID、图书ID、读者ID、借阅数量等。表3.3.4 借阅信息表(t_jieyue)字段名称数据类型主键是否空说明cartItemIdchar(32)YN主键quantityintYN数量bidchar(32)YN图书IDuidchar(32)YN用户IDorderyByintYN序号,用来排序(5)管理员信息表t_admin管理员信息表主要用于系统管理员的信息,
37、主要字段包括:编号、登陆账号、登陆密码。表3.3.5 管理员信息表(t_admin)字段名称数据类型主键是否空说明adminIdchar(32)YN主键adminnamevarchar(50)YN管理员名称adminpwdvarchar(50)YN管理员密码第四章 基于JAVA的图书管理系统前台设计与实现基于JAVA的图书管理系统的整个前台部分是供用户浏览、挑选图书的部分,一个好的网站的前台部分一定非常精美,非常有条理,因此,前台的设计主要把握3点:简明扼要、条理清晰、层次分明。下面将一一介绍我的基于JAVA的图书管理系统系统的前台部分的实现。4.1首页设计首页模块包括3个主要的部分,采用内嵌
38、框架技术。位置分别为上、左、中。1 上部的实现上部包含两大部分内容:网站标题、菜单。菜单部分就是一系列的超链接,用户在未登录时看到的是“登录”和“注册”链接;在登录后看到的是“我的借书单”、“我的图书预约单”、“修改密码”、“退出”超链接,以及当前用户名称。2 左部的实现左部显示所有分类,包含所有1级、2级分类。左部使用了Javascript的Q6Menu组件来完成显示所有分类。当用户点击某个1级分类名称时会展示当前1级分类的所有2级分类。3 中部的实现中部是网站的骨干,点击任何超链接都会在中部显示。默认使用纯文本显示欢迎。图4.1.1 首页4.2用户模块注册用户是构成网站主体的一个重要组成部
39、分,网站设置注册用户的目的之一在于方便网站信息的管理。4.2.1用户注册用户在登录之前需要先进行注册,在首页中点击“注册”链接就可以到达注册页面。1. 表单校验:注册页面使用JQuery对用户输入的数据进行校验,包括用户名、登录密码、密码确认、Email、验证码等的验证。用户名:不能为空,长度必须在215之间,不能是已注册过的;登录密码:不能为空,长度必须在215之间;确认密码:不能为空,必须与登录密码相同;Email:不能为空,必须是正确的Email格式,不能是注册过的Email;验证码:不能为空,必须与图片上的验证码相同。表单校验中,用户名是否被注册过、Email是否被注册过、验证码是否正
40、确这三项都需要请求服务器,所以这里使用的是JQuery的ajax()来完成对服务器的访问。2. 激活:当用户注册成功后还需要激活成功后才能登录。在注册成功后,系统给用户的邮箱发送一份激活邮件。当用户登录自己的邮箱后,在激活邮件中点击激活链接完成激活后,才可以去登录。图4.2.1 注册页面4.2.2用户登录在首页点击“登录”链接就可以来到登录页面。要想使用本系统,必须先登陆到系统中,在登陆页面,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码
41、是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。1. 表单验证户名:不能为空,长度必须在215之间,不能是已注册过的;登录密码:不能为空,长度必须在215之间;验证码:不能为空,必须与图片上的验证码相同。登录表单校验使用的JQuery完成,其中用户名是否存在,以及验证码是否正确需要使用JQuery的ajax()向服务器发送异步请求。2. 登录成功用户登录成功后,会回到首页。这时在首页会显示当前用户的名称,以及“我的借书单”、“我的图书预约单”、“修改密码”、“退出”链接。也就是说,这几个功能只能登录用户才能使用,而游客是无法使用的。图4.2.2 登录页面4.2.3修改
42、当前用户密码用户在登录成功后,点击修改密码链接就会到达修改密码页面。1. 表单校验原密码:不能为空,长度必须在215之间,是否与数据库中原始密码相同;新密码:不能为空,长度必须在215之间;确认密码:不能为空,必须与新密码相同;验证码:不能为空,是否与随机验证码相同。表单校验使用JQuery完成。其中原密码和验证码是否正确,需要异步访问服务器,这里使用的是JQuery的ajax()完成的。图4.2.3 修改密码界面4.2.4退出当用户登录后,点击退出链接可以完成退出。退出成功后会到达登录页面!4.3图书模块4.3.1图书列表在首页左部点击某个2级分类,会在首页的中部显示图书列表页面。图书列表使
43、用分页显示。可以在图书列表上方输入关键字进行搜索。图4.3.1 图书分类4.3.2图书详细点击某本图书,会到达图书详细页面。页面会显示图书的相关信息,比如图书名称、出版社、出版时间、版次、页数、字数以及图书图片等内容。图4.3.2 图书详情4.3.3高级搜索在图书列表页面点击高级搜索到达搜索页面。高级搜索有三个条件:书名、作者、出版社,三个条件的关系是并列的,就是输入几个条件,或者哪几个条件搭配,都可以搜索到想要的书籍。而且三个条件都是模糊查询。4.4借书单借书单使用数据库来保存数据,也就是说添加到借书单中的图书,不会因为关闭浏览器,或者是关闭电脑而消失。而且修改数量,是通过异步请求来操作数据
44、库的。4.4.1添加图书到借书单在图书详细页面,给出数量,然后点击“借阅”就可以把图书添加到借书单中,并且会到达借书单列表页面。4.4.2我的借书单也可以在首页上部点击“我的借书单”链接查询借书单。借书单列表页面会显示所有车中所有条目,每个条目会显示图书图片、图书名称、图书当前价、数量,以及小计。4.4.3修改条目数量在借书单列表页面中,点击某个条目上的数量来完成修改数量。这项操作会修改底层数据库。所以这里需要使用JQuery的异步处理访问服务器,完成对数据库表的修改。当数量为1时,如果把数量减1,会弹出确认对话框,提示是否删除该条目。4.4.4删除条目在借书单列表页面中,点击某个条目后面的“
45、删除”链接会删除当前条目。也可以勾选N个条目,然后点击“批量删除”链接,完成一次删除多个条目。4.5图书预约单模块对图书预约单的操作,对应数据库中的两张表,即图书预约单表和图书预约单条目表(t_order和t_orderitem)。而且图书预约单模块的功能比较多:1. 生成图书预约单:通过借书单中勾选的条目来生成图书预约单;2. 我的图书预约单:显示当前用户的所有图书预约单,每个图书预约单所包含的图书预约单条目也需要显示;3. 图书预约单确认:使用易宝的第三方确认平台完成,对“在线确认”的理解也是一个挑战;4. 图书预约单详细:显示指定的某个图书预约单;5. 图书预约单取消和图书预约单的确认收货:这两个功能都是对图书预约单状态的修改。4.5.1选中条目,准备生成图书预约单在借书单列表页面中,勾选要借阅的条目,然后点击“结算”按钮,完成选中条目,准备生成图书预约单,这会到达图书预约单准备页面。4.5.2生成图书预