图书管理系统实例_第1页
图书管理系统实例_第2页
图书管理系统实例_第3页
图书管理系统实例_第4页
图书管理系统实例_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WEB前端Ajax课程设计

题目:图书馆管理系统

设计者:

专业班级:

学号:

2016年06月09日

XXXXXX大学计算机学院

第一章前言

1.1选题背景

本课题设计并实现了基于Web的图书馆管理系统,该系统采用现今比较流行

的Ajax(XHTML和CSSjQuery/ExtJS/Prototype/DWR)结合ASP.NET语言,结

合SQLServer数据库,实现了图书的借阅、查询、管理等基本功能。系统不仅维

护方便,节省了图书馆的资源,方便图书馆进行图书管理,同时,用户也能够更

容易更直观的查询书籍、管理臧书,使借书、还书、查书的过程大大简化,更加

的方便和容易。8POuL

毕业设计做的系统就是对图书馆的书籍进行管理,主要工作是实现了图书信息

功能,图书借还功能等。图书信息功能是实现了图书的数字管理,能方便管理

员快速查看图书信息;借书功能,用户可以通过此功能选择是否借出检索的书

籍;还书功能,读者可以查看自己所借书籍信息;管理员可以查看借书还书历

史和违规书籍信息;查看书籍具体信息,管理员可以查看书籍的具体信息以及

在图书馆的存储状态。PQmllo

本论文内容主要是运用软件工程的知识,先进行系统需求分析,之后是系统概

要设计,详细设计,并且详细介绍了ASP.NET图书馆管理系统的操作代码和排

序的代码编写和测试。XKLf5o

1.2系统开发的环境

1.2.1硬件环境

(1)能够运行Windows系统的高档PC台式机,笔记本电脑。

1.2.2软件环境:

(1)中文WindowsXP操作系统。

(2)MicrosoftVisualStudio2005集成开发环境。

(3)IIS5.1服务器。

(4)MicrosoftSQLServer2000数据库服务器。

1.3系统需求分析

1.3.1需求分析

长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程

比较繁琐。在借书时,读者首先将要借的书和借阅证交给工作人员,工作人员然

后将每本书的信息卡片和读者的借阅证放在一个小格栏里,最后在借阅证和每

本书贴的借阅条上填写借阅信息。在还书时,读者首先将要还的书交给工作人员,

工作人员然后根据图书信息找到相应的书卡和借阅证,并填写相应的还书信息

[9]obAEcu<>

从上述描述中可以发现,传统的手工流程存在种种不足。首先处理借书、还书

业务流程的效率很低;其次处理能力比较低,一段时间内,所能服务的读者人

数是很有限的。为此,图书信息管理系统需要为企业解决上述问题,提供快速

的图书信息检索功能及快捷的图书借阅、归还流程。yeQPLo

1.3.2系统目标

(1)设计界面友好、美观、数据存储安全、可靠。

(2)基本信息设置保证图书信息和读者信息的分类管理。

(3)强大的查询功能,保证数据查询的灵活性。

(4)实现对图书借阅、续借、归还过程的全程数据信息跟踪。

(5)设置读者借阅和图书借阅排行榜,为图书管理提供真实的数据信息。

(6)提供借阅到期提醒,使管理者可以及时了解到期的图书借阅信息。

(7)提供管理员修改自己密码的功能,保证系统的安全性。

(8)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。

(9)采用人机对话的操作方式,方便管理员的日常操作。

(10)系统最大限度地实现了易维护性和易操作性。

1.3.3可行性分析

技术可行性

根据系统的功能、性能及实现系统的各项约束条件。现有的技术及硬件软件

都能够满足。

经济可行性

本系统建立在ASP.NET开发的基础上,项目开发成本非常小。只需要有一台

能够运行Windows系统的高档PC台式机即可,并不需要什么高的成本。DyBydo

运行可行性

系统采用完全的图形化界面,易于管理,方便管理者查询设备信息,能够满足

使用者的要求。该系统应该提供简单的操作界面,能够快速的实现查书、借书、

