2858.A基于web的圖書管理系統(tǒng)(JAVA+SQL)畢業(yè)設計_第1頁
2858.A基于web的圖書管理系統(tǒng)(JAVA+SQL)畢業(yè)設計_第2頁
2858.A基于web的圖書管理系統(tǒng)(JAVA+SQL)畢業(yè)設計_第3頁
2858.A基于web的圖書管理系統(tǒng)(JAVA+SQL)畢業(yè)設計_第4頁
2858.A基于web的圖書管理系統(tǒng)(JAVA+SQL)畢業(yè)設計_第5頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、詳細源代碼及數(shù)據(jù)庫請聯(lián)系本人 畢業(yè)設計報告 題 目: 基于web圖書管理系統(tǒng)系 別: 專業(yè)班級: 姓 名:學 號:指導教師: 年 月 日摘要當今時代是飛速發(fā)展的信息時代。在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應用于信息管理系統(tǒng)的環(huán)境。計算機的最大好處在于利用它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機進行信息管理與信息管理系統(tǒng)的開發(fā)密切相關,系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書館信息而設計的。圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)

2、的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計算機進行信息管理。根據(jù)調查得知,他們以前對信息管理的主要方式是基于文本、表格等紙介質的手工處理,對于圖書借閱情況(如借書天數(shù)、超過限定借書時間的天數(shù))的統(tǒng)計和核實等往往采用對借書卡的人工檢查進行,對借閱者的借閱權限、以及借閱天數(shù)等用人工計算、手抄進行。數(shù)據(jù)信息處理工作量大,容易出錯;由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書館有計算機,但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基本環(huán)境。數(shù)據(jù)處理手工操作,工作量大,出錯率高,出錯后不易更改。圖書館采

3、取手工方式對圖書借閱情況進行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內容記錄在文件中,圖書館的工作人員和管理員也只是當時對它比較清楚,時間一長,如再要進行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費時、費力。如要對很長時間以前的圖書進行更改就更加困難了?;谶@些問題,我認為有必要建立一個圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準確性,能夠及時、準確、有效的查詢和修改圖書情況。關鍵字:圖書管理系統(tǒng),圖書管理系統(tǒng)的實現(xiàn),數(shù)據(jù)庫abstractthe present era is

4、 the rapid development of the information age. in all walks of life can not be separated from information processing, which is widely used in computer information management system environment. the greatest advantage the computer is able to use its information management. control the use of computer

5、s for information, not only improve the work efficiency, but also greatly improved its security.especially for complex information management, computer can give full play to its advantage. computer information management and information management system is closely related to system development is a

6、 prerequisite for system management. the system is to manage the design of library information. library as a distribution center for information resources, books and many users to borrow materials, including a lot of information and data management, today, there are many libraries are initially star

7、ted, not even the use of computer information management. according to the survey that they had previously on the main form of information management is based on the text, tables, etc. to deal with the previous manual, for books to borrow (for example, the number of days library, library time exceed

8、s the allotted number of days) and verification, such as statistics are often used library card to carry out manual inspections of the lending authority to borrow and borrow, such as artificial days, the manual for. data processing work load is heavy, prone to error; as a result of the data range, e

9、asily lost, and not easy to find. overall, the lack of a systematic, standardized means of information management. while some libraries have computers, but has not yet been used for information management, and its effect does not play, the more prominent of idle resources, which is management inform

10、ation system developed by the basic environment. manual data processing, the workload and high error rate, not easy to change mistakes. manually take the library to borrow books manually manage the situation, as more information, books to borrow the management of information confusing and complicate

11、d; general lending are recorded in the library card, the number of books and the content recorded in the document library staff and administrators at the time it is only more clearly, over time, such as to carry out further inquiries, many have read the information, find the resulting query time-con

12、suming, laborious. such as a long time ago to make changes to the book is even more difficult. because of these problems, i think it is necessary to establish a library management system, so that the work of library management standardization and systematization, procedures, and to avoid arbitrary l

13、ibrary management to improve the information processing speed and accuracy of timely, accurate and effective inquiry and revision of the book case.keywords: library management system, library management system, databas目錄第一章 緒論31.1目的31.2范圍31.3總體概括41.4可行性研究的前提41.4.1項目基本要求41.4.2可行性研究方法51.4.3決定可行性的主要因素5

