JSP基于WEB的圖書館借閱系統(tǒng)的設計與實現(xiàn)(源代碼+論文)
JSP基于WEB的圖書館借閱系統(tǒng)的設計與實現(xiàn)(源代碼+論文),JSP,基于,WEB,圖書館,借閱,系統(tǒng),設計,實現(xiàn),源代碼,論文
分類號:TP311.1 U D C:D10621-408-(2007) 6014-0
密 級:公 開 編 號:2003215042
成都信息工程學院
學位論文
基于WEB的圖書館借閱系統(tǒng)的設計與實現(xiàn)
論文作者姓名:
歐翼
申請學位專業(yè):
網(wǎng)絡工程
申請學位類別:
工學學士
指導教師姓名(職稱):
楊上金(副研究員)
論文提交日期:
2007年06月10日
基于WEB的圖書館借閱系統(tǒng)的設計與實現(xiàn)
摘 要
隨著電腦、手機等信息工具的普及,人們能更加完善、快捷地處理信息數(shù)據(jù)。在圖書館的日常運作中,由于圖書借閱和用戶查詢次數(shù)繁多,需要進行繁雜的信息數(shù)據(jù)管理。
為了能更高效、快捷、穩(wěn)定地管理圖書館的數(shù)據(jù)信息,本文設計并實現(xiàn)了一套基于Web的圖書管理借閱系統(tǒng)。系統(tǒng)采用Browser/Server運行模式,基于JAVA開發(fā)平臺,并使用SQL Server作為后臺數(shù)據(jù)庫系統(tǒng)。系統(tǒng)主要實現(xiàn)了以下幾個功能:查詢圖書、借還圖書、圖書管理、讀者信息管理,讀者留言、公告欄等。讀者只需要通過瀏覽器訪問本系統(tǒng),就可以輕松實現(xiàn)圖書查詢、圖書借還等操作。同樣,圖書管理員也可以使用本系統(tǒng)方便快捷地完成圖書館的信息數(shù)據(jù)管理工作。另外,由于手機使用的普及,本系統(tǒng)中還新加入了WAP查詢功能,借助于無線網(wǎng)絡,讀者可以通過使用手機,更加方便、快捷地完成圖書查詢的工作,這為讀者帶來了更多便捷。
關(guān)鍵詞:圖書管理系統(tǒng);WAP;JSP
Design and Implementation of Library Management System Based on WEB
Abstract
With the information tools becoming so popular, such as computer and cell phone etc, people can handle the information data more perfectly and rapidly. In the daily library operation, as book-borrowed and the ones searched being so frequently, the library has to deal with a great many complicated data.
For the data management more efficiently, fast and reliably, the thesis designs and implements a library management system which is based on Web. On the Java platform, the system adopts the Browser/Server model, which takes SQL Server as a database server. The system mainly carry out the following functions: searching for borrowing and returning, book management, reader information management, reads’ messages, and the library bulletin. While the readers interview the system through the browser, they can easily search for a book or borrow and return a book etc. Simultaneously, the assistant is able to control the library information datum. In addition, the system is still added a searching function based WAP, by which the readers can search for a book more conveniently and rapidly, by means of wireless network. Such a function brings the readers a great deal convenience.
Key words: Library Management System; WAP; JSP
目 錄
論文總頁數(shù):22頁
1 引 言 1
1.1 課題背景 1
1.2 課題研究意義 1
2 需求分析 1
2.1 應用需求分析 1
2.2 設計模式 2
2.3 開發(fā)環(huán)境 3
2.4 開發(fā)工具 3
3 系統(tǒng)總體設計 4
3.1 系統(tǒng)概要 4
3.2 功能模塊構(gòu)成 5
3.3 功能流程圖 5
3.3.1 查詢功能流程圖 5
3.3.2 借還圖書功能流程圖 6
3.4 數(shù)據(jù)庫設計 6
3.4.1 數(shù)據(jù)庫概要 6
3.4.2 數(shù)據(jù)庫邏輯設計 6
3.4.3 數(shù)據(jù)庫之間關(guān)聯(lián)設計 8
4 系統(tǒng)詳細設計與實現(xiàn) 9
4.1 發(fā)布首頁公告功能模塊 11
4.2 留言板功能模塊 12
4.2.1 發(fā)布留言模塊 13
4.2.2 回復留言模塊 14
4.3 系統(tǒng)管理員登錄功能模塊 14
4.4 圖書查詢功能模塊 15
4.4.1 前臺圖書查詢 15
4.4.2 后臺所有圖書查詢 16
4.4.3 WAP查詢 17
4.5 其余功能模塊 18
5 測試 19
結(jié) 論 19
參考文獻 20
致 謝 21
聲 明 22
1 引 言
1.1 課題背景
當今時代是飛速發(fā)展的信息時代,計算機與信息處理技術(shù)日漸成熟。隨著Internet和計算機網(wǎng)絡技術(shù)的蓬勃發(fā)展,Web技術(shù)得到了迅猛地發(fā)展。在科學技術(shù)高速發(fā)展的今天,信息技術(shù)已經(jīng)滲透到社會發(fā)展的每一個領(lǐng)域,而計算機技術(shù)為工作提供了方便性、高效性、靈活性及安全性,尤其Web技術(shù)的高速發(fā)展將計算機的應用提升到另一個層次。而圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,利用計算機來管理復雜的信息,能夠充分發(fā)揮計算機的優(yōu)越性。
1.2 課題研究意義
盡管有的圖書館有圖書管理系統(tǒng),但是僅僅限于圖書管理員使用,屬于單機系統(tǒng),對于Internet服務幾乎沒有,更不用說是WAP等服務。這樣的圖書管理系統(tǒng)根本沒有發(fā)揮它的效力,資源閑置比較突出。
基于這此問題,有必要建立一個圖書管理系統(tǒng)有效的支持WEB和WAP的服務,以使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,提高信息處理的速度和準確性,并且能通過Internet能夠及時、準確修改圖書情況。
本系統(tǒng)的設計主要有效的支持WEB訪問和WAP訪問,使得資源利用最大化用戶只需要通過瀏覽器或者手機WAP訪問就可以實現(xiàn)操作,操作簡單靈活。
2 需求分析
2.1 應用需求分析
圖書管理系統(tǒng)需要滿足來自兩方面的需求,分別是圖書借閱者和圖書館工作人員。圖書借閱者的需求是查詢圖書館所存的圖書;圖書館工作人員對圖書借閱者的借閱及還書要求進行操作,同時形成借書或還書操作,有修改圖書借閱者借書和還書記錄的權(quán)限,實現(xiàn)對圖書信息、借閱者信息、總體借閱情況信息的管理和統(tǒng)計、工作人員和管理人員信息查看及維護。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計圖書的基本信息;瀏覽、查詢、統(tǒng)計、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、統(tǒng)計圖書館的借閱信息,發(fā)布公告,回復留言,以下就是本系統(tǒng)實現(xiàn)的功能。
1.設計不同用戶的操作權(quán)限和登陸方法
2.對所有用戶開放的圖書查詢
3.查詢及統(tǒng)計各種信息
4.維護圖書信息
5.維護工作人員和管理員信息
6.維護借閱者信息
7.處理信息的完整性
8.實現(xiàn)WAP手機網(wǎng)上圖書查詢
2.2 設計模式
設計模式是面向?qū)ο蟮某绦蛟O計人員用來解決編程問題的一種形式化表示。本系統(tǒng)開發(fā)采用目前一種目前廣泛流行的軟件設計模式MVC。MVC(Model-View - Controller)應用程序結(jié)構(gòu)被用來分析分布式應用程序的特征。這種抽象結(jié)構(gòu)能有助于將應用程序分割成若干邏輯部件,使程序設計變得更加容易。把一個應用的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,這樣一個應用被分成三個層——模型層、視圖層、控制層。
圖1 MVC模式
MVC模式的出現(xiàn),很好的解決了傳統(tǒng)開發(fā)WEB應用方式中存在的問題。M代表模型(Model),包含完成任務所需要的所有的行為和數(shù)據(jù);V代表視圖(View)界面,顯示模型提供的數(shù)據(jù);C代表控制器(Controller),它將模型映射到界面中,處理用戶的輸入并響應請求。其模型關(guān)系如圖所示。在MVC模式中,三層各盡其職、相對獨立,各層內(nèi)部的改變不會影響到其它層,從而降低了數(shù)據(jù)表達、數(shù)據(jù)描述和應用操作的耦合度,也能更好的實現(xiàn)開發(fā)中的分工,加快工程進度。
2.3 開發(fā)環(huán)境
表1 開發(fā)環(huán)境
種別
軟件
版本
OS
Windows
2000
DB
My-sql
WebServer
JDK
1.4.0
Tomcat
4.0.6
瀏覽器
Internet Explorer
6.0以上
MySQL:
MySQL是一個多用戶、多線程的SQL數(shù)據(jù)庫,是一個客戶機/服務器結(jié)構(gòu)的應用,它由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成。MySQL的快速和靈活性足以滿足一個網(wǎng)站的信息管理工作。 因為許可證的靈活,任何人都可以以任何目的免費使用,修改,和分發(fā) PostgreSQL,不管是私用,商用,還是學術(shù)研究使用。命令執(zhí)行速度快,也許是現(xiàn)今最快的;簡單有效的用戶特權(quán)系統(tǒng)。MySQL使用完全免費,使得其運用范圍更加廣泛。
TOMCAT:
Tomcat服務器是Apache Group Jakarta小組開發(fā)的一個免費服務器軟件,適合于嵌入Apache中使用,而且,它的源代碼可以免費獲得,你可以自由地對它進行擴充。Tomcat服務器的兼容性很好,如WebLogic服務器采用其為Web服務器引擎,Jbuilder將其作為標準的測試服務器,Sun公司也將其作為JSP技術(shù)應用的示例服務器。但是Tomcat服務器有眾多大軟件公司的支持,而且服務器的性能穩(wěn)定,其發(fā)展前景很好。
2.4 開發(fā)工具
Eclipse是一個非常優(yōu)秀的集成開發(fā)環(huán)境,它旨在簡化用于多操作系統(tǒng)軟件工具的開發(fā)過程,可以用于管理多種開發(fā)任務,其中包括測試、性能調(diào)整以及程序調(diào)試等,而且還可以集成來自多個供應商的第三方應用程序開發(fā)工具。通過集成大量的插件,Eclipse的功能可以不斷擴展,以支持各種不同的應用。
Eclipse平臺是一個成熟的、精心設計的、可擴展的體系結(jié)構(gòu),其組成結(jié)構(gòu)如圖所示用 Eclipse開發(fā)的插件,可以適應多平臺的需要 , 且具有良好的可擴展性和靈活性。
Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。
雖然大多數(shù)用戶很樂于將 Eclipse 當作 Java IDE 來使用,但 Eclipse 的目標不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Enviro nment,PDE),這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣東西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。
3 系統(tǒng)總體設計
3.1 系統(tǒng)概要
本圖書管理系統(tǒng)總體上分為前臺頁面顯示和后臺管理。前臺頁面(即本書圖書管理系統(tǒng)的首頁)實現(xiàn)了公告的顯示圖書查詢,留言建議三大功能。而后臺的頁面則集成了圖書管理中所需的功能和錄入新書到庫,辦公圖書,借還手續(xù),查詢圖書等等。平時圖書管理人員的工作都是在后臺中完成的。前臺是為了師生顯示的。師生們可以看到圖書管理人員發(fā)布的最新公告信息;并可以查詢自己感興趣的圖書,也可以給學校的圖書管理人員留言提議。相對應的后臺是針對學校圖書管理人員,后臺的頁面都加密,如果不正常登錄是進入不了后臺管理頁面的,后臺功能具體包括:發(fā)布首頁公告,添加新書到庫等等。
3.2 功能模塊構(gòu)成
圖2 功能結(jié)構(gòu)圖
3.3 功能流程圖
3.3.1 查詢功能流程圖
WEB頁面前臺查詢界面
接收查詢條件,從數(shù)據(jù)庫查詢匹配信息
返回結(jié)果,在WEB頁面顯示
提交查詢條件
WAP查詢界面
接收查詢條件,從數(shù)據(jù)庫查詢匹配信息
返回結(jié)果,在WAP頁面顯示
提交查詢條件
圖3 基于WEB和WAP的查詢流程圖
3.3.2 借還圖書功能流程圖
圖4 借還書流程圖
3.4 數(shù)據(jù)庫設計
3.4.1 數(shù)據(jù)庫概要
考慮該系統(tǒng)的定位與現(xiàn)有技術(shù)力量,系統(tǒng)采用MY-SQL作為系統(tǒng)的后臺數(shù)據(jù)庫開發(fā)環(huán)境,數(shù)據(jù)庫命名標準與規(guī)范均采用英文單詞標寫,以便日后對其維護修改.
3.4.2 數(shù)據(jù)庫邏輯設計
表2所示為管理員表(admin),記錄了系統(tǒng)用戶的角色和密碼,判斷是否允許其登錄管理員界面。
表2 admin數(shù)據(jù)庫
列名
數(shù)據(jù)類型
長度
id(PK)
Int
11
Username
Varchar
20
Password
Varchar
20
表3所示為留言信息表(guestbook),記錄了游客用戶姓名,發(fā)表的留言信息,發(fā)表時間和管理員回復信息,其作用就是實現(xiàn)留言板功能。
表3 guest數(shù)據(jù)庫
列名
數(shù)據(jù)類型
長度
id(PK)
Int
11
Nickname
Varchar
50
Content
Mediumtext
NO
Yourtime
Datatime
NO
Reply
Varchar
50
表4所示為首頁公告表(notice),記錄了發(fā)布信息和發(fā)布時間,其作用就是支持公告欄的功能實現(xiàn)。
表4 notice數(shù)據(jù)庫
列名
數(shù)據(jù)類型
長度
id(PK)
Int
11
Content
Mediumtext
NO
Createtime
Datatime
NO
表5所示為圖書信息表(book),記錄了圖書書名,書號,圖書類型,總量。其作用就是保存錄入到庫的圖書資料,以便借閱和查詢。
表5 book數(shù)據(jù)庫
列名
數(shù)據(jù)類型
長度
Id
Int
11
Title
Varchar
100
bookID(PK)
Varchar
40
Type
Varchar
40
Quantity
Int
11
表6所示為用戶借閱圖書信息表(borrowbook),記錄了借閱證號,借書開始日期,結(jié)束日期,書號。實現(xiàn)本系統(tǒng)核心功能-借書,還書的數(shù)據(jù)庫應用。
表6 borrowbook數(shù)據(jù)庫
列名
數(shù)據(jù)類型
長度
Id(PK)
Int
11
BorrowID
Varchar
20
BeginTime
Datetime
NO
EndTime
Datetime
NO
BookID
Int
40
表7所示為借書證用戶信息表(user),記錄了借書人姓名,性別,年齡,所在院系和所借書的書號。實現(xiàn)其程序主體的數(shù)據(jù)庫調(diào)用。
表7 uesr數(shù)據(jù)庫
列名
數(shù)據(jù)類型
長度
Id(PK)
Int
11
Name
Varchar
20
Sex
Char
2
Age
Int
11
Department
Varchar
20
BorrowID
Varchar
20
3.4.3 數(shù)據(jù)庫之間關(guān)聯(lián)設計
這個圖書管理系統(tǒng)是基于MySQL設計的,然后通過在JSP中向數(shù)據(jù)庫發(fā)送相應的SQL指令,從而實現(xiàn)對圖書的全面管理..對于數(shù)據(jù)庫設計這一流程中,最重要的一步是對user表、book表、borrowBook表三張表的設計以及它們之間的關(guān)系.這是這個圖書管理系統(tǒng)中的一個關(guān)鍵技術(shù),以下就是數(shù)據(jù)庫關(guān)聯(lián)圖
圖5數(shù)據(jù)庫關(guān)系
4 系統(tǒng)詳細設計與實現(xiàn)
JavaBean技術(shù)是一種基于Java的組件技術(shù),JavaBean組件可以用來執(zhí)行復雜的計算任務,或負責與數(shù)據(jù)庫的交互以及數(shù)據(jù)的提取等,是解決代碼重用問題的一種策略。
為了創(chuàng)建和使用Java軟件組件,JavaBean被實現(xiàn)為一種獨立于平臺和結(jié)構(gòu)的應用程序接口,它的實現(xiàn)可以忽略內(nèi)部的結(jié)構(gòu)及細節(jié)問題,只需要定義其外部的特征及對外功能就行。其中,屬性、方法和事件三種接口可以獨立對外進行開發(fā)。
JavaBean的實質(zhì)就是一個.class文件,也可以成為類文件。JavaBean以binary格式保存,可以保護Java源代碼不容易被他人抄襲。
下面是本系統(tǒng)中主要的JavaBean。
select函數(shù)功能:查詢數(shù)據(jù)
public int select(String sql){ int k=-10;
this.init(this.getConn());
try
{
k=0;
rs=stmt.executeQuery(sql);
if (rs.next())
{
k=k+1;
}
}
catch (Exception e)
{
k=-1;
System.out.println("select():"+e.getMessage());
this.close();
}
this.close();
return k;
}
update函數(shù)功能:更新\刪除\插入 數(shù)據(jù)
public int update(String sql){
int k=-10;
this.init(this.getConn());
try
{
k=0;
k=stmt.executeUpdate(sql);
}
catch (Exception e)
{
k=-1;
System.out.println("update():"+e.getMessage());
}
this.close();
return k;
}
chStr函數(shù)功能:解決亂碼
Java的內(nèi)核和class文件是基于unicode的,這使Java程序具有良好的跨平臺性,但也帶來了一些中文亂碼問題的麻煩。原因主要有兩方面,Java文件本身編譯時產(chǎn)生的亂碼問題和Java程序與其他媒介交互產(chǎn)生的亂碼問題。JSP以Java為基礎(chǔ),自然也繼承了Java所遇到的中文亂碼問題。
但在使用數(shù)據(jù)庫時,有些Driver會將從數(shù)據(jù)庫中讀出的中文自動的轉(zhuǎn)換成Unicode,而有些不會,如果Driver做過轉(zhuǎn)換而系統(tǒng)又再做一次,就會出現(xiàn)問題,從數(shù)據(jù)庫中讀出的中文字符不會正確顯示,而是出現(xiàn)“??”。
而且,在表單提交或是URL傳參數(shù)值時依然是按照Web容器在內(nèi)部默認的字符編碼格式ISO 8859-1來進行處理的。同時,幾乎所有的瀏覽器在傳遞參數(shù)時都是默認以UTF-8的方式來傳遞參數(shù)的。所以,雖然在java源文件在出入口的地方指定了正確的編碼方式,但其在容器內(nèi)部運行是還是以ISO 8859-1來處理的,這樣導致在提交的表單中若有中文字符,在存入數(shù)據(jù)庫時使用的是ISO 8859-1,而本系統(tǒng)使用的My SQL數(shù)據(jù)庫默認使用的是GBK編碼,這樣導致的結(jié)果就是存到數(shù)據(jù)庫的數(shù)據(jù)因編碼不同而出現(xiàn)亂碼現(xiàn)象 。
調(diào)用字符編碼轉(zhuǎn)換Bean中的方法,對字符編碼進行強制轉(zhuǎn)換,使存放到數(shù)據(jù)庫的數(shù)據(jù)編碼格式與數(shù)據(jù)庫的內(nèi)部編碼格式統(tǒng)一,解決了向數(shù)據(jù)庫中插入中文字符、將從數(shù)據(jù)庫中讀取的數(shù)據(jù)正確的顯示的問題,所以做了一個方法放在bean里面,代碼如下
public String chStr(String str){
try
{
byte[] temp=str.getBytes("ISO8859-1");
String temp2=new String(temp);
return temp2;
}catch(Exception e){System.out.println("chStr():"+e.getMessage());}
return "null";
}
4.1 發(fā)布首頁公告功能模塊
圖6首頁發(fā)布功能界面
在后臺管理中能自由發(fā)布首頁公告信息,來通知各種事情,其條目以滾動的形式來表現(xiàn)。
該功能的實現(xiàn)由admin_addnotice.jsp和admin_addnotice_post.jsp文件實現(xiàn)。
在admin_addnotice.jsp中主要是發(fā)布界面的編寫和傳輸notice內(nèi)容,本功能的核心程序放在admin_addnotice_post.jsp中,負責存儲內(nèi)容到數(shù)據(jù)庫和錯誤提示。
在admin_addnotice_post.jsp中關(guān)鍵代碼如下:
//從request獲取名為"content"的參數(shù)值
String content=request.getParameter("content");
//解決中文亂碼問題
String tcontent=addbook.chStr(content);
//合成SQL語句,將content的值傳入,作用為更新公告表
String sql="update notice set content='"+content+"',createtime=DEFAULT where id=1";
//申明一個int的變量temp
int temp=-2;
//如SQL執(zhí)行成功,temp>0,否則執(zhí)行失敗
temp=notice.update(sql);
4.2 留言板功能模塊
留言板功能模塊分為發(fā)布模塊和回復模塊。發(fā)布模塊在前臺完成,可以讓任何人留言,而回復模塊在后臺使用只允許管理員查看回復。
4.2.1 發(fā)布留言模塊
圖7 發(fā)布留言界面
本功能所有文件放在guest目錄下面,包含了guestbook_index.jsp,guestbook_postmessage.jsp,guestbook_save.jsp,guestbook_show.jsp,guestbook_viewmessage.jsp這5個文件,分別實現(xiàn)了留言板各個功能。
其主要代碼在guestbook_postmessage.jsp中.
//從request獲取名為"username"的參數(shù)值
String username=request.getParameter("username");
//從request獲取名為"content"的參數(shù)值
String content=request.getParameter("content");
//合成SQL語句,將username,content的值傳入nickname,content表中,作用為將留言板內(nèi)容放入數(shù)據(jù)庫中
String.sql="insert into guestbook (nickname,content) values('"+username+"','"+content+"')";
//判斷語句,如果username為空或者錯誤,content為空或者錯誤的時候。
if(username==null||username.equals("")||content==null||content.equals(""))
{
else{
int temp=-2;
//如SQL執(zhí)行成功,temp>0,否則執(zhí)行失敗
temp=guestbook.update(sql);
%>
//返回錯誤信息errorpage.jsp,顯示“請檢查你的輸入.請確保你輸入的信息的正確性!”錯誤信息文字以提示。
else{
session.setAttribute("error","請檢查你的輸入.請確保你輸入的信息的正確性!");
response.sendRedirect("../errorpage.jsp");
} }
%>
4.2.2 回復留言模塊
本功能主要是用于回復留言,由admin_guestbook_reply.jsp實現(xiàn).其實現(xiàn)方法與前面類似,不在累述。
4.3 系統(tǒng)管理員登錄功能模塊
圖8 管理員登錄界面
本功能涉及到圖書管理操作的jsp文件,為了方便全部把它們放在admin目錄里面,并且通過session防止非法登錄.把這個功能提取出來,單獨作為一個jsp文件,然后include到需要加密的jsp文件頭部.這樣如果非法用戶直接提交后臺URL,系統(tǒng)會將非法用戶直接轉(zhuǎn)到前臺首頁
本功能由admin_login.jsp和admin_logincheck.jsp實現(xiàn)
其主要代碼是在admin_logincheck.jsp中,如下
<%
//從request獲取名為"username"的參數(shù)值
String username=request.getParameter("username");
//從request獲取名為"password"的參數(shù)值
String password=request.getParameter("password");
//如果username為空或者錯誤,以及password為空或者錯誤。
if(username==null||username.equals("")||password==null||password.equals(""))
else{
//將username賦值到tusername,password賦值到tpassword
String tusername=logincheck.chStr(username);
String tpassword=logincheck.chStr(password);
//搜索數(shù)據(jù)庫中tusername和其對應的tpassword字段。
String sql="select * from admin where username='"+tusername+"' and password='"+tpassword+"'";
int temp=-2;
temp=logincheck.select(sql);
if(temp>0){
//表明驗證成功,進入admin_index.jsp,并將用戶定格為登錄用戶。
session.setAttribute("name",tusername);
response.sendRedirect("admin_index.jsp");
}else{
//驗證失敗,返回錯誤提示信息,并返回errorpage.jsp頁面。
session.setAttribute("error","請檢查你的用戶名和密碼!");
response.sendRedirect("../errorpage.jsp");
}}
%>
4.4 圖書查詢功能模塊
在前臺允許所有用戶對圖書館里面的書籍進行查詢,返回內(nèi)容包含書名,編號,分類和庫存幾個方面。
總的來說該功能是本系統(tǒng)最重要的核心功能之一。
4.4.1 前臺圖書查詢
圖9Web圖書查詢界面
圖10 查詢結(jié)果界面
圖9為前臺查詢界面,圖10為顯示界面主要是實現(xiàn)對圖書的查詢,內(nèi)容包括書名,圖書編號,分類,庫存量。
分別由searchbook.jsp和實現(xiàn)
其主要代碼在功能代碼在searchbook_post.jsp下,
查詢功能代碼:
<%
String sql="";
//解決中文亂碼
String keyword=request.getParameter("keyword");
String tkeyword=search.chStr(keyword);
//獲取參數(shù)名稱
String keytype=request.getParameter("type");
//如果按書名進行查詢
if(keytype.equals("booktitle")){sql="select * from book where title like '%"+tkeyword+"%'";}
//如果按書號進行查詢
else if(keytype.equals("bookid")){sql="select * from book where bookID like '%"+tkeyword+"%'";}
int temp=search.select(sql);
Connection conn=search.getConn();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
//表單顯示處理功能代碼:
while(rs.next()){
String booktitle=rs.getString(2);
String bookid=rs.getString(3);
String booktype=rs.getString(4);
int quantity=rs.getInt(5);
id++;
if(color=="#CCCCCC"){color="#999999";}
else{color="#CCCCCC";}
%>
4.4.2 后臺所有圖書查詢
在后臺運行中,除了前臺所擁有的查詢外,還提供直接查詢并允許對其修改和刪除,其界面由admin_viewallbooks.jsp顯示,而修改,刪除由其他文件實現(xiàn),其實現(xiàn)方法類似前臺查詢不在累述。
4.4.3 WAP查詢
圖11 WAP圖書查詢界面
Winwap是Slobtrot網(wǎng)站提供的WAP仿真工具。它完美的支持WML 1.0和1.1??梢詫ML頁面保存為HTML頁面。Winwap因此也成為了目前WAP網(wǎng)站開發(fā)人員使用最廣泛的模擬器。
圖9則是用Winwap模擬器打開的WAP圖書查詢界面。
其功能主要由wapresult來實現(xiàn),里面功能大多可參照以上的查詢功能實現(xiàn)。
其主要代碼如下
<%
//設置返回類型為WML
response.setContentType("text/vnd.wap.wml");
String result="";
if(request.getParameter("bookid")!=null){
String bookid=request.getParameter("bookid");
String sql="select * from book where bookid='"+bookid+"'";
Connection conn=guestreply.getConn();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
result+=rs.getString("title")+" Bookid:"+rs.getString("bookID")+" count:"+rs.getString("quantity")+"";
}
}
if(request.getParameter("bookname")!=null){
String bookname=request.getParameter("bookname");
String sql="select * from book where title='"+bookname+"'";
Connection conn=guestreply.getConn();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
result+=rs.getString("title")+" Bookid:"+rs.getString("bookID")+" count:"+rs.getString("quantity")+"";
}
}
%>
4.5 其余功能模塊
其余功能模塊實現(xiàn)方法同上面雷同,就不在詳細分析代碼,只簡單敘述。
借還手續(xù)功能模塊包含了借書功能模塊,還書功能模塊,借閱信息功能模塊,借書證管理功能模塊。借還手續(xù)功能模塊是另一個核心功能模塊。借書功能模塊通過輸入借書證號和圖書編號實現(xiàn)借書功能admin_borrowbook.jsp和admin_borrowbook_post.jsp文件實現(xiàn)。其主要功能在admin_borrowbook_post.jsp中實現(xiàn)。還書功能模塊主要實現(xiàn)對圖書的重新入庫和清理所借圖書人借書項目包含admin_returnbook.jsp,admin_returnbook_post.jsp和admin_returnbook_post_post.jsp三個文件。閱信息功能模塊為查詢所有借閱書籍的同學和其借閱的圖書,主要由admin_viewallborrows.jsp實現(xiàn)。
新開借書證功能模塊本功能主要實現(xiàn)借書證的重新開啟,包含admin_addnewuser.jsp,admin_addnewuser_post.jsp。修改借書證信息主要實現(xiàn)修改借書的情況,包括包含admin_changeuser.jsp和admin_changeuser_post.jsp兩個文件
管理圖書功能模塊主要用于對圖書的管理,其包括錄入新書功能模塊和修改,刪除圖書功能模塊,未歸還圖書查詢功能模塊。錄入新書功能模塊主要將圖書錄入,并添加其數(shù)量,名稱,類別的功能由admin_addnewbook.jsp和admin_addnewbook_post.jsp兩個文件實現(xiàn)。修改,刪除圖書功能模塊主要是修改刪除圖書的信息。由admin_changebook.jsp和admin_changebook_post.jsp實現(xiàn)。
用戶信息管理功能模塊是本系統(tǒng)后臺最為重要的一部分,包括所有用戶查詢功能模塊,搜索用戶功能模塊,管理員列表功能模塊,添加管理員功能模塊,修改密碼功能模塊。所有用戶查詢功能模塊本功能作用是實現(xiàn)對用戶信息查詢,包括姓名,性別,年齡,系別,借書證號由admin_viewallusers.jsp實現(xiàn)搜索用戶功能模塊本功就是通過輸入借書證號搜尋所查找的用戶。由searchuser.jsp和searchuser_post.jsp文件實現(xiàn)用戶功能模塊主要是對用戶的所有信息進行修改并保存由admin_changeuser.jsp和admin_changeuser_post.jsp實現(xiàn)。管理員列表功能模塊主要是查詢所有管理員。由admin_viewalladmins.jsp實現(xiàn)。添加管理員功能模塊就是添加管理員,包括登錄名和密碼由admin_addadmin.jsp和admin_addadmin_post.jsp實現(xiàn)。修改管理員密碼功能模塊本功能主要是對管理員密碼修改由changepwd.jsp和admin_changepwd_post.jsp實現(xiàn)。
5 測試
本系統(tǒng)測試環(huán)境:MySQL5.0,TOMCAT5.016/Weblogic8.0,Winwap,在WIN2000/XP下均測試通過.測試結(jié)果完全符合預期目標。但有部分BUG,現(xiàn)問題和解決方法總結(jié)如下:
1.中文信息提交時為亂碼。
解決方法:將頁面編碼設置為GB2312,同時在服務器端將request編碼也設置為GB2312
2.頁面采用2個frame,在超鏈接的時候往往不能鏈接到目標frame上。
解決方法:在超鏈接的后面添加target="目標框架"。
最終經(jīng)過詳細功能測試和代碼修正后,本系統(tǒng)完全實現(xiàn)借書與還書的手續(xù)操作與對圖書和人員的管理功能。其系統(tǒng)界面簡單、易用,其查詢功能模塊支持模糊查詢和WAP查詢功能使得系統(tǒng)更加強大。
結(jié) 論
本文提出的基于WEB的圖書管理系統(tǒng)完成了借書,還書,查詢圖書,管理借書證和管理員帳戶設置等主要功能,本系統(tǒng)是基于B/S模式,其后臺部分完全實現(xiàn)借書與還書的手續(xù)操作與對圖書和人員的管理功能,系統(tǒng)界面簡單、易用,任何人都可以在短時間內(nèi)學會使用該系統(tǒng),在前臺部分,創(chuàng)新設計的WAP圖書查詢部分,不僅大大方便了同學們查詢圖書,而且使得系統(tǒng)多樣化,多元化,具有有很強的擴展性。
在技術(shù)方面,通過此項目的開發(fā),本人對基于Browser/Server即瀏覽器/服務器模式的多層體系結(jié)構(gòu)的JSP技術(shù)有了一定的實戰(zhàn)經(jīng)驗,同時對JavaBean的使用有了深刻的理解。將不同復雜的數(shù)據(jù)庫操作劃分為獨立的模塊封裝于Bean中,提高了系統(tǒng)的安全性和可移植性。
對于不足之處在于管理員權(quán)限沒有細分,有條件的話可以采用給予角色的分配方法來分配權(quán)限。WAP部分功能相對于簡單,可以繼續(xù)加入留言板,圖書續(xù)借,公告等實用功能。
參考文獻
[1] 林上杰,林康司. JSP 2.0技術(shù)手冊[M]. 北京: 電子工業(yè)出版社,2005。
[2] 汪孝宜,劉中兵. JSP數(shù)據(jù)庫開發(fā)實例精粹[M]. 北京:機械工業(yè)出版社,2001。
[3] 楊仁毅. DreamweaverMX2004自學手冊[M]. 成都: 四川電子音像出版中心,2004。
[4] 方睿,刁仁宏.網(wǎng)絡數(shù)據(jù)庫原理及應用[M]. 成都: 四川大學出版社,2005。
[5] 陳明. 實用軟件工程基礎(chǔ)[M]. 北京: 清華大學出版社,2002。
[6] 耿祥義,張躍平. JAVA2實用教程[M]. 北京: 清華大學出版社,2006。
[7]張海藩.軟件工程導論[M].北京:北京清華大學出版社,2003。
第 22 頁 共 27 頁
致 謝
本文是在揚上金老師的熱情關(guān)心和指導下完成的,他淵博的知識和嚴謹?shù)闹螌W作風使我受益匪淺,對順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!
在論文完成過程中,本人還得到了索望老師和劉應嘉同學的熱心幫助,本人向他們表示深深的謝意!
最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝!
作者簡介:
姓 名:歐翼 性別:男
出生年月:1984年7月 民族:漢
E-mail:wing.oe@163.com
聲 明
本論文的工作是 2007年2月至2007年6月在成都信息工程學院網(wǎng)絡工程系完成的。文中除了特別加以標注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工程學院或其他教學機構(gòu)的學位或證書而使用過的材料。除非另有說明,本文的工作是原始性工作。
關(guān)于學位論文使用權(quán)和研究成果知識產(chǎn)權(quán)的說明:
本人完全了解成都信息工程學院有關(guān)保管使用學位論文的規(guī)定,其中包括:
(1)學校有權(quán)保管并向有關(guān)部門遞交學位論文的原件與復印件。
(2)學校可以采用影印、縮印或其他復制方式保存學位論文。
(3)學校可以學術(shù)交流為目的復制、贈送和交換學位論文。
(4)學??稍试S學位論文被查閱或借閱。
(5)學??梢怨紝W位論文的全部或部分內(nèi)容(保密學位論文在解密后遵守此規(guī)定)。
除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學院。
特此聲明!
作者簽名:
年 月 日
收藏