还书功能。0Hkp2。

第二章相关技术介绍

2.1AJAX

在传统的Web应用里,每个请求即对应一个页面,每次请求都会丢弃当前页面,等待服

务器生成新页面(即使两个页面几乎完全相同)。如果服务器响应还没有完全结束,则

用户只能等待,不能继续原来的操作或发送请求。(同步请求)KvlNpo

classicwebapplicationmodel(synchronous)

client

useractfdty.useractivityuseractivity

server

Ajax的全称是AsynchronousJavaScriptAndXML,即异步Javascript和XML。Ajax并非

一种全新的技术,它所使用的Javascript、CSS、DOM等技术早已存在。OeO9%

Ajax的最大优势在于异步交互,即浏览者在浏览页面时,可同时向服务器发送请求。使

用异步请求,服务器的响应不再是整个页面的内容,而只是必须更新的部分数据,浏览

器无须频繁地重新加载新页面。PqlzZ.

Ajaxwebapplicationmodel(asynchronous)

client

dcdc

aoao

tawa

att

ff

is

ss

otb

岁S

pe

processing

DEDECMS.COM

Ajax可以减轻服务器和带宽的负担,提供更好的服务响应。

•浏览掷通过Javascript代码向服务器发送请求。请求到响应的过程在后台进行,不影响

用户当前界面。响应完成后,JavaScript代码负责解析服务器的响应数据,并把样式表加

到数据上,然后在现有网页中显示出来。I8eMO。

•Ajax使用简单的XMLHttpRequest对象发送请求,使用简单的JavaScript函数监听服务

器响应。在服务器完成响应后,JavaScript通过DOM动态更新HTML页面。自始至终,用

户的动作无须中断,所感受的是一种连续的体验。C32zyo

1.通过使用Ajax技术,可以使互联网网页具有更友好的人

机交互和更美观的浏览页面。

2.Ajax并不是要颠覆传统的B/S结构的应用,而只是让B/S

结构的应用更加完善。

3.Ajax应用的工作过程

•JavaScript脚本使用XMLHttpRequest对象向服务器发送请求。发送请求时,既可以发送

GET请求,也可以发送POST请求。swwTVo

•JavaScript脚本使用XMLHttpRequest对象解析服务器响应数据。

4.JavaScript脚本通过DOM动态更新HTML页面。也可

以为服务器响应数据增加CSS样式表,在当前页面的某

个部分加以显示。G9LQbo

5.Ajax相关技术

Ajax核心技术:XMLHttpRcquest。XMLHttpRcquest是Ajax技术的灵魂。没有

XMLHltpRequesi就没有Ajax。XMLHilpRequesi用于发送异步请求。PQgOc»

■Ajax的编程脚本:JavaScript。JavaScript是Ajax技术的黏合剂。JavaScript主要工

作:t4FvLo

■创建XMLHttpRcquest对象

■通过XMLHttpRcquest向服务器发送请求

■创建I可调函数,监视服务器响应状态,在服务器响应完成后,启动I可调函数

■回调函数通过DOM动态更新HTML页面

■动态改变HTML页面内容的方法:DOM.

■DOM可将HTML页面视为一组包含父子关系的节点的集合

■DOM是JavaScript获取页面数据的方式

JavaScript可以通过DOM访问每个节点,修改节点内容及其属性,新增节点,删除节点

■让页面表现更友好的技术:CSSo在Web页面采用CSS技术,可以有效地对页面的

布局、字体、颜色、背景和其他效果实现更加精确的控制。ico17o

数据交换格式:JSON,而不是XML

■Ajax技术提出时,XML主要作为通信双方的数据交换载体,但后来被JSON取代。

■JSON的全称是"JavaScriptObjectNotation",意思是JavaScript对象表示法,它是

一种基于文本,独立于语言的轻量级数据交换格式。i2RO8o

■JSON语法规则

♦数据在名称;值对中

♦数据由逗号分隔

♦花括号保存对象