14、1.4.3可行性分析報告51.5采用建議系統(tǒng)可能帶來的影響51.6社會因素可行性分析61.6.1法律因素61.6.2用戶使用可行性61.6.3系統(tǒng)存在的不足71.7數(shù)據(jù)庫71.7.1sql基礎71.7.2sql語句81.8應用技術以及開發(fā)工具的介紹111.8.1struts:121.8.2hibernate:181.8.3eclipse:221.8.4jdk:231.8.5tomcat:251.8.6mysql:251.8.7md5加密技術:291.9需求信息的整理321.9.1對現(xiàn)有系統(tǒng)的分析321.9.2對所建議系統(tǒng)的分析331.10總結36第二章 系統(tǒng)需求分析362.1軟件概述362.1

15、.1介紹362.2用戶特征392.3項目背景392.4一般性約束402.5假定的依據(jù)402.5具體需求412.5.1功能需求412.5.2性能需求412.5.3安全性需求422.5.4軟件質量屬性422.5.5技術方面432.5.6系統(tǒng)功能分析432.5.7應用需求分析432.6數(shù)據(jù)庫需求442.6.1用戶數(shù)據(jù)442.6.2元數(shù)據(jù)452.6.3索引452.6.4應用元數(shù)據(jù)462.6.5數(shù)據(jù)庫管理系統(tǒng)462.6.6創(chuàng)建數(shù)據(jù)庫472.6.7數(shù)據(jù)庫理論基礎472.7系統(tǒng)數(shù)據(jù)庫設計512.7.1概念設計512.7.2關系數(shù)據(jù)庫的邏輯設計522.7.3數(shù)據(jù)庫的實現(xiàn)532.8系統(tǒng)特色61第三章、系統(tǒng)概要設

16、計623.1系統(tǒng)總體設計623.2系統(tǒng)流程633.3概念設計653.4用例設計663.5概要設計說明書663.5.1前言673.5.2概要設計說明書683.5.6數(shù)據(jù)模塊窗體的設置68第四章、系統(tǒng)詳細設計744.1登錄模塊744.1.1頁面744.1.2功能744.2用戶信息管理764.2.1查詢用戶信息764.2.2添加用戶信息774.3圖書信息管理784.3.1查詢圖書信息784.3.2增加圖書信息804.4借閱信息管理814.4.1查詢借閱信息814.5讀者信息管理834.5.1查詢讀者信息834.5.2添加讀者信息844.6歷史操作信息管理854.6.1查詢歷史操作信息854.7數(shù)據(jù)約

17、束864.8javascript驗證腳本:89第五章、系統(tǒng)測試955.1確認測試計劃955.2集成測試計劃955.3單元測試計劃955.4單元測試報告955.5集成測試報告965.6確認測試報告97第六章、用戶手冊996.1引言996.1.1編寫目的996.1.2背景996.1.3參考資料996.2用途1006.2.1功能1006.2.2性能1006.2.3安全保密1016.3運行環(huán)境1016.3.1硬設備1016.3.2支持軟件101第七章、結論102第八章、英文資料104第九章、參考文獻107第一章 緒論1.1目的隨著科學技術的發(fā)展,計算機技術在圖書館得到廣泛的應用,各式各樣的自動化管理應

18、用系統(tǒng),在各種不同性質、不同類型、不同規(guī)模的圖書館中發(fā)揮著越來越重要的作用。如何利用計算機技術和網(wǎng)絡通訊技術,對文獻信息資源進行科學的管理、有效的開發(fā)、實現(xiàn)資源共享、實現(xiàn)圖書館的現(xiàn)代化管理,是圖書館工作的重要內容之一。1.2范圍各學校圖書館,或供學習者使用1.3總體概括圖書管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。因此要求結合開入式圖書館的要求,對mysql數(shù)據(jù)庫管理系統(tǒng)、sql語言原理、完成對圖書管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)

19、據(jù)庫模式分析,并由此設計了數(shù)據(jù)庫結構和應用程序。1.4可行性研究的前提1.可行性研究方法: 通過調查分析開發(fā)人事工資管理所具備的能力及實現(xiàn)的方法。確定總體結構,利用sql server數(shù)據(jù)庫所具有的能力,以最簡潔最容易的方法,使用使其成為一個實用的系統(tǒng)軟件。2 .決定可行性的主要因素: 企業(yè)的規(guī)模、局域網(wǎng)設備狀況、操作人員技術、企業(yè)運做情況、企業(yè)內部管理狀況、管理人員技術1.4.1項目基本要求完成系統(tǒng)的所有要求的功能,同時考慮到系統(tǒng)的易使用性、易維護性和易移植性a. 功能:本系統(tǒng)的主要完成員工工資的計算、人事的管理等具體功能如下:1、 以一定的方式瀏覽數(shù)據(jù)庫中的數(shù)據(jù)2、 按照一定的方式查詢數(shù)據(jù)

