




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于jsp技術(shù)的圖書館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)jsp technology-based library management system design and implementation基于jsp技術(shù)的圖書館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要隨著圖書數(shù)量的不斷增長,圖書類別的日異更新,圖書館的管理技術(shù)也越來越受到人們的關(guān)注。 隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及,人們也越來越依賴網(wǎng)絡(luò)去實(shí)現(xiàn)各種需要。那么,如何在網(wǎng)上構(gòu)建一個(gè)便捷的圖書館管理系統(tǒng),就成為了企業(yè)不斷前進(jìn)的目標(biāo)和動(dòng)力。為了迎合圖書管理者的需求,我制作了一個(gè)基于jsp技術(shù)的小型圖書館管理系統(tǒng),為每一本,每一類圖書分別編碼,實(shí)現(xiàn)了圖書信息的增加,刪除,修改,查詢,
2、外借,歸還等基本功能,可以很方便地查詢,更新圖書館的各種信息,更加快速地為客戶服務(wù)。我們的管理者還可以互相監(jiān)督,互相查詢管理人員的信息,查詢管內(nèi)的所有圖書信息,查詢來館的所有讀者信息,以便更優(yōu)化地實(shí)現(xiàn)圖書的管理。讀者可以根據(jù)個(gè)人的喜好,選擇自己喜歡的圖書閱讀。如果規(guī)定時(shí)間內(nèi)讀者還沒有閱讀完畢,讀者還可以對該書進(jìn)行續(xù)借。這是一個(gè)現(xiàn)代化的,人性化的,高效化的系統(tǒng),無論是圖書管理人員,還是圖書借閱者都可以充分滿足需要。本文結(jié)合開入式圖書館的要求,對oracle數(shù)據(jù)庫管理系統(tǒng)、sql語言原理、java應(yīng)用程序設(shè)計(jì),jsp技術(shù)進(jìn)行了較深入的學(xué)習(xí)和應(yīng)用,主要完成對圖書管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)
3、庫模式分析,并由此設(shè)計(jì)了一種成本低,效率高,界面美,易操作的圖書管理方案。【關(guān)鍵詞】網(wǎng)上圖書館管理系統(tǒng) oracle數(shù)據(jù)庫 hibernate struts2 mvc jspjsp technology-based library management system design and implementationabstract with the growing number of books, books on different types of updates, library management technology more and more attention. with t
4、he popularity of computer networks, people increasingly rely on networks to accomplish their various needs. so, how to build a convenient online library management system, have become the target of companies to continue moving forward and power. to meet the needs of library managers, i created a sma
5、ll library based on jsp technology in the management system, for each of this, each type of books from encoding, implementing the book information add, delete, modify, check, loan, restitution and other basic functions, can easily check and update a variety of library information, more quickly to cu
6、stomer service. our managers can also be mutual supervision, co-manager of information queries, query all book information , all reader inquiries to museum of information in order to achieve a more optimized the management books. readers according to individual preferences, choose your favorite book
7、s to read. if the specified time, the reader has not read the finished book, readers can also carry out renewal. this is a modern, humane, efficient system, whether librarians or library borrower can fully meet the need . this paper off into type libraries at the request of oracle database managemen
8、t system, sql language principle, java application program design, jsp technology, a more in-depth study and application, mainly on the library management system to complete needs analysis, functional module partition, database schema analysis, and has designed a low cost, high efficiency, interface
9、 the united states, easy-to library management program.【key words】 online library management system ,oracle database, hibernate ,struts2,mvc,jsp目 錄目錄摘要引言第一章 緒 論1.1 jsp概述1.1.1 jsp的內(nèi)置對象jsp的技術(shù)特點(diǎn)與優(yōu)勢1.2 hibernate 簡介1.2.1 hibernate的工作方式1.3 struts 2 簡介1.3.1 struts 2與struts 1的不同1.3.2 struts 2的優(yōu)勢1.4 數(shù)據(jù)庫概述1.4
10、.1 數(shù)據(jù)庫理論基礎(chǔ)1.4.2 oracle數(shù)據(jù)庫的選擇第二章 系統(tǒng)分析2.1 問題定義2.2 可行性分析2.3 需求分析2.3.1 功能分析2.3.2 模塊分析2.4 概要設(shè)計(jì)2.3.1 系統(tǒng)流程圖2.3.2 系統(tǒng)功能模塊總設(shè)計(jì)圖2.3.3 數(shù)據(jù)庫總體e-r圖第三章 詳細(xì)設(shè)計(jì)3.1 數(shù)據(jù)庫設(shè)計(jì)3.1.1數(shù)據(jù)庫總體類圖3.1.2數(shù)據(jù)庫部分表的表結(jié)構(gòu)3.2 后臺管理員登陸模塊具體設(shè)計(jì)3.2.1圖書管理員的活動(dòng)圖3.2.2圖書管理員的狀態(tài)圖3.2.3圖書管理員的時(shí)序圖3.3 前臺讀者登陸模塊具體設(shè)計(jì)3.3.1用例圖3.3.2 讀者的相關(guān)活動(dòng)圖3.3.3 讀者的相關(guān)狀態(tài)圖3.3.4 讀者的相關(guān)時(shí)序圖
11、第四章 系統(tǒng)的具體實(shí)現(xiàn)4.1 管理員登陸頁面4.2 管理員書刊管理模塊頁面4.3 讀者登陸首頁4.4讀者賬戶查詢頁面4.5 hibernate配置文件4.6 hibernate屬性文件的配置4.7 struts2部分配置文件如下第五章 結(jié)束語參考文獻(xiàn):引 言目前學(xué)校的圖書館工作大部分還是進(jìn)行著手工管理,工作起來效率很低,并且不能及時(shí)了解圖書館各類圖書的存庫,學(xué)生們比較需求的圖書等等,不便于動(dòng)態(tài)及時(shí)調(diào)整圖書結(jié)構(gòu),更好的適應(yīng)當(dāng)前學(xué)生的借閱需求。手工管理還存在這許多弊端,由于不可避免的人為因素,造成數(shù)據(jù)的遺漏、誤報(bào)。計(jì)算機(jī)信息化管理有著儲存信息量大,速度快等許多優(yōu)點(diǎn),提供給我們的處理信息及時(shí)快捷,同
12、時(shí)也提高了我們工作人員的自身素質(zhì)。因此我們利用計(jì)算機(jī)提供給我們信息,及時(shí)的調(diào)整學(xué)校圖書館圖書結(jié)構(gòu),并且對學(xué)生們的借閱過程形成一整化動(dòng)態(tài)的管理。 基于jsp的圖書館管理系統(tǒng)與傳統(tǒng)的手工方式相比,有著明顯的優(yōu)點(diǎn)與優(yōu)勢。首先,以頁面形式展現(xiàn)的圖書館管理系統(tǒng),符合現(xiàn)代人們的生活標(biāo)準(zhǔn)和習(xí)慣。用戶已經(jīng)習(xí)慣性地在網(wǎng)上進(jìn)行圖書的瀏覽和查閱,然后選擇自己喜歡的圖書進(jìn)行訂閱和借閱,這種可視化的界面方便用戶快捷地檢索到相關(guān)信息。其次,基于jsp的圖書館管理系統(tǒng)可以解決因?yàn)槭止す芾碓斐傻氖д`、遺漏等問題,管理人員只需要將圖書的基本信息錄入系統(tǒng),就不會再擔(dān)心找不到圖書的相關(guān)信息,而且可以更加迅速地檢索到。另外,由于計(jì)算
13、機(jī)的存儲容量日益增大,館內(nèi)有再多的圖書都不會給管理人員造成困擾,管理人員可以根據(jù)需要?jiǎng)討B(tài)地調(diào)整圖書結(jié)構(gòu),用戶不會再因?yàn)閳D書的“搬家”而憂慮。實(shí)現(xiàn)基于jsp的圖書館管理系統(tǒng),涉及到數(shù)據(jù)庫的設(shè)計(jì)和頁面設(shè)計(jì)。如何創(chuàng)建高效的網(wǎng)絡(luò)數(shù)據(jù)庫,如何讓頁面和數(shù)據(jù)庫能很好地進(jìn)行交流,就成了一個(gè)關(guān)鍵性的問題。在本設(shè)計(jì)中,我采用了struts 2框架來實(shí)現(xiàn)頁面層和數(shù)據(jù)層的控制,主要是通過mvc模式實(shí)現(xiàn)的。mvc架構(gòu)是model-view-controller的縮寫,中文翻譯為模式-視圖-控制器。mvc應(yīng)用程序總是由這三個(gè)部分組成:視圖(view)代表用戶交互界面,對于web應(yīng)用來說,可以概括為html、jsp界面,但
14、有可能為xhtml、xml和applet;模型(model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果,業(yè)務(wù)模型的設(shè)計(jì)可以說是mvc最主要的核心;控制(controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求。控制層并不做任何的數(shù)據(jù)處理。event(事件)導(dǎo)致controller改變model或view,或者同時(shí)改變兩者。只要controller改變
15、了models的數(shù)據(jù)或者屬性,所有依賴的view都會自動(dòng)更新。類似的,只要controller改變了view,view會從潛在的model中獲取數(shù)據(jù)來刷新自己。struts是apache組織的一個(gè)開放源碼項(xiàng)目。struts是一個(gè)比較好的mvc框架,提供了對開發(fā)mvc系統(tǒng)的底層支持,它采用的主要技術(shù)是servlet,jsp和custom tag library。在struts框架中controller功能由actionservlet和actionmapping對象構(gòu)成,核心是一個(gè)servlet類型的對象actionservlet,它用來接受客戶端的請求。actionservlet包括一組基于配置
16、的actionmapping對象,每個(gè)actionmapping對象實(shí)現(xiàn)了一個(gè)請求到一個(gè)具體的model部分中action處理器對象之間的映射。view部分是通過jsp技術(shù)實(shí)現(xiàn)的。struts提供了自定義的標(biāo)記庫,通過這些自定義標(biāo)記可以非常好地和系統(tǒng)的model部分交互,通過使用這些自定義標(biāo)記創(chuàng)建的jsp表單,可以實(shí)現(xiàn)和model部分中的actionform的映射,完成對用戶數(shù)據(jù)的封裝。至于實(shí)現(xiàn)的細(xì)節(jié),在后續(xù)章節(jié)中會有介紹。第一章 緒 論1.1 jsp概述jsp是java server pages的簡稱,是服務(wù)器端的一種基于java語言的網(wǎng)頁技術(shù),所有的程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客
17、戶端的僅僅是得到的結(jié)果,與客戶端的瀏覽器無關(guān)。在傳統(tǒng)的網(wǎng)頁中加入java代碼和jsp標(biāo)簽之后放在服務(wù)器端運(yùn)行,再將運(yùn)行的結(jié)果向用戶發(fā)布,用戶通過瀏覽器就能看到精彩紛呈的網(wǎng)頁了。jsp技術(shù)使用java編程語言編寫類xml的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。jsp將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于web的應(yīng)用程序的開發(fā)變得迅速和容易。 web服務(wù)器在遇到訪問jsp網(wǎng)頁的請求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同jsp文件中的html代碼一起返回給客戶。插入的
18、java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。1.1.1 jsp的內(nèi)置對象 jsp有九大內(nèi)置對象,也叫隱含對象,是不需要用戶預(yù)先定義就可以拿過來用的對象。在jsp代碼片段中,你可以利用這些隱含對象與jsp頁面的代碼片段執(zhí)行環(huán)境產(chǎn)生互動(dòng):1 request對象客戶端請求對象,包括從get/post請求傳遞過來的參數(shù)。該對象封裝了用戶提交的信息,通過調(diào)用該對象相應(yīng)的方法可以獲取封裝的信息,即使用該對象可以獲取用戶提交的信息。 2. response對象 網(wǎng)頁傳回客戶端的反應(yīng)。作用是對客戶的請求做出動(dòng)態(tài)的響應(yīng),向客戶端發(fā)送數(shù)據(jù)。 3session對象 與請求關(guān)聯(lián)的會話
19、。從一個(gè)客戶打開瀏覽器并連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離開這個(gè)服務(wù)器結(jié)束,被稱為一個(gè)會話。當(dāng)一個(gè)客戶訪問一個(gè)服務(wù)器時(shí),可能會在這個(gè)服務(wù)器的幾個(gè)頁面之間切換,服務(wù)器應(yīng)當(dāng)通過某種辦法知道這是一個(gè)客戶,就需要session對象。 4application對象 代碼片段的運(yùn)行環(huán)境。服務(wù)器啟動(dòng)后就產(chǎn)生了這個(gè)application對象,當(dāng)客戶再所訪問的網(wǎng)站的各個(gè)頁面之間瀏覽時(shí),這個(gè)application對象都時(shí)同一個(gè),直到服務(wù)器關(guān)閉。但是與session對象不同的時(shí),所有客戶的application對象都時(shí)同一個(gè),即所有客戶共享這個(gè)內(nèi)置的application對象。 5out對象 傳送響應(yīng)的輸出流。它
20、用來向客戶端輸出數(shù)據(jù)。 6pagecontext 管理網(wǎng)頁屬性。通過這個(gè)對象可以拿到其他內(nèi)置對象。7config對象是配置對象,用來對各種參數(shù)的配置。8page 對象jsp網(wǎng)頁本身,指的是當(dāng)前頁面。9exception對象有錯(cuò)的網(wǎng)頁中未被捕獲的例外。在處理異常的網(wǎng)頁中可以直接訪問exception隱式對象。jsp的技術(shù)特點(diǎn)與優(yōu)勢jsp 是sun公司推出的新一代站點(diǎn)開發(fā)語言,他完全解決了目前asp,php的一個(gè)通病 腳本級執(zhí)行。jsp 可以在serverlet和javabean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。jsp代碼被編譯成 servlet 并由 java 虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對
21、 jsp 頁面的第一次請求時(shí)發(fā)生。 jsp有如下特點(diǎn):1將內(nèi)容的生成和顯示進(jìn)行分離 使用jsp技術(shù),web頁面開發(fā)人員可以使用html或者xml標(biāo)識來設(shè)計(jì)和格式化最終頁面。使用jsp標(biāo)識或者小腳本來生成頁面上的動(dòng)態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識javabeans 組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在標(biāo)識和beans中,那么其他人,如web管理人員和頁面設(shè)計(jì)者,能夠編輯和使用jsp頁面,而不影響內(nèi)容的生成。在服務(wù)器端,jsp引擎解釋jsp標(biāo)識和小腳本,生成所請求的內(nèi)容(例如,通過訪問java beans組件,使用jdbctm技術(shù)訪問數(shù)據(jù)庫,或者包含文件),
22、并且將結(jié)果以html(或者xml)頁面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于html的web瀏覽 器的完全可用性。 2強(qiáng)調(diào)可重用的組件 絕大多數(shù)jsp頁面依賴于可重用的,跨平臺的組件(javabeans或者enterprise javabea nstm組件)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操 作的組件,或者使得這些組件為更多的使用者或者客戶團(tuán)體所使用。基于組件的方法加速了 總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。 3采用標(biāo)識簡化頁面開發(fā) web頁面開發(fā)人員不會都是熟悉腳本語言的編程人員。java
23、server page技術(shù)封裝了許多功能,這些功能是在易用的、與jsp相關(guān)的xml標(biāo)識中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的js p標(biāo)識能夠訪問和實(shí)例化javabeans組件,設(shè)置或者檢索組件屬性,下載applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。jsp技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級的分布式應(yīng)用。作為采用java技術(shù)家族的一部分,以及java 2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,jsp技術(shù)能夠支持高度復(fù)雜的基于web的應(yīng)用。由于jsp頁面的內(nèi)置腳本語言是基于java編程語言的,而且所有的jsp頁面都被編譯成為java servlet,
24、jsp頁面就具有java技術(shù)的所有好處,包括健壯的存儲管理和安全性。1.2 hibernate 簡介hibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,它對jdbc進(jìn)行了非常輕量級的對象封裝,使得java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 hibernate可以應(yīng)用在任何使用jdbc的場合,既可以在java的客戶端程序使用,也可以在servlet/jsp的web應(yīng)用中使用,最具革命意義的是,hibernate可以在應(yīng)用ejb的j2ee架構(gòu)中取代cmp,完成數(shù)據(jù)持久化的重任。1.2.1 hibernate的工作方式hibernate不會對您造成妨礙,也不會強(qiáng)迫您修改對象的行為方
25、式。它們不需要實(shí)現(xiàn)任何不可思議的接口以便能夠持續(xù)存在。惟一需要做的就是創(chuàng)建一份xml“映射文檔”,告訴hibernate您希望能夠保存在數(shù)據(jù)庫中的類,以及它們?nèi)绾侮P(guān)聯(lián)到該數(shù)據(jù)庫中的表和列,然后就可以要求它以對象的形式獲取數(shù)據(jù),或者把對象保存為數(shù)據(jù)。運(yùn)行時(shí),hibernate讀取映射文檔,然后動(dòng)態(tài)構(gòu)建java類,以便管理數(shù)據(jù)庫與java之間的轉(zhuǎn)換。在hibernate中有一個(gè)簡單而直觀的api,用于對數(shù)據(jù)庫所表示的對象執(zhí)行查詢。要修改這些對象,(一般情況下)只需在程序中與它們進(jìn)行交互,然后告訴hibernate保存修改即可。類似地,創(chuàng)建新對象也很簡單;只需以常規(guī)方式創(chuàng)建它們,然后告訴hibern
26、ate有關(guān)它們的信息,這樣就能在數(shù)據(jù)庫中保存它們。1.3 struts 2 簡介apache struts2是一個(gè)優(yōu)雅的,可擴(kuò)展的java ee web框架。框架設(shè)計(jì)的目標(biāo)貫穿整個(gè)開發(fā)周期,從開發(fā)到發(fā)布,包括維護(hù)的整個(gè)過程。apache struts 2即是之前大家所熟知的webwork 2.在經(jīng)歷了幾年的各自發(fā)展后,webwork和struts社區(qū)決定合二為一,也即是struts 2.struts2相對于struts1是一個(gè)全新的框架,但它并不是新發(fā)布的新框架,而是在webwork基礎(chǔ)上發(fā)展起來的。從某種程度上來講,struts2沒有繼承struts 1的血統(tǒng),而是繼承webwork的血統(tǒng)。
27、或者說,webwork衍生出了struts2,而不是struts 1衍生了struts2.因?yàn)閟truts2是webwork的升級,而不是一個(gè)全新的框架,因此穩(wěn)定性、性能等各方面都有很好的保證:而且吸收了struts 1和webwork兩者的優(yōu)勢,因此,是一個(gè)非常好的框架。1.3.1 struts 2與struts 1的不同1 action類struts1要求action類繼承一個(gè)抽象基類。struts1的一個(gè)普遍問題是使用抽象類編程而不是接口。struts 2 action類可以實(shí)現(xiàn)一個(gè)action接口,也可實(shí)現(xiàn)其他接口,使可選和定制的服務(wù)成為可能。struts2是一個(gè)actionsuppo
28、rt基類去實(shí)現(xiàn) 常用的接口。action接口不是必須的,任何有execute標(biāo)識的pojo對象都可以用作struts2的action對象。2.線程模式struts1 action是單例模式并且必須是線程安全的,因?yàn)閮H有action的一個(gè)實(shí)例來處理所有的請求。單例策略限制了struts1 action能作的事,并且要在開發(fā)時(shí)特別小心。action資源必須是線程安全的或同步的。struts2 action對象為每一個(gè)請求產(chǎn)生一個(gè)實(shí)例,因此沒有線程安全問題。 3.servlet 依賴 struts1 action 依賴于servlet api ,因?yàn)楫?dāng)一個(gè)action被調(diào)用時(shí)httpservletr
29、equest 和 httpservletresponse 被傳遞給execute方法。 struts 2 action不依賴于容器,允許action脫離容器單獨(dú)被測試。如果需要,struts2 action仍然可以訪問初始的request和response.但是,其他的元素減少或者消除了直接訪問httpservetrequest 和 httpservletresponse的必要性。 4.綁定值到頁面 struts 1使用標(biāo)準(zhǔn)jsp機(jī)制把對象綁定到頁面中來訪問。 struts 2 使用 valuestack技術(shù),使taglib能夠訪問值而不需要把你的頁面(view)和對象綁定起來。valuest
30、ack策略允許通過一系列名稱相同但類型不同的屬性重用頁面(view)。5類型轉(zhuǎn)換:struts 1 actionform 屬性通常都是string類型。struts1使用commons-beanutils進(jìn)行類型轉(zhuǎn)換。每個(gè)類一個(gè)轉(zhuǎn)換器,對每一個(gè)實(shí)例來說是不可配置的。 struts2 使用ognl進(jìn)行類型轉(zhuǎn)換。提供基本和常用對象的轉(zhuǎn)換器1.3.2 struts 2的優(yōu)勢 struts2 是一個(gè)相當(dāng)強(qiáng)大的java web開源框架,是一個(gè)基于pojo的action的mvc web框架。它基于當(dāng)年的webwork和xwork框架,繼承其優(yōu)點(diǎn),同時(shí)做了相當(dāng)?shù)母倪M(jìn)。struts開放源碼框架的創(chuàng)建是為了使開
31、發(fā)者在構(gòu)建基于java servlet和javaserver pages(jsp)技術(shù)的web應(yīng)用時(shí)更加容易。struts框架為開放者提供了一 個(gè)統(tǒng)一的標(biāo)準(zhǔn)框架,通過使用struts作為基礎(chǔ),開發(fā)者能夠更專注于應(yīng)用程序的商業(yè)邏輯。struts框 架本身是使用java servlet和javaserver pages技術(shù)的一種model-view-controller(mvc)實(shí)現(xiàn).下面就struts 2的優(yōu)點(diǎn)作簡單介紹:1. struts2基于mvc架構(gòu),框架結(jié)構(gòu)清晰,開發(fā)流程一目了然,開發(fā)人員可以很好的掌控開發(fā)的過程。2. 有豐富的tag可以用 ,struts的標(biāo)記庫(taglib),如能靈
32、活動(dòng)用,則能大大提高開發(fā)效率。3. 強(qiáng)大的攔截器struts2的攔截器是一個(gè)action級別的aop,struts2中的許多特性都是通過攔截器來實(shí)現(xiàn)的,例如異常處理,文件上傳,驗(yàn)證等。攔截器是可配置與重用的,可以將一些通用的功能如:登錄驗(yàn)證,權(quán)限驗(yàn)證等置于攔截器中以完成一些java web項(xiàng)目中比較通用的功能。在我實(shí)現(xiàn)的的一web項(xiàng)目中,就是使用struts2的攔截器來完成了系統(tǒng)中的權(quán)限驗(yàn)證功能。4. 易于測試struts2的action都是簡單的pojo,這樣可以方便的對struts2的action編寫測試用例,大大方便了java web項(xiàng)目的測試。5. 易于擴(kuò)展的插件機(jī)制在struts2添
33、加擴(kuò)展是一件愉快而輕松的事情,只需要將所需要的jar包放到web-inf/lib文件夾中,在struts.xml中作一些簡單的設(shè)置就可以實(shí)現(xiàn)擴(kuò)展。6. 模塊化struts2已經(jīng)把模塊化作為了體系架構(gòu)中的基本思想,可通過三種方法來將應(yīng)用程序模塊化:將配置信息拆分成多個(gè)文件把自包含的應(yīng)用模塊創(chuàng)建為插件創(chuàng)建新的框架特性,即將與特定應(yīng)用無關(guān)的新功能組織成插件,以添加到多個(gè)應(yīng)用中去7. 全局結(jié)果與聲明式異常為應(yīng)用程序添加全局的result,和在配置文件中對異常進(jìn)行處理,這樣當(dāng)處理過程中出現(xiàn)指定異常時(shí),可以跳轉(zhuǎn)到特定頁面,這一功能十分實(shí)用。1.4 數(shù)據(jù)庫概述 一個(gè)成功的管理系統(tǒng),是建立在許多條件之上的,而
34、數(shù)據(jù)庫就是其中一個(gè)非常關(guān)鍵的因素。管理系統(tǒng)的主要任務(wù)是通過存儲大量的數(shù)據(jù)獲得管理所需要的信息,這就必須存儲和管理大量的數(shù)據(jù)。因此建立一個(gè)良好的數(shù)據(jù)組織結(jié)構(gòu)和選擇一個(gè)性能較優(yōu)的數(shù)據(jù)庫,使整個(gè)系統(tǒng)可以迅速、方便、準(zhǔn)確地調(diào)用和管理所需要的數(shù)據(jù),是直接關(guān)系到系統(tǒng)的效率和性能的。1.4.1 數(shù)據(jù)庫理論基礎(chǔ)數(shù)據(jù)庫管理系統(tǒng)(database management system)是一種操縱和管理數(shù)據(jù)庫的大型軟件,是用于建立、使用和維護(hù)數(shù)據(jù)庫,簡稱dbms。它對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。用戶通過dbms訪問數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)庫管理員也通過dbms進(jìn)行數(shù)據(jù)庫的維護(hù)工作。它提供多種
35、功能,可使多個(gè)應(yīng)用程序和用戶用不同的方法在同時(shí)或不同時(shí)刻去建立,修改和詢問數(shù)據(jù)庫。它使用戶能方便地定義和操縱數(shù)據(jù),維護(hù)數(shù)據(jù)的安全性和完整性,以及進(jìn)行多用戶下的并發(fā)控制和恢復(fù)數(shù)據(jù)庫。數(shù)據(jù)庫系統(tǒng)本質(zhì)上是一個(gè)用計(jì)算機(jī)存儲記錄的系統(tǒng)。數(shù)據(jù)庫本身可被看作是一種電子文件柜,也就是說,它是收集計(jì)算機(jī)數(shù)據(jù)文件的倉庫或容器。系統(tǒng)用戶可以對這些文件執(zhí)行插入數(shù)據(jù)、檢索數(shù)據(jù)、更改數(shù)據(jù)、刪除數(shù)據(jù)等操作。1.4.2 oracle數(shù)據(jù)庫的選擇oracle database,又名oracle rdbms,或簡稱oracle。是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng)。oracle數(shù)據(jù)庫的體系結(jié)構(gòu)包括物理存儲結(jié)構(gòu)和邏輯存儲結(jié)構(gòu)。由于
36、它們是相分離的,所以在管理數(shù)據(jù)的物理存儲結(jié)構(gòu)時(shí)并不會影響對邏輯存儲結(jié)構(gòu)的存取。oracle server是一個(gè)對象一關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它提供開放的、全面的、和集成的信息管理方法。每個(gè)server由一個(gè) oracle db和一個(gè) oracle server實(shí)例組成。它具有場地自治性(site autonomy)和提供數(shù)據(jù)存儲透明機(jī)制,以此可實(shí)現(xiàn)數(shù)據(jù)存儲透明性。每個(gè) oracle數(shù)據(jù)庫對應(yīng)唯一的一個(gè)實(shí)例名sid,oracle數(shù)據(jù)庫服務(wù)器啟動(dòng)后,一般至少有以下幾個(gè)用戶:internal,它不是一個(gè)真實(shí)的用戶名,而是具有sysdba優(yōu)先級的sys用戶的別名,它由dba用戶使用來完成數(shù)據(jù)庫的管理任務(wù),
37、包括啟動(dòng)和關(guān)閉數(shù)據(jù)庫;sys,它是一個(gè) dba用戶名,具有最大的數(shù)據(jù)庫操作權(quán)限;system,它也是一個(gè) dba用戶名,權(quán)限僅次于 sys用戶。oracle數(shù)據(jù)庫有如下優(yōu)點(diǎn):1oracle7.x以來引入了共享sql和多線索服務(wù)器體系結(jié)構(gòu)。這減少了oracle的資源占用,并增強(qiáng)了oracle的能力,使之在低檔軟硬件平臺上用較少的資源就可以支持更多的用戶,而在高檔平臺上可以支持成百上千個(gè)用戶。2提供了基于角色(role)分工的安全保密管理。在數(shù)據(jù)庫管理功能、完整性檢查、安全性、一致性方面都有良好的表現(xiàn)。3支持大量多媒體數(shù)據(jù),如二進(jìn)制圖形、聲音、動(dòng)畫以及多維數(shù)據(jù)結(jié)構(gòu)等。4. 提供了與第三代高級語言的
38、接口軟件pro*系列,能在c,c+等主語言中嵌入sql語句及過程化(pl/sql)語句,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操縱。加上它有許多優(yōu)秀的前臺開發(fā)工具如 power build、sql*forms、visia basic 等,可以快速開發(fā)生成基于客戶端pc 平臺的應(yīng)用程序,并具有良好的移植性。5. 提供了新的分布式數(shù)據(jù)庫能力。可通過網(wǎng)絡(luò)較方便地讀寫遠(yuǎn)端數(shù)據(jù)庫里的數(shù)據(jù),并有對稱復(fù)制的技術(shù)6oracle具有良好的穩(wěn)定性,安全性,易用性,友好性等。第二章 系統(tǒng)分析2.1 問題定義 問題定義階段必須回答的關(guān)鍵問題是:“我們要解決的問題是什么”。 如果不知道問題是什么就試圖解決問題,這種做法顯然是盲目的,只會
39、白白浪費(fèi)時(shí)間和金錢,最終得出的結(jié)果很可能是毫無意義的。對于軟件開發(fā)者來說,只有自己正確地提出了問題,然后才會很好去解決問題。基于jsp的圖書館管理系統(tǒng)針對的用戶是中小型圖書室,如學(xué)校圖書館。如何讓用戶能更高效地,快捷地,方便地管理自己的圖書,就是我們軟件開發(fā)人員需要考慮的首要因素,那么如何讓數(shù)據(jù)庫的設(shè)計(jì)更優(yōu)化,如何讓界面的設(shè)計(jì)更友好,如何讓用戶檢索信息更迅速,如何運(yùn)用各種技術(shù)讓系統(tǒng)更智能,就成了軟件開發(fā)人員需要考慮的關(guān)鍵問題。2.2 可行性分析 可行性分析是在對當(dāng)前系統(tǒng)有了初步了解的基礎(chǔ)上完成的,主要從技術(shù)特點(diǎn)、經(jīng)濟(jì)條件和社會效益三個(gè)方面分析討論開發(fā)系統(tǒng)的可行性。開發(fā)一個(gè)軟件,技術(shù)的運(yùn)用直接關(guān)
40、系到軟件的質(zhì)量。本設(shè)計(jì)中,我運(yùn)用的技術(shù)都是當(dāng)前主流的技術(shù),是經(jīng)過了無數(shù)開發(fā)人員認(rèn)可和稱贊的技術(shù),如jsp,hibernate,struts2,javascript,ajax等,這些技術(shù)是軟件開發(fā)過程中經(jīng)常用到和必需用到的。而對于這個(gè)網(wǎng)絡(luò)信息時(shí)代來說,基于jsp的圖書館管理系統(tǒng),可以為用戶節(jié)省大量的人力資源和物力資源,用戶再也不需要租下一個(gè)廣闊的空間用來存儲各種圖書,再也不需要聘用大批的人員來管理,搬運(yùn)圖書了。用戶只需要提供幾臺電腦,聘用幾個(gè)管理人員就可以滿足要求。最后,系統(tǒng)能否按照既定的設(shè)計(jì)方案順利運(yùn)轉(zhuǎn)起來,社會可行性是人員、體制、社會環(huán)境所形成的限制條件進(jìn)行研究,了解他們可能對目標(biāo)系統(tǒng)建立所
41、造成的影響,從技術(shù)的特點(diǎn)和功能需求來看,基于jsp的圖書館管理系統(tǒng)是能夠按照既定的方案完成并得到大眾支持的。所以,開發(fā)一個(gè)基于jsp的圖書館管理系統(tǒng),為用戶節(jié)省了大量的開支,架起了用戶和讀者間真誠的溝通橋梁,是適應(yīng)信息時(shí)代所需要的,也是可行的。2.3 需求分析所謂需求分析,是指對要解決的問題進(jìn)行詳細(xì)的分析,弄清楚用戶的需求。由于需求分析階段是其后的總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)的基礎(chǔ) , 也是系統(tǒng)模型的最初形成階段 , 可以說 , 它決定了整個(gè)系統(tǒng)設(shè)計(jì)的走向。在軟件生存周期中,其他四個(gè)階段都是面向技術(shù)的,只有這個(gè)階段是面向用戶的。需求分析就是對用戶的業(yè)務(wù)活動(dòng)進(jìn)行分析,明確在用戶的業(yè)務(wù)環(huán)境中軟件系統(tǒng)應(yīng)具備哪
42、些功能,應(yīng)實(shí)現(xiàn)哪些細(xì)節(jié),應(yīng)避免哪些疏漏。所以,為了不讓軟件開發(fā)者無功而返,做好需求分析是必不可少的。2.3.1 功能分析 圖書館管理系統(tǒng)需要滿足兩方面的要求,一個(gè)是圖書館管理員,一個(gè)是圖書借閱者。圖書管理人員對圖書借閱者的借書、還書要求進(jìn)行操作,查看借還書記錄,同時(shí)還負(fù)責(zé)對系統(tǒng)狀態(tài)進(jìn)行維護(hù),對系統(tǒng)資源進(jìn)行統(tǒng)計(jì)等。圖書借閱者的需求是查詢圖書館所有的圖書,維護(hù)個(gè)人信息以及查詢借閱記錄。如果圖書借閱者根據(jù)本人借書證號和密碼登陸系統(tǒng),就可查看圖書館圖書情況,還可以進(jìn)行本人借書情況的查詢和維護(hù)部分個(gè)人信息。這樣每個(gè)借閱者都只能查看自己的個(gè)人信息,不但滿足了圖書借閱者的要求,還保護(hù)了圖書借閱者的個(gè)人隱私。
43、圖書管理人員有修改和查看借閱記錄的權(quán)限,能夠?qū)︷^內(nèi)的圖書信息、借閱者信息、總體借閱信息進(jìn)行查詢統(tǒng)計(jì)和修改更新。具體地講,圖書管理人員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計(jì)圖書的基本信息,也能夠?qū)D書借閱者的基本信息進(jìn)行瀏覽、查詢、統(tǒng)計(jì),還可以增加新的管理人員,可以刪除不稱職的管理人員,可以修改自己的密碼等。2.3.2 模塊分析本圖書館管理系統(tǒng)主要分為前臺模塊和后臺模塊,前臺模塊主要針對讀者,有圖書查詢,個(gè)人信息維護(hù),圖書借閱,退出系統(tǒng)等功能;而后臺是針對管理員的,包含有書刊管理,讀者管理,借閱管理,查詢統(tǒng)計(jì),用戶服務(wù),退出系統(tǒng)等模塊。每個(gè)模塊又分為不同的子模塊,既相互獨(dú)立,又具有一定的聯(lián)系。圖
44、書查詢模塊可以讓讀者從不同的角度去查詢各種圖書,以便于及時(shí)掌握館內(nèi)的藏書情況。個(gè)人信息維護(hù)就是讀者對自己的個(gè)人信息進(jìn)行查詢,修改,刪除等功能,以便于動(dòng)態(tài)地與管理員交流信息。 圖書管理模塊主要實(shí)現(xiàn)圖書資料的分類瀏覽,添加,修改,刪除和查詢功能。讀者可以從不同的角度查詢圖書的詳細(xì)資料,包括圖書的名稱,isbn,類別,版次,作者,出版社,出版日期等。讀者單擊“借書”和“還書”可以實(shí)現(xiàn)圖書的借閱。讀者管理模塊主要實(shí)現(xiàn)讀者信息的瀏覽,添加,修改,刪除和查詢功能。管理人員可以查看讀者的詳細(xì)資料,包括讀者的圖書證號碼,姓名,性別,電話,emai,家庭住址等,還可以限制讀者對圖書的借閱數(shù)目,如果讀者有相應(yīng)的逾
45、期記錄,那么在該讀者歸還該圖書之前不能再借閱其他圖書。圖書借閱模塊主要實(shí)現(xiàn)讀者對圖書的借書,還書,查看借閱記錄和逾期記錄等功能。讀者通過借書記錄可以查看詳細(xì)的借閱資料,借閱時(shí)間,還可以對已借閱的圖書進(jìn)行歸還。如果讀者有逾期未還的圖書記錄,那么讀者必須繳納違償金后才能繼續(xù)借閱。查詢統(tǒng)計(jì)模塊主要是實(shí)現(xiàn)圖書館內(nèi)所有的資料查詢,是管理員所特有的權(quán)限,是對館內(nèi)所有資源的查詢和統(tǒng)計(jì),包括館內(nèi)所有的圖書信息,讀者信息,管理員信息等。用戶服務(wù)模塊主要是針對讀者的,通過該模塊,讀者可以了解圖書館的規(guī)章制度,新聞動(dòng)態(tài),以及開館時(shí)間等。退出系統(tǒng)模塊就是讓管理人員和讀者及時(shí)退出系統(tǒng),以免泄露相關(guān)資料,承擔(dān)不必要的責(zé)任
46、。2.4 概要設(shè)計(jì)2.3.1 系統(tǒng)流程圖 系統(tǒng)的基本流程圖分別如下,從這些圖中可以了解系統(tǒng)是怎樣工作的: 圖2-1 管理員登陸系統(tǒng)流程圖 圖2-2 圖書借閱者登陸系統(tǒng)流程圖2.3.2 系統(tǒng)功能模塊總設(shè)計(jì)圖圖 2-3 系統(tǒng)功能模塊總圖2.3.3 數(shù)據(jù)庫總體e-r圖 圖24 數(shù)據(jù)庫總體e-r圖第三章 詳細(xì)設(shè)計(jì)3.1 數(shù)據(jù)庫設(shè)計(jì)根據(jù)前面需求分析和功能分析,數(shù)據(jù)庫中有管理員表,讀者信息表,圖書信息表,圖書分類表,出版社信息表,借還信息記錄表,圖書分類關(guān)聯(lián)表。表中的字段都是根據(jù)需要設(shè)定的,符合規(guī)范化原則。3.1.1數(shù)據(jù)庫總體類圖 類的概念是面向?qū)ο筌浖_發(fā)的關(guān)鍵。通過使用類圖,可以清晰明確地展現(xiàn)出系統(tǒng)內(nèi)
47、部各靜態(tài)模塊的性質(zhì)、功能以及它們之間的關(guān)系。3.1.2數(shù)據(jù)庫部分表的表結(jié)構(gòu)表1 管理員表字段名稱字段類型字段說明字段限制manager_id number(10)編號primary keynamevarchar2姓名not nullpasswordvarchar2密碼not null表2 圖書信息表字段名稱字段類型字段說明字段限制book_idnumber(10)編號primary key isbn_issnvarchar2isbnnot null,uniquenamevarchar2書名not nullpublish_printednumber(10)版次store_typevarchar2
48、館藏類型publish_timevarchar2出版時(shí)間pricefloat(126)價(jià)格not null numnumber(10)館藏?cái)?shù)量not nullpagenumber(10)頁數(shù)picture_urlvarchar2圖片鏈接authorvarhcar2作者not nullpublish_idnumber(10)出版社編號foreign keyremarksvarchar2備注表3 圖書種類表字段名稱字段類型字段說明字段限制category_idnumber(10)編號primary keyturnnumber(10)輪次enamevarchar2英文名稱namevarchar2中文
49、名稱not nulltypevarchar2類型parent_idnumber(10)父類idforeign key表4 出版社表字段名稱字段類型字段說明 字段限制publish_idnumber(10)primary keychina_namevarchar2not nullpemailvarchar2pinternetvarchar2telephonevarchar2publish_addressvarchar2linkmanvarchar2表5 讀者信息表字段名稱字段類型字段說明字段限制reader_idnumber(10)編號primary keyreader_namevarchar2
50、讀者姓名not nullpasswordvarchar2登陸密碼not nulllibrary_cardnumber(10)圖書證號碼reader_typevarchar2讀者類型sexvarhchar2性別birthdayvarchar2出生日期empvarchar2所在公司id_cardvarchar2身份證號碼not nullemailvarchar2郵箱home_telphonevarchar2家庭號碼phonevarchar2手機(jī)號碼not nullregistervarchar2注冊日期not nullremarksvarhcar2備注表5 借還信息記錄表 字段名稱字段類型字段說明字段限制notes_idnumber(10)編號primary keylen
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 流量管理外包協(xié)議
- 合作公司合作協(xié)議書(4篇)
- 快銷品購買合同協(xié)議模板
- 恒大裝修房子合同協(xié)議
- 模具鋼板采購合同協(xié)議
- 商場入駐品牌合同協(xié)議
- 商店轉(zhuǎn)賣協(xié)議書模板
- 商品鋪?zhàn)赓U合同協(xié)議
- 悉尼轉(zhuǎn)讓租房合同協(xié)議
- 商場推廣合同協(xié)議
- 帶狀皰疹病人的個(gè)案護(hù)理
- 《中藥鑒定技術(shù)》課件-五味子的鑒定
- 大數(shù)據(jù) AI大模型-智慧統(tǒng)計(jì)大數(shù)據(jù)平臺解決方案(2023版)
- 江蘇省安全員《B證》考試題庫及答案
- 自殺及其預(yù)防課件
- 灰姑娘童話故事
- 鉛鋅礦的冶煉技術(shù)進(jìn)展與設(shè)備改進(jìn)
- 等離子切割機(jī)操作手冊與安全操作規(guī)程
- 印刷合同:紙袋印刷合作
- 快學(xué)Scala(中文版第2版)
- 人工智能知識競賽題庫(含答案)
評論
0/150
提交評論