♦方括号保存数组

■JSON数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),后

面写一个冒号,然后是值:"firstName":"John"EPsPuo

■JSON值

♦数字(整数或浮点数)

♦字符串(在双引号中)

♦逻辑值(true或false)

♦数组(在方括号中)

♦对象(在花括号中)

♦null

■JSON对象在花不号中书写:{“firstName":“John“,"lastName":"Doe"}5nRgX°

JSON数组在方括号中书写:

"employees":[

{"firstName":"John","lastName":"Doe"),

{“firslName":"Anna","lastName":"Smith"},

{"firslName'^Teter","las(Name":,,Jones"}

]

6.Ajax的特征

•异步发送请求

•服务器响应是数据,而不是页面内容

■浏览器中的是应用,不是简单视图

■在传统Web应用中,浏览器只是简单视图,不包含任何逻辑功能

对于Ajax应用,浏览器不仅可以包含简单逻辑,甚至可以保存用户会话状态。

以购物车为例:

在传统的Web应用里,采用Session保存会话状态,即将用户的状态信息保存到服

务器端。每次用户添加商品,都必须提交一次请求.从而将购买物品提交到服务器

的Session中。efuod。

7.Ajax可以采用JavaScript的变量保存用户购买的所有物

品。用户购买的物品无须提交到服务器的Session,而是

直接修改浏览器中的JavaScript变量,直到用户提交购

买请求,数据需要持久化时,JavaScript才将请求发送到

服务器。ITxoSo

8.Ajax应用初始化时,需要加载大量的JavaScript代码。

这些JavaScript代码中已经包含了部分业务逻辑,将在

后台默默工作,负责处理部分逻辑,异步提交请求,以及

读取服务器响应数据,动态更新页面。qIPQRo

9.Ajax带来的典型优势

•级联菜单的传统实现

■Ajax应用特别适用于交互较多、频繁读数据、数据分类良好的Web应用,大体上,

使用Ajax技术有如下优势plgX5o

■减轻了客户端的内存消耗。Ajax的根本理念是“按需取数据工

■无刷新更新页面,

■将传统的服务器工作转嫁到客户端,从而减轻服务器和带宽的负担,节约空间和带

宽租用成本。

10.Ajax基于标准化技术,几乎所有浏览器都支持这种技

术,无须下载插件或虚拟机程序。

11-jQuery简介

jQuery库是非常优秀的JavaScript库,也是一个纯粹的JavaScripl代码库,可以在任何

Web应用中使用。mTxFz。

jQuery可以做到跨浏览器运行,开发者只要面向jQuery编程,JavaScripl脚本即可在不同

浏览器之间自由切换,HdoIEo

•优雅的解决方案:使,书jQuery库之后,开发者操作的对象不再是原始的DOM元素,而

是jQuery对象。通过这种方式就使开发者无须理会不同浏览器处理DOM对象时存在

的差异,而是直接以jQuery对象所支持的属性和方法操作DOM时象。wn34z。

•对Ajax提供了良好的支持:使用jQuery,无须手动创建XMLHttpRequest对象,只需指

定发送请求的URL和处理响应的回调函数即可,jQuery负责完成剩下的工作FMiZX。

•提供了工具方法以简化数组、字符串的操作。

12.理解jQuery的设计

•使用jQuery动态更新HTML页面的两个步骤

■获取jQuery对象。jQuery对象通常是对DOM对象的包装

调用jQuery对象的方法来改变自身。当jQuery对象被改变时,jQuery包装的DOM对象

随之改变,HTML页面的内容也就随之改变了。FtmCfo

<body>

<divid="lee"x/div>

<scripttypc="text/javascript"src=,,../jquerj,-1.8.0.js">

</script>

<scripttypc=,'tcxt)javascnpt',>

vartarget=$("#leen)

target.html("我要学习jQuery")

.height(60)

.width。60)

.css("border","2pxsolidblack")

.css("background-color"T"#ddddff)

.css("padding",20);

</script>

</body>

•jQuery很多改变自身属性的方法的返回值,就是该对象本身。因此可以连续调用改变自

身属性的方法。

■学习jQuery,只需掌握2点

■获取jQucry对象

■jQuery对象有哪些可用的方法

13.获取jQuery对象

•获取jQuery对象的两种方式

■使用$()函数或用jQuery对象提供的,利用父子关系来返回的jQuery对象

■jQuery对象的调用方法改变自身后返回的jQuery对象

•jQuery核心函数【3.26.html】

■jQucry(exprcssion|,context]):

这个函数接收一个包含CSS选择器的字符串,然后用这个字符串去匹配一组

元素。jQuery的核心功能都是通过这个函数实现的。这个函数最基本的用法就

是向它传递一个表达式(通常由CSS选择器组成),然后根据这个表达式来

查找所有匹配的元素。CosoOo

■默认情况下,如果没有指定context参数,$()将在当前的HTML文档中查找DOM

元素;如果指定了context参数,如一个DOM元素集或jQuery对象,那就会在

这个context中查找。DYorF。

■例:在文档的第一个表单中.查找所有的单选按钮(即:tvne值为radio的innut

元素)。($(”iiiDut:radin”,docunient.fo门

■jQuery(elements)

♦将一个或多个DOM元素转化为jQuery对象。

.例:设置页面背景色。($(documcn〔.body).css("background","black");)

ESrme。

例:隐藏一个表单中所有元素。($(myForm.elcmenls).hidc())

jQuery(html[,ownerDocument]):该函数根据html参数(该参数是一个html字符串)

创建一个或多个DOM对象,返回包装这些DOM对象的jQuery对象。其中

ownerDocument是可选参数,用于指定创建DOM元素所在的文档。3HUdO。

jQuery(html3props):该函数根据html参数创建一个或

多个DOM对象,返回包装这些DOM对象的jQuery对象。

其中props是一个形如{prop:value,prop2:value}的对象,

该对象指定的属性将被附加到HTML字符串所创建的DOM

对象上。x1ae4o

jQuery(callback):这种用法是$(document).read()的简写,

其中callback指定一个函数,在页面加载完成时自动触发

callback。例:$(function(){alert("页面加载完

成!”)});4gDql。

2.2ASP.NET语言的发展

1996年,ASP1.0诞生,它的诞生给Web开发界带来了福音。它作为HS的附属产

品免费发送,并且不久就在Windows平台上广泛使用⑵。早期的Web开发是十

分繁琐的,以至于要制作一个简单的动态页面都需要编写大量的代码才能完成,

而ASP却允许使用VBScript这样简单的脚本语言,执行嵌在HTML网页中的代

码,在进行程序设计时可以使用它的内部组件来实现一些高级的功能。它的最大

贡献在于它的ADO(ActiveXDataObject),使得对数据库的操作十分简单,进

行动态网页设计也变成了一件轻松的事情[3]。Z4Iiho

1998年,微软发布了ASP2.Oo与ASP1.0的主要区别在于它的外部组件是可

以初始化的。这样,在ASP程序内部的所有组件都有了自己的独立内存空间,并

可以进行事务处理。NpN6no

2000年,随着Windows2000的发行,它内带的ASP3.0也开始流行。与

ASP2.0的主要区别是它使用了C0M+,并且效果提高,版本稳定。jowTa。

2000年7月,ASP.NET发行。ASP.NET不是ASP的简单升级,而是微软推出

的新一代ActiveServerPagesoASP.NET是微软发展的新的体系结构.NET的一

部分,其中全新的技术架构会让每个人员的编程生活变得更为简单,Web应用程

序的开发人员使用这个开发环境可以实现更加模块化、功能更强大的应用程序

的编程[4]。goh4Q©

221ASP.NET语言的特色

网页的交互作用是通过CGT来实现的。CGI程序的伸缩性不是很理想,因

为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来

编写CGI程序的语言的解释器编译进你的Web服务器[5]。6NeD70

ASP.NET是MicroSoft.NET的一部分,作为战略产品,微软为ASP.NET设计

了这样一些策略:易于写出结构清晰的代码,代码易于重用和共享,可用编译类

语言编写等等,目的是让程序员更容易的开发出Web应用程序,满足计算向

Web转移的战略方向的需要[6]。N7nSpo

ASP.NET不仅仅是ActiveServerPage(ASP)的下一个版本,而且是一

种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的

Web应用程序。ASP.NET提供许多比现在的Web开发模式强大的优势。

IT84bo

2.2.2SQLServer2000

SQLServer是一个关系数据库管理系统,它最初是由MicrosoftSybase和

Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本,在

WindowsNT推出后Microsoft与Sybase在SQLServer的开发上就分道扬

镶了[7]。Microsoft将SQLServer移植到JWindowsNT系统上,专注于开

发推广SQLServer的WindowsNT版本,Sybase则较专注于SQLServer

在UNIX操作系统上的应用。在本书中介绍的是MicrosoftSQLServer以后

简称为或是公

SQLServerMSSQLServeroSQLServer2000Microsoft

司推出的SQLServer数据库管理系统的较新版本,该版本继承了SQLServer

7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便可伸缩性好

与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows2000的膝

上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种

平台使用。

[8]9zjkvo

第3章总体设计

3.1业务流程图

根据系统的需求分析和可行性分析,画出图书馆管理系统的系统流程图,如图3-1

所示。

读者

图3T系统流程图

3.2系统功能结构

根据图书馆管理系统的特点,可以将其分为系统设置、读者管理、图书管理、

图书借还、系统查询等5个部分,其中各个部分及其包括的具体功能模块如图3-2

所示。OCFYxo

图3-2系统功能模块

3.3数据库设计

331数据总体结构设计

整个系统所包括的所有信息包含图书信息、读者信息、图书借阅

信息、图书归还信息、管理员信息、读者类型信息、

图书类型信息。可将信息抽象为下列系统所需要的

数据项和数据结构:fJbKTo

(1)图书信息(图书编号,图书名称,图书类型,作者,译者,

ISBN号,价格,出版社,所在书架,入库时间,

操作员)HBIKCo

(2)图书类型(图书编号,名称,可借阅天数)

(3)读者信息(编号,姓名,性别,借阅证编号,读者类型,出

生年月,有效证件,证件号码,登记日期,电话,邮箱,操作员)

y3ITMo

(4)读者类型1名称,可借阅图书本数)

(5)图书借阅信息(图书编号,读者ID,借出时间,应还时间,

是否归还,操作员)

(6)图书归还信息(图书编号,读者ID,归还时间,操作员)

(7)管理员信息(名称,密码);图书馆书架信息(名称);出版社信

息;权限信息

(8)图书馆信息(编号,名称,馆长,电话,地址,邮箱,创建

日期,简介)

在这里使用E-R图描述了图书馆管理系统的数据模型。下图标识

涉及的实体及关系°

332图书信息表结构设计

图书馆馆藏中图书的信息主要在图书信息表中反映出来,在一

本书入库时,就会由操作员添加它们的相关信息。系统借助本表来完

成图书信息的查询c比如出版社则为出版该书出版社.图书入库时间

显示图书进入图书馆的时间。hrAOWo

表的具体结果如下:

表6.1图书信息表tb_bookinfo

字段名称数据类型字段长度是否为空说明

barcodeVarchar30NoKey

booknameVarchar70No书名

authorVcirchar30Yes作者

translatorVarchar30Yes译者

ISBNVcirchar20No出版社

8,2

priceFloatNo图书价格

bookcaseVarchar10No图书所在书架

pressVarchar70No出版社

intimeDateNo图书入库时间

operatorVarchar30No操作员

pageInt10Yes图书页码

333图书类型信息表结构设计

图书总是分为很多类型,比如社科,比如

文学,该表的主要内容就是为图书进行分类,可借阅天数反映了该

种类型图书的可借阅天数。表的具体结构设计如下:lskOL。

表6.2图书类型信息表tb_booktype

字段名称数据类型字段长度是否为空说明

IDInt10NoKey

booknameVarchar30No书名

DaysInt10No可借阅天数

3.3.4读者信息表结构设计

该表设计了就是为了读者进行分类,而且不同类型的读者可借阅图

书的数据是不同的。在此表中,还可以对各种类型读者的可借阅图书

数据进行修改。表的具体结构设计如下:QBE5Z。

表6.3读者信息表tb_reader

字段名称数据类型字段长度是否为空说明

Idint10NoKey

Namevarchar20No姓名

Sexvarchar4No性别

barcodevarchar30No借阅证编号

readertypevarchar11No读者类型

Telvarchar20Yes电话

e-mailvarchar100Yes邮箱

paperTypevarchar10No证件类型

PaperNO.Varchar20No证件号码

birthdaydateYes出生日期

intimedateNo登记时间

operatorvarchar30No操作员

3.3.5读者类型信息表结构设计

不同类型的读者拥有不同的权限,而可借阅图书数据也由其权限规

定。本表就是对不同类型读者进行分类的表。表的结构设计如

下:EQeVp。

表6.4读者类型信息表tb_readertype

字段名称数据类型字段长度是否为空说明

IDint10NoKey

readernamevarchar50No姓名

numberint4No可借图书本数

3.3.6图书借阅信息表结构设计

当一本书入库了之后,也就有了其相关的信息,比如入借阅时间,

归还时间。本表记录的就是这些信息。记录了图书的状态,是被借出

还是被归还。表的结构设计如下JZ1DJ。

表6.5图书借阅信息表tb_boirow

字段名称数据类型字段长度是否为空说明

II)Int10NoKey

roadcrIDVarchar10No借阅证编号

book11)Int10No图书编号

borrowTimeDateNo结出时间

backTimeDateNo应归还时间

operatorVarchar30No操作员

ifbackTinyint1No是否归还

337图书归还信息表结构设计

该表的主要作用就是记录图书应该被归还的时间,除此之外,把图

书与借阅者联系起来应该也是它的一个功能。表的结构设计如下

表:S8Yb7。

表6.6图书归还信息表tb_giveback

字段名称数据类型字段长度是否为空说明

IDInt10NoKey

readerlDVarchar11No借阅证编号

bookIDInt11No图书编号

backTimeDateNo归还时间

operatorvarchar30No操作员

338管理员信息表结构设计

用于记录信息,包含1D和登陆密码表的具体结构设计见下表:

表6.7系统用户信息表tb_mamager

字段名称数据类型字段长度是否为空说明

IDInt10NoKey

namevarchar30No用户

密码|

passwordvarchar30No

339图书馆信息表结构设计

包含图书馆的诸多信息,方便读者对图书馆的了解。表的具体设计如

下:

表6.8图书馆信息表tbjibrary

字段名称数据类型字段长度是否为空说明

IDInt10NoKey

librarynamevarchar50No图书馆馆名

curatorvarchar10No馆长

telvarchar20Yes结出时间

addressvarchar100No应归还时间

e-mai1varchar100No邮箱

urlvarchar100No图书馆网站

createDatevarcharNo创馆时间

introduceTextYes图书馆简介

1151

3.3.10书架信息表结构设计

该表存储的为书架信息,表的具体设计如下:

表6.9书架信息表tb_bookcase

字段名称数据类型字段长度是否为空说明

IDInt10NoKey

namevarchar30No书架名称

第4章详细设计

4.1登录模块实现

登录模块主要功能是实现用户的登陆,一般是从系统首页登陆然后

进入系统。具体操作为,打开浏览器,然后在地址栏中输入,即能看

到系统首页了。根据提示输入用户名及其密码,再按确定,即可立即

进入系统了。8CULco

struts,xml

<?xmlversion="1.0〃encoding="UTF-8”?>

<!DOCTYPEstrutsPUBLIC

〃一〃ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN”

“truts-2.0.did>>

〈struts)

<constantname="struts.objectFactory〃value=/,springz,></constant>

z,,,

<constantname二〃struts,i18n.encoding“value=GBKX/constant>

<packagename二〃user”extends="json-default”〉

<actionname二〃check"class二〃checkBean"method=〃check”〉

<resulttype=,/jsonz/></result>

</action>

</package>

</struts>

<?xmlversion=〃1.0〃encoding二〃UTF-8”?>

<!—

-ApplicationcontextdefinitionforJPetStore,sbusinesslayer.

-ContainsbeanreferencestothetransactionmanagerandtotheDAOsin

dataAccessContext-local/jta.xml(seeweb.xml's

,,contextConfigLocation,/).

—>

<beansxmlns=〃〃

xmlns:xsi=

xmlns:aop="〃

xmlns:tx二〃”

xsi:schcnaLocation=/,

〃)