20、。3、 具有一定的統(tǒng)計功能。4、 對系統(tǒng)能夠進行系統(tǒng)管理,如數(shù)據(jù)的備份還原等b. 性能:系統(tǒng)的速度快,能快速的對要求做出反映,同時具有很高的精度,系統(tǒng)合法,檢驗程度高。c. 輸出:根據(jù)需求對有寫報表可以打印輸出。d. 輸入:在各個模塊允許的字段要求范圍內可以輸入你要查詢的。e. 安全與保密要求:項目的保密性能好,通過系統(tǒng)密碼驗證,數(shù)據(jù)庫密碼驗證和用戶權限的設置。f. 與軟件相關的其他系統(tǒng):項目體系結構采用b/s模式,開發(fā)工具為myeclipse5.1,mysql, rational rose。g. 完成期限:本項目完成期限是2個月。1.4.2可行性研究方法1進行客戶的調查,通過客戶的需求來選擇

21、系統(tǒng)實現(xiàn)的功能。2對有關專家進行咨詢,提高系統(tǒng)的實用性和進一步完善系統(tǒng)。3對相關同類的產(chǎn)品進行市場調研1.4.3決定可行性的主要因素支付各項軟硬件資源,文本,通信費用等都在標準的用戶接受范圍中,沒有超過預算這樣的軟件可以被接受實行。同時軟件的開發(fā)時間的長短也是軟件能否被開發(fā)接受的一項評價標準。還有軟件的難易程度要適當,不能是小材大用也不能是所設計的軟件不能更好的滿足用戶的需求,要根據(jù)實際量身而定。1.4.3可行性分析報告可行性分析的最后成果是寫出可行性分析報告??尚行苑治鰣蟾姘ㄏ铝袃热荩簣D書館近期和長遠目標,新系統(tǒng)的總體目標及主要功能主要問題和主要信息需求 擬訂新系統(tǒng)方案從經(jīng)濟、技術、社會等

22、方面論證方法的可行性1.5采用建議系統(tǒng)可能帶來的影響(1)對設備的影響cpu: 賽揚4.0以上版本.內存:128mb輸入輸出設備:顯示器,打印機,鍵盤客戶機:windows 2000/server/xp服務器:sql server 2000(3)對用戶的影響只需要用戶單位人員具有一般電腦操作水平即可使用,2人維護??梢怨?jié)約開支,減少人員,降低出錯率??删S護性:本軟件的組成程序為java語言,結構較簡單,直觀意義上較獨立,因此給予電子化的所構成的硬件的簡單可維護的特點,決定了該軟件的簡單維護性. 可移植,可轉換,軟件可升級,可在不同操作系統(tǒng)中使用如linux,unix等系統(tǒng)而不影響本軟件的應用.

23、保密性:本軟件為保證數(shù)據(jù)庫內數(shù)據(jù)的安全,給不同的用戶級別賦予相應的權限以便于用戶的管理(4)對系統(tǒng)運行的影響該系統(tǒng)可以在現(xiàn)有條件下正常運行的前提是必需采用:widows 2000/windows xp/server2003 的操作系統(tǒng),安裝所需要的軟件。(5)對開發(fā)環(huán)境的影響開發(fā)應用本系統(tǒng)后,方便企業(yè)管理日常業(yè)務,管理信息,庫存信息等。(6)對運行環(huán)境的影響環(huán)境要求一般,適當調節(jié)即可。要保持室內空氣干燥。數(shù)據(jù)保持定時更新。1.6社會因素可行性分析1.6.1法律因素系統(tǒng)地研制和開發(fā)都選用正版軟件,將不會侵犯他人。集體和國家利益,不會違反國家的政策和法律,可以放心使用。1.6.2用戶使用可行性由于

