版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、上海交通大學(xué)本科畢業(yè)論文 公司圖書借閱系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)上海交通大學(xué)本科畢業(yè)論文基于struts框架的公司圖書借閱系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)學(xué) 生: xxxx學(xué) 號(hào): 專 業(yè):軟件工程導(dǎo) 師:xxxx 學(xué)校代碼: 上海交通大學(xué)網(wǎng)絡(luò)教育學(xué)院二八年三月第iv頁畢業(yè)論文聲明本人鄭重聲明:1、此畢業(yè)論文是本人在指導(dǎo)教師指導(dǎo)下獨(dú)立進(jìn)行研究取得的成果。除了特別加以標(biāo)注和致謝的地方外,本文不包含其他人或其它機(jī)構(gòu)已經(jīng)發(fā)表或撰寫過的研究成果。對(duì)本文研究做出重要貢獻(xiàn)的個(gè)人與集體均已在文中作了明確標(biāo)明。本人完全意識(shí)到本聲明的法律結(jié)果由本人承擔(dān)。2、本人完全了解學(xué)校、學(xué)院有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校與學(xué)院保留并向國家有關(guān)
2、部門或機(jī)構(gòu)送交此論文的復(fù)印件和電子版,允許此文被查閱和借閱。本人授權(quán)上海交通大學(xué)網(wǎng)絡(luò)教育學(xué)院可以將此文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本文。3、若在上海交通大學(xué)網(wǎng)絡(luò)教育學(xué)院畢業(yè)論文審查小組復(fù)審中,發(fā)現(xiàn)本文有抄襲,一切后果均由本人承擔(dān)(包括接受畢業(yè)論文成績不及格、繳納畢業(yè)論文重新學(xué)習(xí)費(fèi)、不能按時(shí)獲得畢業(yè)證書等),與畢業(yè)論文指導(dǎo)老師無關(guān)。作者簽名: 日期: 基于struts框架的公司圖書借閱系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘 要在網(wǎng)絡(luò)日益普及的現(xiàn)今,對(duì)公司的圖書館而言,以前單一的手工檢索已經(jīng)不能滿足員工的需求,為了便于圖書資料的管理,以及信息溝通的便捷化,更需要有
3、效的圖書借閱管理系統(tǒng)。該設(shè)計(jì)是采用現(xiàn)在流行的mvc模式,利用struts框架,通過jsp實(shí)現(xiàn)的b/s結(jié)構(gòu)的信息平臺(tái)。系統(tǒng)信息資源通過sql server數(shù)據(jù)庫管理系統(tǒng)進(jìn)行管理,通過tomcat服務(wù)器對(duì)外發(fā)布。開發(fā)工具使用myeclipse。最終用戶只需通過web瀏覽器就能方便的使用本系統(tǒng)的實(shí)現(xiàn)借還書管理、存儲(chǔ)圖書館借閱圖書信息、瀏覽圖書館圖書借閱歷史信息、查詢圖書館借閱信息、借閱登記信息修改等各個(gè)功能。通過本平臺(tái),將改進(jìn)以前公司對(duì)圖書信息的借閱、歸還、錄入、存檔等的一些都是通過手工進(jìn)行記載并進(jìn)行處理的繁瑣處理,以便減輕管理員的工作量和操作復(fù)雜度。關(guān)鍵詞: mvc 、struts、圖書管理、借閱
4、、歸還design and implementation of lending and reading book for a company based on a struts frameabstractwith the popularity of network, the handicraft recall cant satisfy the employees need for the library of company. for the sake of the management of easy to book data, and conveniently turn of the in
5、formation communication, even need the efficient book to borrow to read management system.that design is the mvc mode that the adoption spreads now, make use of a struts frame and pass the b/s of jsp realization the information terrace of the structure. the system information resources passes the da
6、tabase management of the sql server system to carry on a management and pass a tomcat server to outward release. the development tool of myeclipse is adopted. end customer need to pass a web browser the ability convenient usage originally system of the realization borrow to return book management an
7、d save library to borrow to read a book information, browse a library book to lend an experience history information, search library to borrow to read an information and borrow to read a register information a modification etc. each function. pass this terrace, improvement the company borrowed book
8、information to read, returned, record before into, backup etc. of some all carried on to jot down through a handicraft and carry on a processed tedious processing, in order to ease the managing persons workload and operation complications.key words: mvc, struts, book manage, borrow and read, return上
9、海交通大學(xué)本科畢業(yè)論文 公司圖書借閱系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于struts框架的公司圖書借閱系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)目 錄第1章 前言11.1選題來源11.2目的和意義11.3運(yùn)行環(huán)境11.4論文的主要工作及章節(jié)內(nèi)容2第2章公司圖書借閱系統(tǒng)的分析和設(shè)計(jì)32.1系統(tǒng)所采用的技術(shù)及其原理32.2系統(tǒng)構(gòu)架32.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)32.3.1數(shù)據(jù)庫設(shè)計(jì)(數(shù)據(jù)模型)32.3.2實(shí)體聯(lián)系方法(e-r模型)52.4系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)52.4.1系統(tǒng)由以下組件構(gòu)成:62.4.2面向?qū)ο蠓治雠c設(shè)計(jì)(ooad)62.5系統(tǒng)功能模塊設(shè)計(jì)72.6系統(tǒng)主要工作流程設(shè)計(jì)8第3章公司圖書借閱系統(tǒng)的具體實(shí)現(xiàn)103.1系統(tǒng)開發(fā)環(huán)境配置103.1.
10、1 jdk和tomcat配置103.1.2 eclipse+myeclipse配置103.2 myeclipse開發(fā)struts主要步驟103.2.1 新建項(xiàng)目103.2.2 生成struts文件113.2.3修改生成的struts文件113.3系統(tǒng)主要頁面設(shè)計(jì)與具體實(shí)現(xiàn)133.4開發(fā)過程中所遇到的問題及解決方法153.4.1權(quán)限問題153.4.2分頁問題153.4.3中文處理問題163.4.4表單輸入非法字符問題163.4.5頁面緩存問題18第4章 結(jié) 論194.1系統(tǒng)總結(jié)194.2系統(tǒng)展望19致 謝20參考文獻(xiàn)21第1章 前言1.1選題來源由于以前公司對(duì)圖書信息的借閱、歸還、錄入、存檔等的
11、一些繁瑣處理都是通過手工進(jìn)行記載并進(jìn)行處理的,對(duì)員工借閱、歸還數(shù)據(jù)的處理工作量特別大,不僅浪費(fèi)大量的人力物力,而且還很容易出錯(cuò)。如果有一套完整的圖書借閱管理軟件,只需點(diǎn)擊幾下鼠標(biāo)就可完成所需操作,那樣就會(huì)大大的提高管理員的工作效率和管理水平。并能進(jìn)一步提高公司圖書管理的工作效率并使公司實(shí)施規(guī)范化管理。1.2目的和意義畢業(yè)設(shè)計(jì)是專升本兩年學(xué)習(xí)的總結(jié),同時(shí)也是自己綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的一次鍛煉。公司圖書借閱系統(tǒng)的主要目的是為了方便公司對(duì)圖書借閱的信息進(jìn)行錄入、修改、查詢、刪除,提高圖書管理的工作效率。這一系統(tǒng)的開發(fā)成功,解決了手寫速度慢、容易出錯(cuò)的現(xiàn)狀。無論是在借閱信息管理、歸還信息管理等
12、方面,都可以幫助圖書管理員最迅速最準(zhǔn)確的完成所需的工作。無論是在適用性、靈活性和易操作性方面,都顯示出了它的強(qiáng)大功能。1.3運(yùn)行環(huán)境軟件名稱:公司圖書借閱系統(tǒng)開發(fā)人員:706913020009 孫洵作品開發(fā)環(huán)境:操作系統(tǒng):windows 2000 server/xp編輯工具:eclipse v3.1+myeclipse v4.1.1 網(wǎng)頁制作工具:dreamweaver 8.0版本java編譯環(huán)境:jdk 1.5版本web服務(wù)器:tomcat 5.5版本數(shù)據(jù)庫:sql server2000作品運(yùn)行環(huán)境【軟件環(huán)境】服務(wù)器操作系統(tǒng):windows 2000/xp數(shù)據(jù)庫系統(tǒng):microsoft sq
13、l server 2000客戶機(jī)操作系統(tǒng):中文windows95/98/me/nt/2000/xp瀏 覽 器:ie 5.0以上版本安裝插件:flash mx以上版本的播放器【硬件環(huán)境】服務(wù)器cpu選pii450以上,內(nèi)存選128m以上,硬盤選10g以上客戶機(jī)cpu奔騰以上,內(nèi)存8m以上,硬盤2g以上,顯示10247681.4論文的主要工作及章節(jié)內(nèi)容本設(shè)計(jì)采用了b/s模式的設(shè)計(jì)方法,不再使用c/s的雙層結(jié)構(gòu),突破了局域網(wǎng)的限制,讓數(shù)據(jù)面對(duì)了廣域網(wǎng)上更多的用戶,更加方便了用戶的遠(yuǎn)程查詢和管理人員的遠(yuǎn)程管理。同時(shí),也方便了數(shù)據(jù)庫管理人員對(duì)數(shù)據(jù)庫的管理和維護(hù),因?yàn)椴捎玫氖侨龑咏Y(jié)構(gòu),加強(qiáng)了數(shù)據(jù)的安全性和
14、穩(wěn)定性。本設(shè)計(jì)所完成的圖書館管理系統(tǒng)軟件是一款功能比較完善的數(shù)據(jù)管理軟件,具有數(shù)據(jù)操作方便、高效等優(yōu)點(diǎn)。軟件具有以下功能 : 存儲(chǔ)圖書館借閱圖書信息。 瀏覽圖書館圖書借閱歷史信息。 查詢圖書館借閱信息等。論文的第一章主要介紹設(shè)計(jì)的背景、目的以及系統(tǒng)的主要內(nèi)容。第二章介紹本系統(tǒng)的分析和設(shè)計(jì)。第三章則針對(duì)本系統(tǒng)的需求、分析、模塊實(shí)現(xiàn)以及關(guān)鍵技術(shù)做了詳細(xì)的介紹。第四章對(duì)系統(tǒng)最終成果做了詳細(xì)的總結(jié)以及對(duì)系統(tǒng)以后的展望。第 10 頁 共 21 頁第2章公司圖書借閱系統(tǒng)的分析和設(shè)計(jì)2.1系統(tǒng)所采用的技術(shù)及其原理struts為java web應(yīng)用提供了現(xiàn)成的通用的框架。struts可以大大提高web應(yīng)用的開
15、發(fā)速度。如果沒有struts,開發(fā)人員將不得不首先花大量的時(shí)間和精力來設(shè)計(jì)、開發(fā)自己的框架。如果在web應(yīng)用中恰到好處地使用struts,將把從頭開始設(shè)計(jì)框架的時(shí)間節(jié)省下來,使得開發(fā)人員可以把精力集中在如何解決實(shí)際業(yè)務(wù)問題上。而且struts本身是一群經(jīng)驗(yàn)豐富的web開發(fā)專家的集體智慧結(jié)晶,在全世界范圍內(nèi)得到廣泛運(yùn)用并得到一致認(rèn)可。因此對(duì)于開發(fā)大型復(fù)雜的web應(yīng)用,struts是不錯(cuò)的框架選擇。2.2系統(tǒng)構(gòu)架圖書借閱系統(tǒng)采用從數(shù)據(jù)層到應(yīng)用層,最后到用戶接口層進(jìn)行設(shè)計(jì)。整個(gè)軟件生命周期劃分為可行性研究與計(jì)劃、需求分析、設(shè)計(jì)、編程、測試、運(yùn)行與維護(hù)六個(gè)階段。在此主要介紹本系統(tǒng)的需求分析和設(shè)計(jì)階段。
16、2.3系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)2.3.1數(shù)據(jù)庫設(shè)計(jì)(數(shù)據(jù)模型)本系統(tǒng)中的數(shù)據(jù)庫主要包括兩個(gè)方面。 用戶信息數(shù)據(jù)表:存儲(chǔ)管理用戶姓名以及密碼數(shù)據(jù)。 圖書借閱信息數(shù)據(jù)表:存儲(chǔ)借閱圖書的信息。包括圖書名稱、數(shù)量、借閱圖書種類、借閱人、借閱時(shí)間、應(yīng)該歸還時(shí)間、歸還標(biāo)志位、實(shí)際歸還時(shí)間、備注等字段。本系統(tǒng)使用sql server 2000作為數(shù)據(jù)庫管理系統(tǒng)。安裝sql server 2000,打開企業(yè)管理器,新建一個(gè)數(shù)據(jù)庫,將其命名為tsxt。tsxt數(shù)據(jù)庫中包含的數(shù)據(jù)表及其相應(yīng)的功能如下所示。 1)userinfo用戶信息表;2)borrowbook圖書借閱信息表;3)bookinfo圖書基本信息表;4)buy
17、info員工自費(fèi)購買圖書登記表。下面分別介紹tsxt數(shù)據(jù)庫中數(shù)據(jù)表的結(jié)構(gòu):1)userinfo用戶信息表,見表2-1表2-1用戶信息表字段名數(shù)據(jù)類型及長度說明備注usernamevarchar(50)用戶姓名主關(guān)鍵字passwordvarchar(50)用戶密碼允許為空poweridint用戶權(quán)限允許為空說明:此表用于記錄用戶信息以及權(quán)限,供員工和管理員登錄時(shí)使用。2)borrowbook圖書借閱信息表,見表2-2表2-2圖書借閱信息表字段名數(shù)據(jù)類型及長度說明備注bo_idint編號(hào)主關(guān)鍵字bo_namevarchar(50)圖書名稱允許為空bo_totalint數(shù)量允許為空bo_kindva
18、rchar(50)借閱圖書種類允許為空bo_usernamevarchar(50)借閱人姓名允許為空bo_timedatetime借閱時(shí)間允許為空bo_retimedatetime應(yīng)該歸還時(shí)間允許為空bo_flagint歸還標(biāo)志位默認(rèn)未歸還0,成功1retunrn_timedatetime實(shí)際歸還時(shí)間允許為空bo_remarkvarchar(200)備注允許為空說明:此表記錄員工借閱、歸還圖書信息,方便查詢借閱歷史信息。3)bookinfo圖書基本信息表,見表2-3表2-3圖書基本信息表字段名數(shù)據(jù)類型及長度說明備注book_idint編號(hào)主關(guān)鍵字book_namevarchar(50)圖書名稱
19、允許為空book_kindvarchar(50)圖書種類允許為空book_valuefloat價(jià)格允許為空book_totalint庫存量允許為空book_borrowint借出量允許為空book_remarkvarchar(200)備注允許為空說明:此表供管理員錄入圖書、修改圖書基本信息使用。4)buyinfo員工自費(fèi)購買圖書登記表,見表2-4表2-4員工自費(fèi)購買圖書登記表字段名數(shù)據(jù)類型及長度說明備注buy_idint編號(hào)主關(guān)鍵字buy_usernamevarchar(50)購買用戶名稱允許為空buy_namevarchar(50)圖書名稱允許為空buy_valuefloat價(jià)格允許為空bu
20、y_totalint購買數(shù)量允許為空buy_flagint購買是否成功標(biāo)志位默認(rèn)0,成功1buy_remarkvarchar(200)備注允許為空說明:此表供員工購買公司圖書,方便員工想購買或遺失公司圖書時(shí)可以使用。2.3.2實(shí)體聯(lián)系方法(e-r模型)er模型(實(shí)體聯(lián)系方法)是一個(gè)面向問題的概念性數(shù)據(jù)模型。其優(yōu)點(diǎn)是容易理解,用戶易接受。圖2-1為公司圖書借閱系統(tǒng)e-r圖。圖2-1 公司圖書借閱系統(tǒng)e-r圖2.4系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)具體在使用struts框架時(shí),對(duì)應(yīng)各個(gè)部分的開發(fā)工作主要包括:1)model部分: 采用javabean組件,設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯。根據(jù)不同的請求從action派生具
21、體action處理對(duì)象。2)controller部分:struts為提供了核心控制部分的實(shí)現(xiàn)。只需要配置actionmapping對(duì)象3)view部分: 為了使用model中的actionform 對(duì)象,必須用struts提供的自定義標(biāo)記創(chuàng)建html 表單。4)同時(shí)需要編輯兩個(gè)配置文件:web.xml和struts-config.xml。通過它們配置struts系統(tǒng)中的各個(gè)模塊之間的交互。2.4.1系統(tǒng)由以下組件構(gòu)成:1) jsp作為顯示的頁面和用戶交互2) 初始化用戶輸入的數(shù)據(jù)的bean3) formbean包裝初始化bean傳遞的數(shù)據(jù)和有效性判斷invalidate和reset方法4) a
22、ctionservlet聯(lián)合formbean、javabean 將處理結(jié)果傳遞給處理顯示的jsp頁面5) javabean處理業(yè)務(wù)邏輯的bean6) 圖象imagesweb客戶將請求發(fā)送至web服務(wù)器。任何請求都是由需要執(zhí)行的操作與參數(shù)(如果有)所構(gòu)成的。來自客戶機(jī)的所有請求都被指向一個(gè)actionservlet。actionservlet的職責(zé)是確保會(huì)話有效,然后把請求轉(zhuǎn)發(fā)至特定于操作的servlet。如有需要,servlet將與數(shù)據(jù)庫一同工作,并使用bean進(jìn)行必要的操作。一旦操作結(jié)束,特定于操作的servlet就會(huì)調(diào)用jsp顯示結(jié)果給用戶。系統(tǒng)體系結(jié)構(gòu)圖,如圖2-2所示。顯示jsp傳遞數(shù)
23、據(jù)的javabean包裝數(shù)據(jù)以及有有效性判斷和重置方法的formbean起關(guān)鍵的控制功能的actionservlet邏輯業(yè)務(wù)控制層的javabean數(shù)據(jù)庫 圖2-2 系統(tǒng)體系結(jié)構(gòu)圖2.4.2面向?qū)ο蠓治雠c設(shè)計(jì)(ooad)面向?qū)ο蠓治雠c設(shè)計(jì)(ooad)的一般細(xì)則1) 確定系統(tǒng)用戶與他們的用例。2) 通過理解要求說明與使用用例圖來確定系統(tǒng)的候選業(yè)務(wù)對(duì)象。3) 確定已確定類的職責(zé)的類列表。4) 刪除不需要的類。5) 確定類之間的關(guān)系。6) 決定各個(gè)類的各個(gè)屬性并確定可計(jì)算字段。7) 設(shè)計(jì)系統(tǒng)在其各組件之間定義良好的接口。實(shí)體類傳遞數(shù)據(jù)的類(bean)功能作用borrowbook初始化借閱、歸還圖書信
24、息添加和修改的數(shù)據(jù)bookinfo初始化圖書信息添加和修改的數(shù)據(jù)buyinfo初始化購買圖書信息添加和修改的數(shù)據(jù)yonghu初始化用戶添加和修改的數(shù)據(jù)hzzh解決數(shù)據(jù)傳遞過程中的亂碼問題基本formbean功能作用addinfoform添加借閱圖書信息時(shí)包裝傳遞的數(shù)據(jù)addbookform添加圖書信息時(shí)包裝傳遞的數(shù)據(jù)addbuyform添加購買圖書信息時(shí)包裝傳遞的數(shù)據(jù)delinfoform刪除借閱圖書信息時(shí)包裝傳遞的數(shù)據(jù)delform刪除圖書信息時(shí)包裝傳遞的數(shù)據(jù)delbuyform刪除購買圖書信息時(shí)包裝傳遞的數(shù)據(jù)loginform登陸系統(tǒng)時(shí)包裝傳遞的數(shù)據(jù)xgbookform修改圖書信息包裝傳遞
25、數(shù)據(jù)zhuceform添加用戶信息包裝傳遞數(shù)據(jù)zccfform完成添加用戶信息包裝傳遞數(shù)據(jù)action 類功能作用addinfoaction添加借閱圖書信息,顯示給jsp的顯示addbookaction添加圖書信息,顯示給jsp的顯示addbuyaction添加購買圖書信息,顯示給jsp的顯示delinfoaction刪除借閱圖書信息,顯示給jsp的顯示delaction刪除圖書信息,顯示給jsp的顯示delbuyaction刪除購買圖書信息,顯示給jsp的顯示loginaction登陸系統(tǒng)信息,顯示給jsp的顯示xgbookaction修改圖書信息,顯示給jsp的顯示zhuceaction添
26、加用戶信息,顯示給jsp的顯示zccf action完成添加用戶信息,顯示給jsp的顯示特定功能類功能作用jdbctest直接和數(shù)據(jù)庫連接的邏輯事物類2.5系統(tǒng)功能模塊設(shè)計(jì)本系統(tǒng)利用jsp(strust框架)采用b/s結(jié)構(gòu)完成“公司圖書借閱系統(tǒng)”的設(shè)計(jì),達(dá)到動(dòng)態(tài)查詢圖書借閱歷史信息、分頁顯示圖書借閱和歸還信息、圖書信息增改等目的。系統(tǒng)主要功能如下: 實(shí)現(xiàn)借、還書管理。 存儲(chǔ)圖書館借閱圖書信息。 瀏覽圖書館圖書借閱歷史信息。 查詢圖書館借閱信息。 借閱登記信息修改。系統(tǒng)主要功能模塊,如圖2-3所示。公司圖書借閱系統(tǒng)歷史信息個(gè)人圖書管理圖書歸還借閱登記圖書基本信息維護(hù)歷史借閱刪除歷史借閱查詢個(gè)人自
27、費(fèi)購買圖書登記 借閱刪除借閱查詢借閱修改圖書基本信息刪除圖書基本信息查詢圖書基本信息修改圖書基本信息添加圖2-3系統(tǒng)主要功能模塊1、 用戶類型系統(tǒng)用戶分為普通員工和管理員兩類,登錄后管理員可以對(duì)整個(gè)圖書管理系統(tǒng)進(jìn)行管理。包括圖書借閱、歸還、查詢、修改和歷史記錄信息等整個(gè)圖書借閱過程的全程功能管理。2、 管理模塊圖書共分為圖書借閱登記、圖書借閱信息修改、圖書借閱信息查詢、借閱信息刪除、個(gè)人圖書管理、圖書歷史借閱查詢和歷史借閱刪除7個(gè)功能模塊對(duì)圖書進(jìn)行管理。2.6系統(tǒng)主要工作流程設(shè)計(jì)1、用戶主要工作流程用戶登錄公司圖書借閱系統(tǒng)后首先按照權(quán)限登錄到不同的頁面,如登錄失敗返回首頁,登錄成功后用戶進(jìn)入登
28、陸頁面user_login.jsp,該頁面顯示用戶所有借閱圖書信息、可以再次借閱圖書登記、歷史信息查看以及購買所需圖書。2、管理員主要工作流程管理員登錄到權(quán)限所分配的頁面admin_login.jsp后,可以對(duì)圖書基本信息、用戶帳戶信息進(jìn)行管理和查閱用戶借閱、歸還圖書信息、刪除歷史過期圖書借閱信息以及審批同意用戶購買所需圖書信息。公司圖書借閱系統(tǒng)主要程序流程圖,如圖2-4所示。公司圖書借閱系統(tǒng)首頁default.jsp用戶登錄失敗成功管理員登錄頁面admin_login.jsp歷史借閱信息old.jsp圖書基本信息維護(hù)book_info.jsp圖書歸還頁面back_info.jsp借閱登記頁面
29、add_info.jsp歷史借閱查詢search_old.jsp借閱修改頁面rework_info.jsp借閱刪除頁面del.jsp借閱查詢頁面search_info.jsp歷史借閱管理頁面old_info.jsp歷史借閱刪除del_old.jsp圖書基本信息修改頁面rework_book.jsp圖書基本信息刪除頁面del_book.jsp圖書基本信息查詢頁面search _book.jsp圖書基本信息添加頁面add_book.jsp圖2-4 公司圖書借閱系統(tǒng)主要程序流程圖第3章公司圖書借閱系統(tǒng)的具體實(shí)現(xiàn)此章主要介紹公司圖書借閱系統(tǒng)的設(shè)計(jì)過程,開發(fā)過程中涉及的問題以及解決方法。3.1系統(tǒng)開發(fā)環(huán)
30、境配置3.1.1 jdk和tomcat配置分別安裝jdk1.5和tomcat5.5,配置環(huán)境變量path=x:jdk1.5bin;,java_home=x:jdk1.5;,其中x:是安裝jdk的硬盤c:,d:等。3.1.2 eclipse+myeclipse配置先安裝eclipse,然后安裝myeclipse,安裝完畢,重新啟動(dòng)eclipse以后,選取菜單“windowspreferences”,會(huì)看到比以前的eclipse多了myeclipse選項(xiàng),點(diǎn)擊“myeclipseapplication serverstomcat 5”配置詳細(xì)的服務(wù)器信息,包括:tomcat home direct
31、ory、tomcat base directory和tomcat temp directory。單擊tomcat home directory后面的“browse”可以選取tomcat的安裝路徑,例如:“c:/tomcat 5.5”。填寫完畢后,后面兩項(xiàng)也默認(rèn)設(shè)置為“c:/tomcat 5.5”和“c:/tomcat 5.5/temp”。然后啟動(dòng)該服務(wù)器,選擇右上角的“tomcat server”選項(xiàng)組中的“enable”選項(xiàng)。然后配置相應(yīng)的jdk信息。點(diǎn)擊“tomcat 5”,有jdk、launch和path選項(xiàng),選中jdk選項(xiàng),單擊旁邊的“add”按鈕,彈出“add jre”對(duì)話框,在對(duì)話
32、框中填寫jre name和jre home directory信息,jre name是對(duì)所用的jdk的命名,jdk home directory填入的是jdk的安裝路徑,然后單擊“ok”按鈕返回原來的preferences對(duì)話框,在“tomcat jdk name”下拉框中選取添加的jdk,配置完成,單擊“apply”按鈕保存剛才的配置結(jié)果。3.2 myeclipse開發(fā)struts主要步驟3.2.1 新建項(xiàng)目首先,選取“filenew project”菜單,點(diǎn)開“j2ee”選項(xiàng),選取“web project”選項(xiàng),單擊“next”按鈕,彈出“new j2ee web project”對(duì)話框,
33、填入project name,例如:library,然后單擊“finish”按鈕,完成新建項(xiàng)目。3.2.2 生成struts文件在eclipse的package explorer窗口中選中剛才新建的library項(xiàng)目,右鍵單擊項(xiàng)目,在彈出的菜單中選取“myeclipseadd struts capabilities.”選項(xiàng)。彈出“struts support for myeclipse web project”對(duì)話框,全部按默認(rèn)設(shè)置,單擊“finish”,這樣就把struts框架中需要用到的jar文件和struts標(biāo)簽庫文件添加到項(xiàng)目中了。然后生成項(xiàng)目的jsp、actionform和actio
34、n,借助myeclipse,這3種文件可以同步生成。選取“filenewothers”菜單項(xiàng),在彈出的“new”對(duì)話框中選取“j2eestruts 1.1struts 1.1 form,action&jsp”選項(xiàng),單擊“next”按鈕,彈出“struts 1.1 form declaration”對(duì)話框,在這個(gè)對(duì)話框中,可以完成的任務(wù)是生成一個(gè)actionform,并且根據(jù)actionform的設(shè)置,選擇是否需要生成相應(yīng)的jsp文件。首先在“use case”文本框中輸入要新建的actionform的名稱,然后再“superclass”下拉框中選擇“org.apache.struts.acti
35、on.actionform”,在選項(xiàng)卡“form properties”里,可以添加actionform所需要的屬性,也就是通常表單的屬性。單擊“add”按鈕,彈出“create property”對(duì)話框,添加一個(gè)property需要填寫3項(xiàng)內(nèi)容:name是指要添加屬性的名稱,type是指要添加屬性的數(shù)據(jù)類型,jsp input type是指在jsp頁面中將為該屬性設(shè)置的輸入空間類型。在“methods”選項(xiàng)卡中可以設(shè)置actionform中需要重載的方法,默認(rèn)是重載reset方法和validate方法。這里不需要做任何修改。在“jsp”選項(xiàng)卡中可以選擇是否要生成相應(yīng)的jsp文件,以及生成js
36、p文件的路徑。單擊“next”按鈕,彈出“struts 1.1 action declaration”對(duì)話框,在這個(gè)對(duì)話框中,可以完成的任務(wù)是生成一個(gè)action,里面的設(shè)置全部按默認(rèn)即可,直接按“finish”,這樣,struts的form,action,jsp,包括struts-config.xml就算生成好了。3.2.3修改生成的struts文件首先,修改生成的actionform文件。actionform也是一種javabean,除了具有一些javabean的常規(guī)方法以外還包含一些特殊的方法,用于驗(yàn)證html表單數(shù)據(jù)以及將其屬性重新設(shè)置為默認(rèn)值。struts框架利用actionform
37、來進(jìn)行視圖和控制器之間表單數(shù)據(jù)的傳遞。struts框架把用戶輸入的表單數(shù)據(jù)保存在actionform中,把它傳遞給控制器,控制器可以對(duì)actionform中的數(shù)據(jù)進(jìn)行修改,jsp文件使用struts標(biāo)簽讀取修改后的actionform的信息,重新設(shè)置html表單。在actionform文件中,主要修改兩個(gè)重載的方法:reset方法和validate方法。reset方法用于將表單屬性重新設(shè)置為默認(rèn)值,一般把表單的屬性全置null就可以了。遇到表單單選框,如果需要默認(rèn)為某個(gè)選項(xiàng)的話,也可以在reset方法中定義,例如:bo_kind=小說;,在屬性為bo_kind的單選框中默認(rèn)選項(xiàng)就被設(shè)置成“小說
38、”了。validate方法用于驗(yàn)證表單數(shù)據(jù)是否符合要求。validate方法主要負(fù)責(zé)檢查數(shù)據(jù)的格式和語法,而不負(fù)責(zé)檢查數(shù)據(jù)是否符合業(yè)務(wù)邏輯。如:驗(yàn)證表單文本框不能為空等。在jsp中用標(biāo)簽調(diào)用,提示的錯(cuò)誤信息在applicationrperties資源文件中定義。一旦表單里信息不符合要求,就顯示資源文件中的信息。接下來,新建一個(gè)用于處理業(yè)務(wù)邏輯的bean,在這個(gè)bean中主要寫數(shù)據(jù)庫增刪查改的業(yè)務(wù)邏輯方法,包括本圖書借閱系統(tǒng)中,字段所取得對(duì)應(yīng)碼表中的代碼以及處理分頁顯示的代碼。然后,修改生成的action文件。action文件在struts框架中擔(dān)任控制器的角色,它繼承了
39、javax.servlet.http.httpservlet類,主要負(fù)責(zé)接收http請求信息,根據(jù)配置文件struts-config.xml的配置信息,把請求轉(zhuǎn)發(fā)給適當(dāng)?shù)腶ction對(duì)象。在這個(gè)文件中,一般先接受jsp中表單的數(shù)據(jù),然后調(diào)用剛才bean里的方法,最后返回actionforward對(duì)象,實(shí)現(xiàn)頁面的跳轉(zhuǎn)。跳轉(zhuǎn)的頁面在struts-config.xml中定義。最后,修改jsp文件。在struts框架的jsp文件中,都是用struts標(biāo)簽來表示的。下面介紹幾個(gè)常用和本系統(tǒng)用到的struts標(biāo)簽。1) 標(biāo)簽:處理html表單是web應(yīng)用的主要工作之一,在struts應(yīng)用中,使用標(biāo)簽來創(chuàng)建
40、表單。標(biāo)簽的action屬性用來制定當(dāng)用戶提交表單后,處理用戶請求的組件。struts框架將參照struts配置文件來查找相應(yīng)的action組件。2) 標(biāo)簽:在表單上創(chuàng)建html文本框。3) 標(biāo)簽:在表單上創(chuàng)建html下拉列表框。4) 標(biāo)簽:在表單上創(chuàng)建html文本框單選框。5) 標(biāo)簽:在表單上創(chuàng)建提交按鈕。6) 標(biāo)簽:在表單上創(chuàng)建復(fù)位按鈕。7) 標(biāo)簽:生成下拉列表框選項(xiàng),該標(biāo)簽嵌套在中使用。8) 標(biāo)簽:用于輸出錯(cuò)誤消息,在上文已有所介紹。9) 標(biāo)簽:用于在網(wǎng)頁上輸出某個(gè)bean或它的屬性的內(nèi)容。name屬性設(shè)置指定的變量。property設(shè)置指定的變量的屬性。10) 標(biāo)簽:與標(biāo)簽類似,區(qū)別在
41、于多了個(gè)id屬性,它把標(biāo)簽里取出的值,賦到id屬性中。11) 標(biāo)簽:能夠在一個(gè)循環(huán)中遍歷數(shù)組、collection、enumeration、iterator或map中的所有元素。3.3系統(tǒng)主要頁面設(shè)計(jì)與具體實(shí)現(xiàn)系統(tǒng)用戶登錄后頁面如圖3-1所示,用戶可以在頁面內(nèi)瀏覽到?jīng)]有歸還的借閱圖書信息。包括借閱圖書名稱、數(shù)量、種類以及借閱時(shí)間、應(yīng)歸還時(shí)間、備注等。選擇查詢條件,輸入查詢關(guān)鍵字,單擊“查詢”按鈕查詢未歸還的借閱圖書信息。單擊“跳轉(zhuǎn)”按鈕以及“下一頁”、“最后一頁”跳轉(zhuǎn)到所需的頁,單擊“借閱登記”、“圖書歸還”、“歷史信息”進(jìn)入相應(yīng)的圖書借閱管理系統(tǒng)頁面。圖3-1 系統(tǒng)用戶借閱信息頁面單擊“借閱
42、登記”進(jìn)入圖書借閱登記頁面,進(jìn)行借閱圖書信息登記。填寫好圖書借閱信息后,單擊“登記”按鈕保存完畢。頁面如圖3-2所示。圖3-2 圖書借閱登記頁面單擊系統(tǒng)用戶借閱信息頁面“圖書歸還”按鈕,進(jìn)入圖書歸還頁面。頁面可以進(jìn)行當(dāng)前未歸還圖書借閱信息查詢,管理員還可以對(duì)所有借閱圖書信息進(jìn)行修改、歸還確認(rèn)和刪除操作。頁面如圖3-3所示。圖3-3 借閱圖書信息管理頁面單擊“歸還”按鈕,修改數(shù)據(jù)庫,圖書借閱歸還數(shù)據(jù)庫。單擊“刪除”按鈕刪除借閱信息。單擊“修改”按鈕,進(jìn)入修改頁面,如圖3-4所示。在修改頁面中填寫好需要更新的圖書借閱信息,單擊“修改”按鈕保存修改的信息。圖3-4 借閱登記信息修改頁面單擊系統(tǒng)用戶借
43、閱信息頁面“歷史信息”按鈕,進(jìn)入圖書借閱歷史信息頁面。頁面主要顯示圖書借閱系統(tǒng)中關(guān)于圖書借閱、歸還歷史信息,同時(shí)普通用戶只能查看圖書借閱歷史信息,而管理員可以刪除歷史借閱信息。提供當(dāng)前借閱信息管理入口。單擊“刪除”按鈕,刪除圖書借閱歷史信息。頁面如圖3-5所示。圖3-5 借閱圖書歷史信息管理頁面3.4開發(fā)過程中所遇到的問題及解決方法3.4.1權(quán)限問題本系統(tǒng)在用戶登錄表中由powerid字段控制權(quán)限,表內(nèi)共有2種權(quán)限:管理員和用戶。管理員在本系統(tǒng)中有添加、刪除、修改圖書信息、歷史借閱信息,同意用戶購買圖書的權(quán)限。普通員工用戶只能查詢、瀏覽、申請購買圖書等各種信息的權(quán)限。3.4.2分頁問題在一般w
44、eb程序中,分頁會(huì)被頻繁地使用,但分頁的實(shí)現(xiàn)細(xì)節(jié)卻是編程過程中比較麻煩的事情。目前比較廣泛使用的分頁方式有多種,而本系統(tǒng)根據(jù)實(shí)際需求采用以下方法,就是每次翻頁都查詢一次數(shù)據(jù)庫,也就是只從數(shù)據(jù)庫中取要顯示那一頁的數(shù)據(jù),這樣做得好處是雖然每次翻頁都需要查詢數(shù)據(jù)庫,但查詢出的紀(jì)錄數(shù)很少,網(wǎng)絡(luò)傳輸數(shù)據(jù)量不大,有利于提高查詢速度,比在應(yīng)用服務(wù)器層做緩存有效多了。下面來看一下,本系統(tǒng)是怎樣把單頁數(shù)據(jù)取出來的。核心代碼:select top +pagenum+ * from (select top +(total-(nowpage-1)*pagenum)+ * from table order by id
45、desc) as t order by id asc pagenum -每個(gè)頁面顯示的紀(jì)錄數(shù) nowpage -當(dāng)前頁數(shù) total -記錄總數(shù) select top +(total-(nowpage-1)*pagenum)+ * from table order by id desc就是根據(jù)id倒序,把剩余頁數(shù)的記錄取出,然后再正序查這張表,前幾個(gè)也就是這頁要顯示的記錄了。3.4.3中文處理問題中文顯示問題是在編寫jsp頁面的時(shí)候最常見的問題。在顯示頁面時(shí),經(jīng)常碰到中文顯示亂碼;在提交表單信息進(jìn)入數(shù)據(jù)庫時(shí),經(jīng)常在數(shù)據(jù)庫里中文為亂碼。這里介紹本系統(tǒng)中,中文問題解決的方法:1) 在每個(gè)jsp頁面
46、開頭寫2) 在每個(gè)表單字段進(jìn)數(shù)據(jù)庫前,用以下方法進(jìn)行轉(zhuǎn)碼。static public string iso2gb(string str) if (str != null) byte tmpbyte=null; try tmpbyte=str.getbytes(iso8859_1); catch (unsupportedencodingexception e) system.out.println(e.getmessage(); try str=new string(tmpbyte,gbk); catch(unsupportedencodingexception e) system.out.pr
47、intln(e.getmessage(); return str; 3) 在applicationrperties資源文件中定義的中文信息,一般會(huì)在jsp頁面中顯示亂碼。處理方法為:新建一個(gè)中文資源文件perties,在里面可以輸入要顯示的中文信息,然后按“開始運(yùn)行cmd”在彈出的命令行窗口中,先找到你存中文資源文件的位置,然后輸入native2ascii perties applicationrperties,這樣就會(huì)在同目錄下生成一個(gè)轉(zhuǎn)碼后的applicationrperties,把這個(gè)
48、文件覆蓋原文件即可。3.4.4表單輸入非法字符問題知道,如果表單中的必填項(xiàng)為空或者在表單中輸入非法字符,如:單引號(hào),雙引號(hào)等,很可能會(huì)導(dǎo)致插入,修改不成功,拋出異常,嚴(yán)重可導(dǎo)致系統(tǒng)崩潰。所以必須對(duì)這一問題進(jìn)行處理。關(guān)于表單中的必填項(xiàng)為空,可以在form的validate方法中定義,如:public actionerrors validate(actionmapping mapping,httpservletrequest request) actionerrors errors=new actionerrors();actionerror nokherror = new actionerror
49、(no.kh.error);if (kh = null| kh.length()1) /kh為表單的必填項(xiàng)errors.add(kh,nokherror);return errors;然后在applicationrperties里寫入no.kh.error=卡號(hào)不能為空(要用上文方法處理中文問題),然后在jsp頁面要顯示提示錯(cuò)誤的信息處寫,這樣,如果卡號(hào)不填就按提交的話,頁面不會(huì)跳轉(zhuǎn),會(huì)在同一頁面中顯示已定義的錯(cuò)誤信息。在表單中輸入非法字符問題,在本系統(tǒng)中,是用正則表達(dá)式解決的。簡單的說,正則表達(dá)式是一種可以用于模式匹配和替換的強(qiáng)有力的工具??梢栽趲缀跛械幕趗nix
50、系統(tǒng)的工具中找到正則表達(dá)式的身影,例如,vi編輯器,perl或php腳本語言程序等。此外,象javascript這種客戶端的腳本語言也提供了對(duì)正則表達(dá)式的支持。由此可見,正則表達(dá)式已經(jīng)超出了某種語言或某個(gè)系統(tǒng)的局限,成為人們廣為接受的概念和功能。正則表達(dá)式可以讓用戶通過使用一系列的特殊字符構(gòu)建匹配模式,然后把匹配模式與數(shù)據(jù)文件、程序輸入以及web頁面的表單輸入等目標(biāo)對(duì)象進(jìn)行比較,根據(jù)比較對(duì)象中是否包含匹配模式,執(zhí)行相應(yīng)的程序。 舉例來說,正則表達(dá)式的一個(gè)最為普遍的應(yīng)用就是用于驗(yàn)證用戶表單填入的信息是否正確。如果通過正確,用戶所填寫的表單信息將會(huì)被正常處理;反之,如果與正則表達(dá)的模式不匹配,將會(huì)做出相應(yīng)的處理。由此可見,正則表達(dá)式在web應(yīng)用的邏輯判斷中具有舉足輕重的作用。 下面列舉本系統(tǒng)中用到的正則表達(dá)式加以說明。1) /0-9/ /匹配數(shù)字的正則表達(dá)式2) /a-za-z/ /匹配26個(gè)英文字母大小寫的正則表達(dá)式3) /u4e00-u9fa5/ /匹配中文字符的正則表達(dá)式然后,只要在需要判斷的表單文本框里,加個(gè)onkeyup屬性就可以了,例如:onkeyup=value=value.replace(/0-9a-za-z/g,),意思就是如果輸入了數(shù)字和26個(gè)大小寫字母以外的非法字符,一律把它替換成空。這樣用戶在填寫表單的時(shí)候就不可能輸入非法字符了。3.4.5頁面緩
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同zao的法律認(rèn)定
- 合同法第115條內(nèi)容
- 統(tǒng)考版2025屆高考?xì)v史一輪復(fù)習(xí)課后限時(shí)集訓(xùn)39新文化運(yùn)動(dòng)與馬克思主義的傳播含解析新人教版
- 2024年山東客運(yùn)從業(yè)資格證應(yīng)用能力考試
- 2024最高額質(zhì)押反擔(dān)保合同
- 2024購房合同能否更名以及如何更名
- 專題10.人物描寫及其作用-2023年三升四語文暑期閱讀專項(xiàng)提升(統(tǒng)編版)
- 四年級(jí)讀書卡完整版
- 三年級(jí)語文上冊第五單元測試卷-基礎(chǔ)知識(shí)與綜合能力篇 含答案 部編版
- 2024成品柴油買賣合同
- 科普知識(shí)講座(火箭)PPT精選課件
- 高三一模動(dòng)員主題班會(huì)-課件(PPT演示)
- 車轍的形成原因及預(yù)防措施
- 風(fēng)電場升壓站建筑工程主要施工方案
- 第五講新聞評(píng)論的結(jié)構(gòu)與節(jié)奏
- 從PK-PD看抗菌藥物的合理應(yīng)用
- 加熱爐施工方案
- 意象對(duì)話放松引導(dǎo)詞2[生活經(jīng)驗(yàn)]
- 高速公路安全生產(chǎn)標(biāo)準(zhǔn)化指南1
- 學(xué)科融合課題研究實(shí)施方案
- 生物質(zhì)壓塊機(jī)使用說明書
評(píng)論
0/150
提交評(píng)論