<beanid二〃dataSource”

class=〃org.apache,commons,dbcp.BasicDataSourcc,,>

<propertyname二〃driverClassName”

value=〃com.mysql.jdbc.Driver”)

</property>

<propertyname二〃url〃

valueijdbc:nysql://localhost:3306/nydata〃>

〈/property)

<propcrtyname="username”valuc=,zroot*></propcrty>

<propertyname="password"value二〃root"></property>

</bean>

<beanid=〃sessionFactory”

class=〃org.springframework,orm.hibernate3.LocalSessionFactoryBean/z

>

<propertyname=,,dataSource,,>

<refbean二〃dataSource”/>

</property>

<propertyname=,,hibernateProperties,,>

<props>

<propkey="hibernate,dialect”〉

org.hibernate,dialect.MySQLDialect

</prop>

</props>

</property>

<propcrtyname=",mappingResources,,>

〈list〉

<value>com/mybbs/vo/Question.hbm.xml</value>

<value>com/mybbs/vo/Admin.hbm.xml〈/value)

<valuc>com/mybbs/vo/Answcr.hbm.xml</value>

<value>com/m)?bbs/vo/User.hbm.xml</value></list>

</property></bean>

<beanid="transactionManager”

class=,,org.springframework,orm.hibernate3.HibernateTransactionManager