24、公司開發(fā)了圖書管理系統(tǒng),對圖書管理進行相關的操作有了很大的提高,運行速度快,效率也有所提高,新系統(tǒng)界面友好,使用簡捷方便,能滿足用戶和管理員的使用要求。本軟件在操作方面全部與數(shù)據(jù)庫連接,操作一次到位。1.6.3系統(tǒng)存在的不足 由于時間和技術水平的緣故,本網(wǎng)站還存在著許多方面的工作尚未完善。網(wǎng)站對批量增加的驗證信息不是很完善,造成了操作人員錄入的錯誤數(shù)據(jù)和數(shù)據(jù)本身的錯誤所造成數(shù)據(jù)的不完整性,網(wǎng)站使用javascript對輸入的信息進行約束和驗證,但還是有部分地方不是很完善。在網(wǎng)站的更進一步的實現(xiàn)階段,應加強數(shù)據(jù)的完整性約束提高系統(tǒng)數(shù)據(jù)的正確性和相容性,以及系統(tǒng)的容錯性,加強對用戶輸入端的數(shù)據(jù)進行

25、檢驗。還需要進一步地引入新的測量指標進行系統(tǒng)測試,從而使系統(tǒng)能夠更加完善符合用戶需求。1.7數(shù)據(jù)庫數(shù)據(jù)庫設計范式分析 建立起一個良好的數(shù)據(jù)指標體系,是建立數(shù)據(jù)結構和數(shù)據(jù)庫的最重要的一環(huán)。一個良好的數(shù)據(jù)指標體系是建立db的必要條件,但不是充分條件。我們完全可以認為所建指標體系中的一個指標類就是關系數(shù)據(jù)庫中的一個基本表,而這個指標類下面的一個個具體指標就是這個基本表中的一個字段。但如果直接按照這種方式建庫顯然還不能算最佳。對于指標體系中數(shù)據(jù)的結構在建庫前還必須進行規(guī)范化的重新組織。1.7.1sql基礎sql(structured query language,結構查詢語言)是一個功能強大的數(shù)據(jù)庫語

26、言。sql通常使用于數(shù)據(jù)庫的通訊。ansi(美國國家標準學會)聲稱,sql是關系數(shù)據(jù)庫管理系統(tǒng)的標準語言。sql語句通常用于完成一些數(shù)據(jù)庫的操作任務,比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。使用sql的常見關系數(shù)據(jù)庫管理系統(tǒng)有:oracle、 sybase、 microsoft sql server、 access、 ingres等等。雖然絕大多數(shù)的數(shù)據(jù)庫系統(tǒng)使用sql,但是它們同樣有它們自立另外的專有擴展功能用于它們的系統(tǒng)。但是,標準的sql命令,比如select、 insert、 update、 delete、 create和 drop常常被用于完成絕大多數(shù)數(shù)據(jù)庫的操作。ms sq

27、l server 就是用的transact- sql。sql語言有著非常突出的優(yōu)點,主要是:1. 非過程化語言2. 統(tǒng)一的語言3. 是所有關系數(shù)據(jù)庫的公共語言非過程化語言:sql是一個非過程化的語言,因為它一次處理一個記錄,對數(shù)據(jù)提供自動導航。sql允許用戶在高層的數(shù)據(jù)結構上工作,而不對單個記錄進行操作,可操作記錄集,所有sql 語句接受集合作為輸入,返回集合作為輸出。sql的集合特性允許一條sql語句的結果作為另一條sql語句的輸入。sql不要求用戶指定對數(shù)據(jù)的存放方法, 這種特性使用戶更易集中精力于要得到的結果;所有sql語句使用查詢優(yōu)化器,它是rdbms的一部分,由它決定對指定數(shù)據(jù)存取的

28、最快速度的手段,查詢優(yōu)化器知道存在什么索引,在哪兒使用索引合適,而用戶則從不需要知道表是否有索引、有什么類型的索引。統(tǒng)一的語言:sql可用于所有用戶的db活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、 應用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。sql為許多任務提供了命令,其中包括:1.查詢數(shù)據(jù)2.在表中插入、修改和刪除記錄3.建立、修改和刪除數(shù)據(jù)對象 4.控制對數(shù)據(jù)和數(shù)據(jù)對象的存取5.保證數(shù)據(jù)庫一致性和完整性以前的數(shù)據(jù)庫管理系統(tǒng)為上述各類操作提供單獨的語言,而sql 將全部任務統(tǒng)一在一種語言中。所有關系數(shù)據(jù)庫的公共語言:由于所有主要的關系數(shù)據(jù)庫管理系統(tǒng)都支持sql語言,用戶可將使用sql

