【正文】
基于 JSP 技術(shù)的圖書館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) JSP technologybased library management system Design and Implementation II 基于 JSP 技術(shù)的圖書館管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 摘要 隨著圖書數(shù)量的不斷增長 ,圖書類別的日異更新,圖書館的管理技術(shù)也越來越受到人們的關(guān)注。為了迎合圖書管理者的需求,我制作了一個(gè)基于 JSP 技術(shù)的小型圖書館管理系統(tǒng),為每一本,每一類圖書分別編碼,實(shí)現(xiàn)了圖書信息的增加,刪除,修改,查詢,外借,歸還等基本功能 ,可以很方便地查詢,更新圖書館的各種信息,更加快速地為客戶服務(wù)。這是一個(gè)現(xiàn)代化的,人性化的,高效化的系統(tǒng),無 論是圖書管理人員,還是圖書借閱者都可以充分滿足需要。計(jì)算機(jī)信息化管理有著儲(chǔ)存信息量大,速度快等許多優(yōu)點(diǎn),提供給我們的處理信息及時(shí)快捷,同時(shí)也提高了我們工作人員的自身素質(zhì)。用 戶已經(jīng)習(xí)慣性地在網(wǎng)上進(jìn)行圖書的瀏覽和查閱,然后選擇自己喜歡的圖書進(jìn)行訂閱和借閱,這種可視化的界面方便用戶快捷地檢索到相關(guān)信息。如何創(chuàng)建高效的網(wǎng)絡(luò)數(shù)據(jù)庫,如何讓頁面和數(shù)據(jù)庫能很好地進(jìn)行交流,就成了一個(gè)關(guān)鍵性的問題。業(yè)務(wù)流程的處理過程對(duì)其它層來說是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果 , 業(yè)務(wù)模型的設(shè)計(jì)可以說是 MVC最主要的核心 ; 控制 (Controller)可以理解為從用戶接收請(qǐng)求 , 將模型與視圖匹配在一起,共同完成用戶的請(qǐng)求。只要 Controller改變了 Models的數(shù)據(jù)或者屬性,所有依賴的 View都會(huì)自動(dòng)更新。在 Struts框架中 Controller功能由 ActionServlet和 ActionMapping對(duì)象構(gòu)成,核心是一個(gè) Servlet類型的對(duì)象 ActionServlet,它用來接受客戶端的請(qǐng)求。 至于實(shí)現(xiàn)的細(xì)節(jié),在后續(xù)章節(jié)中會(huì)有介紹。網(wǎng)頁還能通過 tags和 scriptlets訪問存 在于服務(wù)端的資源的應(yīng)用邏輯。 JSP 的內(nèi)置對(duì)象 JSP 有九大內(nèi)置對(duì)象,也叫隱含對(duì)象,是不需要用戶預(yù)先定義就可以拿過來用的對(duì)象。作用是 對(duì)客戶的請(qǐng)求做出動(dòng)態(tài)的響應(yīng),向客戶端發(fā)送數(shù)據(jù)。 4. Application 對(duì)象 代碼片段的運(yùn)行環(huán)境 。它 用來向客戶端輸出數(shù)據(jù) 。 2 8. page 對(duì)象 JSP 網(wǎng)頁本身 ,指的是當(dāng)前頁面。 Jsp 可以在 Serverlet和 JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí) JavaBeans 組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。 2.強(qiáng)調(diào)可重用的組件 絕大多數(shù) JSP頁面依賴于可重用的,跨平臺(tái)的組件( JavaBeans或者 Enterprise JavaBea nsTM組件)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。 JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用的、與 JSP相關(guān)的 XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。 由于 JSP 頁面的內(nèi)置腳本語言是基于 Java 編程語言的,而且所有的 JSP 頁面都被編譯成為Java Servlet, JSP頁面就具有 Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。它們不需要實(shí)現(xiàn)任何不可思議的接口以便能夠持續(xù)存在。要修改這些對(duì)象,(一般情況下)只需在程序中與它們進(jìn)行交互,然后 告訴 Hibernate保存修改即可。 Apache Struts 2即是之前大家所熟知的 WebWork 2.在經(jīng)歷了幾年的各自發(fā)展后, WebWork和 Struts社區(qū)決定合二為一,也即是 Struts 2. Struts2 相對(duì)于 struts1 是一個(gè)全新的框架,但它并不是新發(fā)布的新框架,而是在 WebWork基礎(chǔ)上發(fā)展起來的。 Struts1的一個(gè)普遍問題是使用抽象類編程而不是 接口。 Struts1 Action 是單例模式并且必須是線程安全的,因?yàn)?僅有 Action 的一個(gè)實(shí)例來處理所有的請(qǐng)求。 依賴 Struts1 Action 依賴于 Servlet API ,因?yàn)楫?dāng)一個(gè) Action 被調(diào)用時(shí) HttpServletRequest 和 HttpServletResponse 被傳遞給 execute方法。 Struts 2 使用 ValueStack技術(shù),使 taglib能夠訪問值而不需要把你的頁面( view)和對(duì)象綁定起來。每個(gè)類一個(gè)轉(zhuǎn)換器,對(duì)每一個(gè)實(shí)例來說是不可配置的。 Struts開放源碼框架的創(chuàng)建是為了使開發(fā)者在構(gòu)建基于 Java Servlet和 JavaServer Pages( JSP)技術(shù)的 Web應(yīng)用時(shí)更加容易。 3. 強(qiáng)大的攔截器 Struts2的攔截器是一個(gè) Action級(jí)別的 AOP, Struts2中的許多特性都是通過攔截器來實(shí)現(xiàn)的,例如異常處理,文件上傳,驗(yàn)證等。 5. 易于擴(kuò)展的插件機(jī)制 在 Struts2添加擴(kuò)展是一件愉快而輕松的事情,只需要將所需要的 Jar包放到WEBINF/lib文件夾中,在 。因此建立一個(gè)良好的數(shù)據(jù)組織結(jié)構(gòu)和選擇一個(gè)性能較優(yōu)的數(shù)據(jù)庫,使整個(gè)系統(tǒng)可以迅速、方便、準(zhǔn)確地調(diào)用和管理所需要的數(shù)據(jù),是直接關(guān)系到系統(tǒng)的效率和性能的。它提供多種功能,可使多個(gè)應(yīng)用程序和用戶用不同的方法在同時(shí)或不同時(shí)刻去建立,修改和詢問數(shù)據(jù)庫。系統(tǒng)用戶可以對(duì)這些文件執(zhí)行插入數(shù)據(jù)、檢索數(shù)據(jù)、更改數(shù)據(jù)、刪除數(shù)據(jù)等操作。由于它們是相分離的,所以在管理數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)時(shí)并不會(huì)影響對(duì)邏輯存儲(chǔ)結(jié)構(gòu)的存取。它具有場(chǎng)地自治性( Site Autonomy)和提供數(shù)據(jù)存儲(chǔ)透明機(jī)制,以此可實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)透明性。 2. 提供了基于角色 (ROLE)分工的安全保密管理。加上它有許多優(yōu)秀的前臺(tái)開發(fā)工具如 POWER BUILD、 SQL*FORMS、 VISIA BASIC 等,可以快速開發(fā)生成基于客戶端 PC 平臺(tái)的應(yīng)用程序,并具有良好的移植性。 如果不知道問題是什么就試圖解決問題, 這種做法 顯然是盲目的,只會(huì)白白浪費(fèi)時(shí)間和金錢,最終得出的結(jié)果很可能是 8 毫無意義的。 可行性分析 可行性分析是在對(duì)當(dāng)前系統(tǒng)有了初步了解的基礎(chǔ)上完成的,主要從技術(shù)特點(diǎn)、經(jīng)濟(jì)條件和社會(huì)效益三個(gè)方面分析討論開發(fā)系統(tǒng)的可行性。用戶只需要提供幾臺(tái)電腦,聘用幾個(gè)管理人員就可以滿足要求。由于需求分析階段是其后的總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)的基礎(chǔ) , 也是系統(tǒng)模型的最初形成階段 , 可以說 , 它決定了整個(gè)系統(tǒng)設(shè)計(jì)的走向。 功能分 析 圖書館管理系統(tǒng)需要滿足兩方面的要求,一個(gè)是圖書館管理員,一個(gè)是圖書借閱者。這樣每個(gè)借閱者都只能查看自己的個(gè)人信息,不但滿足了圖書借閱者的要求,還保護(hù)了圖書借閱者的個(gè)人隱私。每個(gè)模塊又分為不同的子模塊,既相互獨(dú)立,又具有一定的聯(lián)系。讀者可以從不同的角度查詢圖書的詳細(xì)資料,包括圖書的名稱, ISBN,類別,版次,作者,出版社,出版日期等。 圖書借閱模塊主要實(shí)現(xiàn)讀者對(duì)圖書的借書,還書,查看借閱記錄和逾期記錄等功能。 用戶服務(wù)模塊主要是針對(duì)讀者的,通過該模塊,讀者可以了解圖書館的規(guī)章制度,新聞動(dòng)態(tài),以及開館時(shí)間等。 數(shù)據(jù)庫總體類圖 類的概念是面向?qū)ο筌浖_發(fā)的關(guān)鍵。 1 讀者借閱管理 活動(dòng)圖 16 管理員登陸驗(yàn)證登陸到讀者借閱模塊等待讀者的借書請(qǐng)求等待讀者的還書請(qǐng)求處理讀者的借書請(qǐng)求處理讀者的還書請(qǐng)求 17 管 理 員 登 陸 驗(yàn) 證登 陸 到 圖 書 信 息 維 護(hù) 模 塊添 加 圖 書 信 息刪 除 圖 書 信 息修 改 圖 書 信 息 3 讀者信息管理活動(dòng)圖 18 管 理 員 登 陸 驗(yàn) 證登 陸 到 讀 者 信 息 維 護(hù) 模 塊添 加 讀 者刪 除 讀 者修 改 讀 者輸 入 讀 者 信 息開 設(shè) 讀 者 賬 戶賬 戶 給 讀 者 刪 除 讀 者 信 息督 促 讀 者 歸 還 欠 款 欠 書修 改 讀 者 信 息 圖書管理員的狀態(tài)圖 狀態(tài)圖實(shí)際上是一種由狀態(tài)、變遷、事件和活動(dòng)組成的狀態(tài)機(jī)。 塊時(shí) 序圖 M a n a g e rM a n a g e r S e r v i c eR e a d e rR e a d e r S e r v i c e1 . 身 份 驗(yàn) 證 ( )2 . 返 回 驗(yàn) 證 消 息B o o k S e r v i c e3 . 發(fā) 出 借 書 或 歸 還 請(qǐng) 求4 . 掃 描 R e a d e r I d ( )5 . 返 回 在 讀 者 信 息5 . 記 錄 讀 者 信 息6 . 掃 描 圖 書 I D ( )7 . 返 回 圖 書 信 息9 . 標(biāo) 記 該 書 借 出 或 歸 還8 . 借 閱 成 功1 0 . 把 書 給 讀 者 ( 借 書 時(shí) )1 1 . 把 書 交 還 給 管 理 員 ( 還 書 時(shí) ) 20 (讀者)的時(shí)序 圖 M a n a g e r M a n a g e r S e r v i c eB o o k S e r v i c e ( R e a d e r S e r v i c e )B o o k ( R e a d e r )1 . 身 份 驗(yàn) 證 ( )2 . 返 回 驗(yàn) 證 消 息3 . 向 數(shù) 據(jù) 庫 添 加 新 圖 書 ( 讀 者 )4 . 向 數(shù) 據(jù) 庫 添 加 新 圖 書 ( 讀 者 )5 . 添 加 成 功7 添 加 圖 書 ( 讀 者 ) 成 功6 . 更 新 數(shù) 據(jù) 庫 (讀者 )的時(shí)序圖 21 M a n a g e r M a n a g e r S e r v i c eB o o k S e r v i c e ( R e a d e r S e r v i c e ) B o o k ( R e a d e r )1 . 身 份 驗(yàn) 證 ( )2 . 返 回 驗(yàn) 證 消 息3 . 刪 除 圖 書 ( 讀 者 ) 信 息4 . 刪 除 圖 書 ( 讀 者 ) 資 料5 刪 除 成 功6 、 更 新 數(shù) 據(jù) 庫7 . 刪 除 成 功 前臺(tái)讀者登陸模塊具體設(shè)計(jì) 用例圖 用例是從用戶的角度對(duì)系統(tǒng)行為的一個(gè)描述。 cellspacing=10px cellpadding=10px caption管理員登錄 /caption tr td管理員: /tdtdinput type=text name= //td/tr trtd密 碼: /tdtd input type=password name=//td/tr trtd/tdtdinput type=submit value=提交 / input type=reset value=重置 / 26 /td/tr /table /div /div /form /body /html 管理員書刊管理 模塊頁面 右面顯示的是所有圖書的信息,用了分頁技術(shù),每頁顯示 6 條記錄。但是要做好管理系統(tǒng),并不是我們想象的寫程序那么簡單,它包括了編寫程序、數(shù)據(jù)庫設(shè)計(jì)、網(wǎng)頁制作、圖象處理、版面設(shè)計(jì) 、服務(wù)器管理等等,要搞好一個(gè)好的,完善的網(wǎng)站需要一個(gè)詳細(xì)的、合理的、可行性的規(guī)劃設(shè)計(jì)。 31 參考文獻(xiàn): [1] Jesse Zhao. Div + CSS 布局大全 . 電子工業(yè)出版社 , 1999 [2] 李剛 . Struts 2 權(quán)威指南 . 電子工業(yè)出版社 , 2021 [3] 雋青龍、 王華容 .Jsp+Oracle 動(dòng)態(tài)網(wǎng)站開發(fā) .清華大學(xué) 出版社, 2021 [4] 周桓、王殊宇 .JSP 項(xiàng)目開發(fā)全程實(shí)錄 .清華大學(xué) 出版社, 2021 [5] (美 )格雷恩著 賀師俊 譯 .Ajax實(shí)戰(zhàn)實(shí)例詳解 .人民郵電 出版社, 2021 [6] 張海藩 .軟件工程 . 北京 :清華大學(xué)出版社, 1998 [7](美) Danny Ayers、 John Bell、 Carl Java Data. 電子工業(yè)出版社 2021 [8](美) Raghn Ramakrishna、 Johannes Gehrke. Database Management Systems. Companies, Inc, 1998