〃〉

<propertyname=,,sessionFactory,,>

<refbcan=//sessionFactory///>

</property>

</bean>

<tx:adviceid=,,txAdvice/,transaction-manager=z,transactionManag3r,z>

<tx:attributes>

<tx:methodname="check*“propagation="REQUIRED”/)

<tx:methodname=〃add*〃propagation二〃REQUIRED”/)

<tx:mcthodname二〃updata*〃propagation="REQUIRED'/)

<tx:methodname=〃register*“propagation=,,REQUIRED,,/>

<tx:mcthodname二〃look*“propagation="REQUIRED'/〉

<tx:methodnamei*“read-only="true"/〉

</tx:attributes>

</tx:advice>

<aop:config>

<aop:pointcutid=//allManagerMethodexpression=//execution(*

com.mybbs.manager.*.*(..))”/>

<aop:advisorpointcut-ref=/,allManagerMethod〃advice-ref=z/txAdvice”/>

</aop:config>

<beanid二〃userDAO"class="com.mybbs.dao.UserDAOTmp"abstract二〃false”

lazy-init="default"autowire="default"dependency-check二〃default〃>

<propertyname=,,sessionFactory,,>

<refbean二〃sessionFactory”/>

</property>

</bean>

<beanid=z,userManager,/class=/,com.mybbs.manager.UserManagerlmp"