29、的技能從一個rdbms(關系數(shù)據(jù)庫管理系統(tǒng))轉到另一個,所有用sql編寫的程序都是可以移植的。1.7.2sql語句sql功能強大,是一種完備的數(shù)據(jù)處理語言,不僅用于數(shù)據(jù)庫查詢,而且用于數(shù)據(jù)庫中的數(shù)據(jù)修改和更新,概括起來,它可以分成以下幾組:dml(data manipulation language,數(shù)據(jù)操作語言):用于檢索或者修改數(shù)據(jù); ddl(data definition language,數(shù)據(jù)定義語言): 用于定義數(shù)據(jù)的結構,比如 創(chuàng)建、修改或者刪除數(shù)據(jù)庫對象; dcl(data control language,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權限。dml組可以細分為以下的幾個語

30、句:select:用于檢索數(shù)據(jù);insert:用于增加數(shù)據(jù)到數(shù)據(jù)庫;update:用于從數(shù)據(jù)庫中修改現(xiàn)存的數(shù)據(jù);delete:用于從數(shù)據(jù)庫中刪除數(shù)據(jù)。ddl語句可以用于創(chuàng)建用戶和重建數(shù)據(jù)庫對象。下面是ddl命令:create table,alter table,drop table,create index,drop index下面是一個簡單sql語句的例子:我們使用sql語句來從book中檢索借書證號為000001的借閱者姓名:select 姓名 from book where 借書證號 = 00000 ddl與dml數(shù)據(jù)定義語言ddl:它是用來創(chuàng)建和修改數(shù)據(jù)庫結構的一種語句

31、,包括 create、alter和drop 語句。 數(shù)據(jù)操作語言dml:包括數(shù)據(jù)查詢與數(shù)據(jù)更新。數(shù)據(jù)查詢主要是由select語句完成,這一點不再贅述。而數(shù)據(jù)更新所造成的風險大大超過數(shù)據(jù)查詢。數(shù)據(jù)庫管理系統(tǒng)必須在更改期內保護所存儲的數(shù)據(jù)的一致性,確保有效的數(shù)據(jù)進入數(shù)據(jù)庫,數(shù)據(jù)庫必須保持一致性,dbms還必須協(xié)調多用戶的并行更新,以確保用戶和它們的更改不至于影響其它用戶的作業(yè)。用于修改數(shù)據(jù)庫內容的 sql 語句主要有以下三個: (1) insert,向一個表中加入新的數(shù)據(jù)行 (2) delete,從一個表中刪除數(shù)據(jù)行 (3) update,更改數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù) insert標準語法: ins

32、ert into table_name (col1, col2.) values(value1, value2.)下例要將借書證號為000001作為一個新的借書情況加入借書情況表owner中 insert into owner (借書證號,圖書編號,借書日期) values (000001,00000001,2002-9-12)insert 語句還可以將多行數(shù)據(jù)添加到目標表中去,在這種形式的 insert 語句中,新行的數(shù)據(jù)值不是在語句正文中明確地指定的,而是語句中指定的一個數(shù)據(jù)庫查詢。添加的值來自數(shù)據(jù)庫自身的行,在某些特定的狀態(tài)下,這是非常有用的。多行 insert 語句為拷貝數(shù)據(jù)提供了一種

33、緊湊而高效的方法,但我在自已做的圖書管理系統(tǒng)中沒有使用這種方法,我在系統(tǒng)中是使用循環(huán)依照上面的用法來完成多個記錄的插入。 update語句用于更新單表中選定行的一列或多列的值。要更新的目標表在語句中定義,set子句則指定要更新哪些列并計算它們的值。update語句總是包含where語句,而且update語句比較危險,所以您必須明確地認識到where語句的重要性,where語句被用來指定需要更新的行。標準語法:update table_nameset columnname1 = value1, columname2 = value2.where search_conditiondelete 語句

34、標準語法:delete from tablename where condition 復雜操作實現(xiàn)在信息管理系統(tǒng)中,我們往往會遇到歸類、匯總、映射、索引、子查詢等復雜操作,相應的支持與實現(xiàn)如下:u group by方法group by子句語法為: select column1, sum(column2)from list-of-tablesgroup by column-list; 這個group by子句將集中所有的行在一起,它包含了指定列的數(shù)據(jù)以及允許合計函數(shù)來計算一個或者多個列。在本人的系統(tǒng)中在顯示數(shù)據(jù)時用到了此語句來對查詢所得的內容排序然后再顯示。u 組合條件和布爾運算符

35、以下的sql語句中就含有組合條件:select column1, sum(column2)from list-of-tableswhere condition1 and condition2; 下面是一個示例:select 身份描述from id,userwhere id.身份編號=user.身份編號 and user.借書證號=000001; 這條sql語句是從user、id表中查找借閱證號為000001的借閱者的身份描述,第三條語句中如果其中有一個條件為假,那么就什么都沒有顯示。u union子句有些時候,需要一起瀏覽多個查詢的結果、組合它們的輸出,我們可以使用union關鍵字。1.8應用

36、技術以及開發(fā)工具的介紹采用browser/server體系結構,服務器端采用運行最低配置要求(全部為中文環(huán)境) 操作系統(tǒng) windows 2000 adv server,windows 2000 server。使用的開發(fā)工具如下:struts1.2 hrbernate3.0eclipse5.1jdk1.5tomcat5mysql 1.5客戶端軟件,包括單機操作系統(tǒng)和瀏覽器軟件,分別選用windows 2000和internet explorer,數(shù)據(jù)庫系統(tǒng)采用microsoft access有利于方便操作。技術的詳細介紹如下:1.8.1struts:struts最早是作為apache jaka

37、rta項目的組成部分,項目的創(chuàng)立者希望通過對該項目的研究,改進和提高javaserver pages 、servlet、標簽庫以及面向對象的技術水準。struts這個名字來源于在建筑和舊式飛機中使用的支持金屬架。這個框架之所以叫struts,是為了提醒我們記住那些支撐我們房屋,建筑,橋梁,甚至我們踩高蹺時候的基礎支撐。這也是一個解釋struts在開發(fā)web應用程序中所扮演的角色的精彩描述。當建立一個物理建筑時,建筑工程師使用支柱為建筑的每一層提供支持。同樣,軟件工程師使用struts為業(yè)務應用的每一層提供支持。它的目的是為了幫助我們減少在運用mvc設計模型來開發(fā)web應用的時間。我們仍然需要學

38、習和應用該架構,不過它將可以完成其中一些繁重的工作。如果想混合使用servlets和jsp的優(yōu)點來建立可擴展的應用,struts是一個不錯的選擇。早期smalltalk 程序語言便采用了mvc(model-view -controller) 模式( patterns ) 以增加程序代碼彈性,mvc模式將程序代碼整理切割為三部份,model 部分是業(yè)務與應用領域( business domain) 相關邏輯、管理狀態(tài)之對象,controller 部分接收來自view 所輸入的資料并與model 部分互動,是業(yè)務流程控制( flow control) 之處,view 部分則負責展現(xiàn)資料、接收使用者

39、輸入資料。在java 應用中,jfc/swing、awt、jsp 皆是可用作view 之技術規(guī)格,而javabean 與enterprise javabean 規(guī)格則可用于model 程序代碼,一旦應用程序以mvc 模式加以適當之分割,model 部分程序代碼可在不同使用者接口外觀之應用程序中重復使用。struts的目的是為了減少在運用mvc設計模型來開發(fā)web應用的時間。你仍然需要學習和應用該架構,不過它將可以完成其中一些繁重的工作。struts跟tomcat、turbine等諸多apache項目一樣,是開源軟件,這是它的一大優(yōu)點,使開發(fā)者能更深入的了解其內部實現(xiàn)機制。除此之外,struts

40、的優(yōu)點主要集中體現(xiàn)在兩個方面:taglib和頁面導航。taglib是struts的標記庫,靈活運用,能大大提高開發(fā)效率。另外,就目前國內的jsp開發(fā)者而言,除了使用jsp自帶的常用標記外,很少開發(fā)自己的標記,或許struts是一個很好的起點。關于頁面導航,我認為那將是今后的一個發(fā)展方向,事實上,這樣做,使系統(tǒng)的脈絡更加清晰。通過一個配置文件,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護有著莫大的好處。尤其是當另一批開發(fā)者接手這個項目時,這種優(yōu)勢體現(xiàn)得更加明顯。mvc即model-view-controller的縮寫,是一種常用的設計模式。mvc 減弱了業(yè)務邏輯接口和數(shù)據(jù)接口之間的耦合,以