abstract="false"lazy-init="default“autowire="default”

dependency-check=,,defaultz,>

<propertyname=z,userDAO,,>

<rcfbean="uscrDAO”/>

</property>

</bean>

<beanid二〃checkBean"class二〃com.mybbs.action.UserActiorT

abstract二〃false"lazy-init=〃default"aulowire="default”

dependency-check二〃default〃scope="prototype”)

<propertyname二〃userManager”>

<refbean=//userManagcr,//>

</property>

</bean>

</beans>

UserAction.java(Action)

(只有一个userManager的set方法没有get方法。写在spring注入是会同时

提供get和set方法,若使用json执行action后返回json数据,此时就会出

现上面的异常错误。解决办法是,去掉get方法。UkZC8。

packagecom.mybbs.action;

importcom.mybbs.manager.UserManager;

importcom.mybbs.vo.User;

importcom.opensymphony.xwork2.ActionSupport;

publicclassUserActionextendsActionSupport{

UserManageruserManager;

Useruser;

publicStringinfo;

publicUsergetUsery(){

returnusery;

}

publicvoidsetUsery(Userusery){

this.usery=usery;

)

publicStringcheck9throwsException{

System.out.printin(username);

Useruser『userManager.check(user.getUsernameO);

ID{

info二〃恭喜你可以使用〃:

}else{

info二〃用户已经存在〃;

)

System.out.printin(info);

returnSUCCESS:

}

publicvoidsetUserManager(UserManageruserManager){

this.userManager=userManager;

publicUsergetUser;)

returnuser;

publicvoidsetUser;Useruser){

this.user=user;

)

publicvoidsetInfo(Stringinfo){

this,info=info;

}

publicStringgetInfo(){

returninfo;

)

)

index,jsp

<%@pagelanguage二〃java"pageEncoding="GBK"%>

<%

Stringpath=request.gotContextPath():

StringbasePath=

request.getScheme()-〃:〃〃+request.getServerName()+〃:〃+request.getServ

erPort()+path+〃/”;

%>

<html>

<head>

<basehref=//<%=basePath%>,,>

<title>MyJSP*register,jsp)startingpage</title>

<scripttype="text/javascript”

src=z,<%=path%>/js/jquery-l[1].2.6.pack.jsx></script>

<scripttype=,/text/javascript,,>

$(document).ready(

function(){

$(//#check,/).blur(function(){

varparams=$(〃#check〃).serialize();

$.ajax({

url:"check,action”,

type:〃post〃,

dataType:〃json〃,

data:params,

success:updatepage

});

});

});

functionupdate_page(info){

varjson=eval(info):

varstr=json.info;

$(〃#information〃).html(str);

)

</script>

</head>

<body>

<formaction="register,action*method="post"〉

<tableborder=T>

<tr>

<td>用户名:<inputid="check“name="username"type="text"></td>

<td>

<divid=*information*X/div>

</td>

</tr>

<tr>

<td>密码:<inputname=z,user.password*type="password"X/td>

</tr>

<tr>

<td>年龄:<inputname="user,age“type="text"X/td>

</tr>

<tr>

<td><inputtype=*submit*value="注册"》

<inputtype=*reset*value="重置"></td>

</tr>

<br>

<ahref="list,action”)查看所有用户</a>

</table>

</form>

</body>

</html>jmoUNo

4.2图书馆主界面模块的实现

在该图书馆管理系统主界面中有首页、日常工作(下拉表中有借

阅处理、还书处理、图书续借)、读者资料维护(读者类型管理、读

者档案管理)、图书资料维护(图书类型设置、图书档案管理)、查询

(图书资料查询、借阅历史记录查询、借阅到期提醒)、系统管理(图

书馆信息、管理员管理、书架设置)、更改口令、退出系统。

左端显示今日日期时间,中间显示当前登录用户名,右上端显

示两个链接“刷新页面”、“关闭系统

系统首页主要显示了图书借阅排行榜。利于查看借阅情况,读者对哪

些图书感兴趣,便于管理图书。图书馆主界面如下图4.3所示:

b74tVo

期新页面,关闭系统

冏*然管理系统

•"WWXVWXW:FN¥「/工】:二匚二

LBKARYMANAGESYSTEM-L

当前登录用户:adrwin

当前位比:首页》>

n工L借阅排行榜ReaderBo^Sort

排名圄书条形码图书名称图书类里书架出版社作者定价阮)借同次数

197873

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论