41、及讓視圖層更富于變化。struts 是mvc的一種實現(xiàn),它將 servlet和 jsp 標記(屬于 j2ee 規(guī)范)用作實現(xiàn)的一部分。struts繼承了mvc的各項特性,并根據(jù)j2ee的特點,做了相應的變化與擴展。struts的流程服務器啟動后,根據(jù)web.xml加載actionservlet讀取struts-config.xml文件內容到內存。以登陸為例:第一次進login.jsp會先實例化form、把默認值賦給表單元素。輸入用戶名密碼提交表單、提交到action屬性的login.do,通過actionservlet讀struts-config.xml文件找到 action下的path屬性找

42、到.do,通過name屬性找form-beans中的form-bean的name屬性得到actionform的包名類名,先實例化form,把表單的值填充給form,調用form的validate方法驗證、actionerrors返回null表示驗證通過,否則失敗返回input指定的頁面.驗證通過會實例化action,執(zhí)行action的excute方法。 struts框架struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點,同時簡化了基于mvc的web應用程序的開發(fā)。 本章詳細討論struts架構。我們將看到struts是如何清晰地區(qū)分控制,事務邏輯和外觀,從而簡化了開發(fā)應用程序過程的。我們還

43、將介紹struts提供的類如何使得開發(fā)工作更加簡單,這些類包括: 控制程序流程的類 實現(xiàn)和執(zhí)行程序事務邏輯的類l 自定義的標記庫使得創(chuàng)建和驗證html表單更加容易l 1 struts壓縮包內容 文件夾jakarta-struts-1.0.2包含兩個目錄,lib和webapps。在lib目錄中有使用struts創(chuàng)建應用程序是所需的文件: 文件 描述 jdbc2_0-stdext.jar 包含jdbc2.0 optional package api類。如果我們要使用struts提供的數(shù)據(jù)資源,就需要將這個文件拷貝到web-inflib下 struts.jar 包含struts中所有的java類。同

44、樣也需要拷貝到web-inflib下 *.tld 標記庫描述器文件,描述了多個struts標記庫中的自定義標記。同樣要拷貝到web-inflib下 在webapps目錄下有如下文件: web應用程序 描述 struts-blank.war 一個簡單的web應用程序 struts-documentation.war 包含struts站點上所有struts文檔 struts-example.war struts很多特性的示范 struts-exercisetaglib.war 主要用于對自定義標簽庫進行增加而使用的測試頁,但也可以示范如何使用struts標記 struts-template.war

45、 包含struts模板標記的介紹和范例 struts-upload.war 一個簡單的例子,示范如何使用struts框架上傳文件 2.struts體系結構 讓我們從mvc角度觀察struts框架中的組件 框架中三個部分:模型,視窗和控制器。 模型 在struts框架中,模型分為兩個部分: 系統(tǒng)的內部狀態(tài)l 可以改變狀態(tài)的操作(事務邏輯)內部狀態(tài)通常由一組actinform javabean表示。根據(jù)設計或應用程序復雜度的不同,這些bean可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時才獲得數(shù)據(jù)(從某個數(shù)據(jù)庫)。 大型應用程序通常在方法內部封裝事務邏輯(操作),這些方法可以被擁有狀態(tài)信息的bean

46、調用。比如購物車bean,它擁有用戶購買商品的信息,可能還有checkout()方法用來檢查用戶的信用卡,并向倉庫發(fā)定貨信息。 小型程序中,操作可能會被內嵌在action類,它是struts框架中控制器角色的一部分。當邏輯簡單時這個方法很適合。 建議用戶將事務邏輯(要做什么)與action類所扮演的角色(決定做什么)分開。 視窗 由jsp建立,struts包含擴展自定義標簽庫,可以簡化創(chuàng)建完全國際化用戶界面的過程。 控制器 struts中,基本的控制器組件是actionservlet類中的實例servelt,實際使用的servlet在配置文件中由一組映射(由actionmapping類進行描述

47、)進行定義。 3.struts框架中的組件 (由于rose工具還未能下載,只能找來這幅圖,它說明了一定問題,特別是actionerrors,但它并沒有將actionmapping,jsp和tag library包含進來,有時間作完替換) 框架中所使用的組件: actionservlet 控制器 actionclass 包含事務邏輯 actionform 顯示模塊數(shù)據(jù) actionmapping 幫助控制器將請求映射到操作 actionforward 用來指示操作轉移的對象 actionerror 用來存儲和回收錯誤 struts標記庫 可以減輕開發(fā)顯示層次的工作 下面我們看看各自在框架中所扮演

48、的角色和責任。 4 .struts配置文件 這是將struts組件結合在一起的東東:struts-config.xml。默認值 web-infstruts-config.xml。配置文件可以定義: 全局轉發(fā) actionmapping類 幫助控制器將請求映射到操作 actionform bean 顯示模塊數(shù)據(jù) jdbc數(shù)據(jù)源 配置全局轉發(fā) 全局轉發(fā)用來在jsp頁之間創(chuàng)建邏輯名稱映射。轉發(fā)都可以通過對調用操作映射的實例來獲得,例如: actionmappinginstace.findforward(“l(fā)ogicalname”); 全局轉發(fā)的例子:(所有的例子我沒有進行解釋,一是結合表可以理解,二

49、是例子大部分來自系列四的示例,你應該在作完實驗后,再來看一遍) 屬性 描述 name 全局轉發(fā)的名字 path 與目標url的相對路徑 配置actionmapping actionmapping對象幫助進行框架內部的流程控制,它們可將請求uri映射到action類,并且將action類與actionform bean相關聯(lián)。actionservlet在內部使用這些映射,并將控制轉移到特定action類的實例。所有action類使用perform()方法實現(xiàn)特定應用程序代碼,返回一個actionforward對象,其中包括響應轉發(fā)的目標資源名稱。例如: 5.屬性 描述 path action類的

50、相對路徑 name 與本操作關聯(lián)的action bean的名稱 type 連接到本映射的action類的全稱(可有包名) scope actionform bean的作用域(請求或會話) prefix 用來匹配請求參數(shù)與bean屬性的前綴 suffix 用來匹配請求參數(shù)與bean屬性的后綴 attribute 作用域名稱。 classname actionmapping對象的類的完全限定名默認的類是org.apache.struts.action.actionmapping input 輸入表單的路徑,指向bean發(fā)生輸入錯誤必須返回的控制 unknown 設為true,操作將被作為所有沒有定

51、義的actionmapping的uri的默認操作 validate 設置為true,則在調用action對象上的perform()方法前,actionservlet將調用actionform bean的validate()方法來進行輸入檢查 通過元素,可以定義資源的邏輯名稱,該資源是action類的響應要轉發(fā)的目標。 屬性 描述 id id classname actionforward類的完全限定名,默認是org.apache.struts.action.actionforward name 操作類訪問actionforward時所用的邏輯名 path 響應轉發(fā)的目標資源的路徑 redire

52、ct 若設置為true,則actionservlet使用sendredirect()方法來轉發(fā)資源 配置actionform bean: actionservlet使用actionform來保存請求的參數(shù),這些bean的屬性名稱與http請求參數(shù)中的名稱相對應,控制器將請求參數(shù)傳遞到actionform bean的實例,然后將這個實例傳送到action類。例子: 屬性 描述 id id classname actionform bean的完全限定名,默認值是org.apache.struts.action.actionformbean name 表單bean在相關作用域的名稱,這個屬性用來將b

53、ean與actionmapping進行關聯(lián) type 類的完全限定名 配置jdbc數(shù)據(jù)源 用元素可以定義多個數(shù)據(jù)源。 屬性 描述 id id key action類使用這個名稱來尋找連接 type 實現(xiàn)jdbc接口的類的名稱1.8.2hibernate:hibernate是一個開放源代碼的對象關系映射框架,它對jdbc進行了非常輕量級的對象封裝,使得java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 hibernate可以應用在任何使用jdbc的場合,既可以在java的客戶端程序使用,也可以在servlet/jsp的web應用中使用,最具革命意義的是,hibernate可以在應用ejb

54、的j2ee架構中取代cmp,完成數(shù)據(jù)持久化的重任。hibernate的核心接口一共有5個,分別為:session、sessionfactory、transaction、query和configuration。這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這五個核心接口分別加以介紹。session接口:session接口負責執(zhí)行被持久化對象的crud操作(crud的任務是完成與數(shù)據(jù)庫的交流,包含了很多常見的sql語句。)。但需要注意的是session對象是非線程安全的。同時,hibernate的session不同于jsp應用中的http

55、session。這里當使用session這個術語時,其實指的是hibernate中的session,而以后會將httpsesion對象稱為用戶session。sessionfactory接口:sessionfactroy接口負責初始化hibernate。它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建session對象。這里用到了工廠模式。需要注意的是sessionfactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個sessionfactory就夠,當需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個sessionfactory。configuration接口:configuration接口負責配置并啟動hibernate,創(chuàng)建sessionfacto

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論