基于TRS應(yīng)用系統(tǒng)畢業(yè)論文_第1頁
基于TRS應(yīng)用系統(tǒng)畢業(yè)論文_第2頁
基于TRS應(yīng)用系統(tǒng)畢業(yè)論文_第3頁
基于TRS應(yīng)用系統(tǒng)畢業(yè)論文_第4頁
基于TRS應(yīng)用系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、摘要trs全文檢索數(shù)據(jù)庫是對大量機(jī)器數(shù)據(jù)進(jìn)行處理的關(guān)系型數(shù)據(jù)庫.在trs全文檢索數(shù)據(jù)庫中最重要的依據(jù)是通過分詞系統(tǒng)對文章全文分詞產(chǎn)生的關(guān)鍵詞,因此需要對關(guān)鍵詞進(jìn)行管理。目前在非機(jī)構(gòu)數(shù)據(jù)處理領(lǐng)域trs海量非結(jié)構(gòu)化處理處于領(lǐng)先地位。該管理系統(tǒng)主要基于trs全文檢索數(shù)據(jù)庫。首先,通過trs數(shù)據(jù)庫提供的java程序接口取得數(shù)據(jù)庫連接,在取得trsconnection之后獲取trsresultset,在結(jié)果集中取得所需要的內(nèi)容。該系統(tǒng)是基于struts2框架的航班信息管理系統(tǒng),該系統(tǒng)采用java語言編寫,基于mvc設(shè)計(jì)模式。主要采用了jquery、javascript、ajax、json、trsbean

2、、div+css、flying css技術(shù)。主要對jquery的jsp頁面開發(fā)進(jìn)行了實(shí)踐研究。頁面的動畫效果、數(shù)據(jù)表格的異步刷新都是web項(xiàng)目開發(fā)的核心技術(shù)。該系統(tǒng)頁面功能基于jquery-easyui.min.js,后臺程序基于trs全文檢索數(shù)據(jù)庫的trsbean.jar。關(guān)鍵詞:檢索、jquery、web、分詞、詞條 abstract trs fulltext retrieval database is a relational database for large machine data processing. the most import reason in the trs ful

3、ltext retrieval database is based on the key words which is given by the word segmentation system. at present, trs vast amounts of unstructured information processing takes the leading position of the vast amounts of unstructured information processing area.the system is based on the trs text retirv

4、al system database. firstly,getting the connection with the database by the java application interface provided by the trs database. then,getting the trsresultset by the trsconnection. at last, getting the information that is needed according to the trsresultset .this system is base on struts2 named

5、 flight information management system, and using java langugage to complete, this system is designed by mvc.there are many latest technology used in this system,such as:jquery, javascript, ajax, json, trsbean, div+css, flying css. this study is mainly about jquerys jsp page development practice.anim

6、ation of the page,data tables asynchronous refresh are the core of the web project development.the system page is based on jquery-easyui-min.js,the background program is based on trsbean.jar.keywords: retrieve , jquery , web , participles , entry目錄1. 緒論11.1研究背景11.2研究開發(fā)現(xiàn)狀分析11.3 主要研究內(nèi)容21.4本文的組織結(jié)構(gòu)32. 相

7、關(guān)技術(shù)和工具綜述42.1 struts242.2 jquery42.3 json53. 需求分析73.1 業(yè)務(wù)分析73.2系統(tǒng)功能分析113.3系統(tǒng)非功能分析144. 系統(tǒng)設(shè)計(jì)164.1系統(tǒng)總體架構(gòu)設(shè)計(jì)164.2 系統(tǒng)靜態(tài)結(jié)構(gòu)設(shè)計(jì)174.3 業(yè)務(wù)用例的實(shí)現(xiàn)194.4 數(shù)據(jù)庫設(shè)計(jì)194.5類的詳細(xì)設(shè)計(jì)245.系統(tǒng)實(shí)現(xiàn)325.1系統(tǒng)物理結(jié)構(gòu)325.2系統(tǒng)物理部署335.3主要類的實(shí)現(xiàn)335.4系統(tǒng)主要功能實(shí)現(xiàn)505.5 實(shí)現(xiàn)中遇到的問題和解決方法576. 總結(jié)與展望58參考文獻(xiàn)61致謝62附錄一 英文原文63附錄二 中文翻譯661. 緒論 1.1研究背景1.1.1項(xiàng)目來源該項(xiàng)目來源于trs全文檢索

8、的需求。項(xiàng)目分為詞典管理、模擬航班信息管理兩部分。在trs全文檢索的時候需要對文件進(jìn)行分詞處理,分詞最后匯總到數(shù)據(jù)詞典1,全文檢索就是根據(jù)數(shù)據(jù)詞典的分詞來進(jìn)行檢索的,詞典中包括keyword和synonyms兩個元素。該項(xiàng)目就是對詞典的一個管理和模擬航班的管理。1.1.2系統(tǒng)開發(fā)的目的和意義該系統(tǒng)用于對trs全文檢索數(shù)據(jù)庫2的詞典進(jìn)行管理。提供對詞典的keyword和synonyms兩項(xiàng)進(jìn)行管理。該系統(tǒng)提供對詞典里各項(xiàng)進(jìn)行操作包括:詞條修改,增加新詞(詞條的keyword不能為空,synonyms可以為空),刪除詞條,對詞條進(jìn)行展示。航班運(yùn)作會產(chǎn)生一些跟蹤數(shù)據(jù)信息。比如某一型號的航班要從某一地

9、方飛往某地,某一型號的航班由以前的擁有者轉(zhuǎn)手到下一擁有者,航班的飛行信息、故障信息在管理中心都需要記錄信息從而產(chǎn)生數(shù)據(jù),這些數(shù)據(jù)都需要管理存檔。這些數(shù)據(jù)存入trs全文檢索數(shù)據(jù)庫,系統(tǒng)對這些信息進(jìn)行展示,查閱,修改,校對。 1.2研究開發(fā)現(xiàn)狀分析該系統(tǒng)為b/s模式的程序。使用jquery技術(shù)、ajax技術(shù)、數(shù)據(jù)采用json傳遞。數(shù)據(jù)庫采用trs全文檢索數(shù)據(jù)庫trs server6.0。隨著計(jì)算機(jī)產(chǎn)業(yè)的發(fā)展,以計(jì)算機(jī)存儲設(shè)備為載體的電子信息愈來愈多,這些信息大致可分為兩類:結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),結(jié)構(gòu)化數(shù)據(jù)指的是諸如企業(yè)財(cái)務(wù)帳目和生產(chǎn)數(shù)據(jù)、學(xué)生的分?jǐn)?shù)數(shù)據(jù)等等,非結(jié)構(gòu)化數(shù)據(jù)的則是一些文本數(shù)據(jù)、圖象

10、聲音等多媒體數(shù)據(jù)等等。根據(jù)統(tǒng)計(jì),非結(jié)構(gòu)化數(shù)據(jù)占有整個信息量的80%以上。web應(yīng)用開發(fā)已經(jīng)非常的普遍,總體設(shè)計(jì)都是b/s結(jié)構(gòu),采用mvc的設(shè)計(jì)模式。瀏覽器作為系統(tǒng)的客戶端,用戶只需在瀏覽器輸入地址就能發(fā)送請求給服務(wù)器。項(xiàng)目需要部署在web容器中,主流web容器weblogic、websphere、apache-tomcat,這三種容器的使用都非常普遍,其中在商業(yè)用途中websphere和weblogic都得到了普遍的使用,apache-tomcat是apache基金組織提供的免費(fèi)web容器,因此在中小型項(xiàng)目中都使用tomcat容器,本項(xiàng)目也采用tomcat6.0。該項(xiàng)目是航班信息管理系統(tǒng)的一個

11、子項(xiàng)目,目前有很多類似的開發(fā)項(xiàng)目,因此,目前來講該項(xiàng)目在總體技術(shù)上不存在不可實(shí)現(xiàn)技術(shù)的因素,采用常用的struts2框架和jquery、json、ajax4技術(shù)就可以實(shí)現(xiàn)。在界面上目前很普遍采用了jquery-easyui-min.js的javascript技術(shù),這樣較容易實(shí)現(xiàn)對div+css的控制技術(shù),較容易實(shí)現(xiàn)比較人性化的界面。flying css是比較新的jquery插件,該項(xiàng)目采用了該技術(shù)。1.3 主要研究內(nèi)容 該系統(tǒng)用于對trs全文檢索數(shù)據(jù)庫的詞典進(jìn)行管理以及模擬航班信息管理。提供對詞典的keyword和synonyms兩項(xiàng)進(jìn)行管理。該系統(tǒng)提供對詞典里各項(xiàng)進(jìn)行操作包括:詞條修改,增加

12、新詞(詞條的keyword不能為空,synonyms可以為空),刪除詞條,對詞條進(jìn)行瀏覽。航班運(yùn)作會產(chǎn)生一些跟蹤數(shù)據(jù)信息。比如某一型號的航班要從某一地方飛往某地,某一型號的航班由以前的擁有者轉(zhuǎn)手到下一擁有者,航班的飛行信息、故障信息在管理中心都需要記錄信息從而產(chǎn)生數(shù)據(jù),這些數(shù)據(jù)都需要管理存檔。對這些信息要進(jìn)行瀏覽、查閱。主要運(yùn)用技術(shù):struts2、jquery、ajax、css、json、java方 法:采用mvc設(shè)計(jì)模式開發(fā)環(huán)境與工具:eclipse、trs全文檢索數(shù)據(jù)庫、firefox、uml、tomcat1.4本文的組織結(jié)構(gòu) 第一章介紹系統(tǒng)的需求分析部分,主要介紹系統(tǒng)的主要研究類容,具

13、體闡述系統(tǒng)的功能行為。第二章介紹系統(tǒng)開發(fā)環(huán)境和主要開發(fā)技術(shù),具體得介紹了eclipse編譯器、apache-tomcat web容器、trs數(shù)據(jù)庫用戶接口、jquery、ajax 、json 、struts2開發(fā)技術(shù)。第三章是需求分析部分,主要的業(yè)務(wù)分析、系統(tǒng)功能分析、系統(tǒng)非功能分析。第四章主要論述系統(tǒng)設(shè)計(jì)部分,包括系統(tǒng)系統(tǒng)總體架構(gòu)設(shè)計(jì)、系統(tǒng)靜態(tài)結(jié)構(gòu)設(shè)計(jì)、業(yè)務(wù)用例的實(shí)現(xiàn)、數(shù)據(jù)庫設(shè)計(jì)、類的詳細(xì)設(shè)計(jì) 。第五章主要論述系統(tǒng)物理結(jié)構(gòu)包括系統(tǒng)物理部署、主要類實(shí)現(xiàn)、系統(tǒng)主要功能實(shí)現(xiàn)、實(shí)現(xiàn)中遇到的問題和解決方法。第六章是總結(jié)與展望 。 2. 相關(guān)技術(shù)和工具綜述 2.1 struts2項(xiàng)目核心技術(shù):strut

14、s2、jquery、ajax、json,struts 2是struts的下一代產(chǎn)品,是在 struts1和webwork的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的struts2框架。其全新的struts2的體系結(jié)構(gòu)與struts 1的體系結(jié)構(gòu)差別巨大。struts2以webwork為核心,采用攔截器的機(jī)制來處理用戶的請求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與servletapi完全脫離開7,所以struts2可以理解為webwork的更新產(chǎn)品。雖然從struts1到struts2有著太大的變化,但是相對于webwork,struts 2的變化很小。當(dāng)web容器收到 請求它將請求傳遞給一個標(biāo)準(zhǔn)的的過濾鏈包括

15、過濾器,然后經(jīng)過other filters,接下來需要調(diào)用filterdispatcher核心控制器,然后它調(diào)用actionmapper確定請求那個action,actionmapper返回收集action詳細(xì)信息的actionmaping對象。接下來filterdispatcher將控制權(quán)委派給actionproxy,actionproxy調(diào)用配置管理器從配置文件中讀取配置信息,然后創(chuàng)建actioninvocation對象,actioninvocation在調(diào)用action7之前會依次的調(diào)用所用配置攔截器(interceptor n)一旦執(zhí)行結(jié)果返回結(jié)果字符串a(chǎn)ctioninvocation

16、負(fù)責(zé)查找結(jié)果字符串對應(yīng)的(result)然后執(zhí)行這個result ,result會調(diào)用一些模版(jsp)來呈現(xiàn)頁面,之后攔截器(interceptor n)會在被執(zhí)行(順序和action執(zhí)行之前相反)最后響應(yīng)(httpservletresponse)被返回在web.xml中配置的那些過濾器和核心控制器(filterdispatcher)。 2.2 jqueryjquery是繼prototype之后又一個優(yōu)秀的javascript框架5。它是輕量級的js庫 ,它兼容css3,還兼容各種瀏覽器(ie 6.0+,ff 1.5+,safari 2.0+,opera 9.0+),jquery2.0及后續(xù)

17、版本將不再支持ie6/7/8瀏覽器。jquery使用戶能更方便地處理html documents、events、實(shí)現(xiàn)動畫效果,并且方便地為網(wǎng)站提供ajax交互。jquery還有一個比較大的優(yōu)勢是,它的文檔說明很全,而且各種應(yīng)用也說得很詳細(xì),同時還有許多成熟的插件可供選擇。jquery能夠使用戶的html頁面保持代碼和html內(nèi)容分離5,也就是說,不用再在html里面插入一堆js來調(diào)用命令了,只需定義id即可。 2.3 jsonjson(javascript object notation) 是一種輕量級的數(shù)據(jù)交換格式。它基于javascript(standard ecma-262 3rd ed

18、ition - december 1999)的一個子集。json采用完全獨(dú)立于語言的文本格式,但是也使用了類似于c語言家族的習(xí)慣(包括c, c+, c#, java, javascript, perl, python等)。這些特性使json成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也易于機(jī)器解析和生成。json 可以將 javascript 對象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串9,然后就可以在函數(shù)之間輕松地傳遞這個字符串,或者在異步應(yīng)用程序中將字符串從 web 客戶機(jī)傳遞給服務(wù)器端程序。這個字符串看起來有點(diǎn)兒古怪,但是javascript很容易解釋它,而且 json 可以表示比名稱 / 值對更

19、復(fù)雜的結(jié)構(gòu)。例如,可以表示數(shù)組和復(fù)雜的對象,而不僅僅是鍵和值的簡單列表。(1) 名稱 / 值對按照最簡單的形式,可以用下面這樣的 json 表示名稱 / 值對 firstname: brett 這個示例比較基本,而且實(shí)際上比等效的純文本名稱 / 值對占用更多的空間,但是,當(dāng)將多個名稱 / 值對串在一起時,json 就會體現(xiàn)出它的價值。首先,可以創(chuàng)建包含多個名稱 / 值對的 記錄,比如: firstname: brett, lastname:mclaughlin, email: aaaa 從語法方面來看,這與名稱 / 值對相比并沒有很大的優(yōu)勢,但是在這種情況下json 更容易使用,而且可讀性更好

20、9。例如,它明確地表示以上三個值都是同一記錄的一部分;花括號使這些值有了某種聯(lián)系。(2) 表示數(shù)組當(dāng)需要表示一組值時,json 不但能夠提高可讀性,而且可以減少復(fù)雜性。例如,假設(shè)您希望表示一個人名列表。在xml中,需要許多開始標(biāo)記和結(jié)束標(biāo)記;如果使用典型的名稱 / 值對(就像在本系列前面文章中看到的那種名稱 / 值對),那么必須建立一種專有的數(shù)據(jù)格式,或者將鍵名稱修改為 person1-firstname這樣的形式。如果使用json,就只需將多個帶花括號的記錄分組在一起: people: firstname: brett, lastname:mclaughlin, email: aaaa ,

21、firstname: jason, lastname:hunter, email: bbbb, firstname: elliotte, lastname:harold, email: cccc 3. 需求分析3.1 業(yè)務(wù)分析3.1.1 業(yè)務(wù)范圍主要業(yè)務(wù)包括用戶登錄、用戶退出、詞典管理、模擬航班管理。管理員登錄進(jìn)入系統(tǒng)之后,用戶在主頁面左邊f(xié)reamset中選擇詞典管理服務(wù)項(xiàng)目進(jìn)行詞條管理,可以進(jìn)行增加、修改、刪除管理。當(dāng)用戶選擇模擬航班管理時,用戶能查看航班所有者信息,對航班型號信息瀏覽同時能根據(jù)簡要經(jīng)過的信息對航班型號進(jìn)行校正,用戶還能對記錄的重復(fù)記錄進(jìn)行瀏覽,重復(fù)記錄是指不同編號記錄的相

22、關(guān)聯(lián)的同一事件。 圖 3.1.1系統(tǒng)業(yè)務(wù)用例3.1.2 業(yè)務(wù)領(lǐng)域業(yè)務(wù)邏輯用到5個實(shí)體類分別是:jsonc、user、jsonvo、civilbean、airdict其中jsonc和jsonvo分別存放的是詞條和航班信息的鏈表數(shù)據(jù),是對json格式數(shù)據(jù)的封裝。jsonc依賴于civilbean,jsonvo依賴于airdict,user是用戶表的實(shí)體類。用戶登錄時需要使用該類。另外還有3個接口:dictdao、civiloperate、dictoperate 。dictdaoimp是dictdao的實(shí)現(xiàn)類,civiloperateimp是civiloperate的實(shí)現(xiàn)類,dictoperatei

23、mp是dictoperateimp的實(shí)現(xiàn)類。圖 業(yè)務(wù)領(lǐng)域模型 civilbean是航班信息的實(shí)體類,airdict是詞條信息的實(shí)體類。getcivillist是一個action類,繼承至actionsupport類,該類主要是對civilbean實(shí)體類的操作,getdictlist同樣是繼承自actionsupport的一個action類,是struts2框架的業(yè)務(wù)邏輯的核心類,getdictlist對airdict對象操作,并與后臺數(shù)據(jù)庫連接,進(jìn)行數(shù)據(jù)讀取、修改、刪除操作。 圖 業(yè)務(wù)領(lǐng)域模型3.1.3 核心業(yè)務(wù)流程項(xiàng)目開始運(yùn)行,用戶輸入用戶名、密碼如果沒有通過驗(yàn)

24、證則返回到用戶登錄界面,接受下一次登錄。通過驗(yàn)證用戶選擇業(yè)務(wù),如果選擇詞典管理,用戶可以進(jìn)行詞條的瀏覽、增加、刪除、修改管理,如果用戶選擇航班信息管理,用戶能對航班所有者的信息進(jìn)行對比瀏覽,航班型號瀏覽并通過簡要經(jīng)過對航班型號進(jìn)行校正,在重復(fù)記錄中瀏覽同一事件的信息。圖3.1.3 核心業(yè)務(wù)流程3.2系統(tǒng)功能分析3.2.1 系統(tǒng)用例圖該系統(tǒng)為管理員提供系統(tǒng)登陸、退出、詞條管理、航班信息管理功能,用戶登錄需要用戶名、密碼,登陸失敗回到系統(tǒng)登陸界面。詞條管理提供keyword的瀏覽、增加、修改、刪除功能。航班信息管理提供航班信息的重復(fù)記錄瀏覽,機(jī)型所有者管理,信息校對,航班機(jī)型瀏覽。圖3.2.1 系

25、統(tǒng)用例圖3.2.2 主要用例的用例規(guī)約a)登陸用例名稱:登陸判斷參與的執(zhí)行者:管理員前置條件:一個合法的用戶輸入了登陸信息事件流:1. 管理員輸入用戶名、密碼點(diǎn)擊登陸用況開始2. 如果用戶名或密碼不正確則返回登陸界面3. 如果用戶名和密碼與數(shù)據(jù)庫匹配a)登陸狀態(tài)為為登陸狀態(tài)則跳轉(zhuǎn)到主頁面b)登陸狀態(tài)為未登陸狀態(tài)跳轉(zhuǎn)到登陸頁面b)詞典管理用例名稱:添加詞條參與的執(zhí)行者:管理員前置條件:管理員合法登陸進(jìn)入系統(tǒng)事件流:1.用戶點(diǎn)擊表格上add按鈕2.輸入keyword和synonyms并點(diǎn)擊確定a) keyword為空提示錯誤b) keyword不為空正確添加用例名稱:修改詞條參與的執(zhí)行者:管理員前

26、置條件:管理員合法登陸進(jìn)入系統(tǒng)事件流:1. 用戶在界面選中要修改的詞條點(diǎn)擊edit按鈕2. 將原keyword與synonyms傳到修改頁面3. 輸入新的keyword與synonyms點(diǎn)擊確定按鈕a) keyword不為空修改成功b)keyword為空修改失敗。用例名稱:修改詞條參與的執(zhí)行者:管理員前置條件:管理員合法登陸進(jìn)入系統(tǒng)事件流:1. 用戶選中要刪除的詞條點(diǎn)擊remove按鈕2. 刪除選中詞條并刷新界面顯示刪除后的詞條列表c) 模擬航班管理用例名稱:航班所有者對比參與的執(zhí)行者:管理員前置條件:管理人員合法登陸進(jìn)入系統(tǒng)事件流:1. 用戶點(diǎn)擊主頁面左側(cè)按鈕進(jìn)入航班所有者對比頁面2. 瀏覽

27、頁面用例名稱:航班型號對比參與執(zhí)行者:管理員前置條件:管理員合法登陸事件流:1. 用戶點(diǎn)擊航班型號對比按鈕進(jìn)入管理頁面2. 用戶點(diǎn)頁面擊右上角開始較正按鈕3. 在對應(yīng)的型號未知輸入較正的航班型號4. 點(diǎn)擊確認(rèn)完成保存用例名稱:重復(fù)記錄參與執(zhí)行者:管理員前置條件:管理員合法登陸事件流:1. 用戶點(diǎn)擊重復(fù)記錄按鈕進(jìn)入管理頁面2. 用戶點(diǎn)擊重復(fù)記錄的id3. 彈出重復(fù)記錄的列表3.3系統(tǒng)非功能分析3.3.1運(yùn)行環(huán)境(1) 操作系統(tǒng):該系統(tǒng)運(yùn)行在windows2003系統(tǒng)及以上。(2) 編譯器:使用eclipse-jee-juno-sr2-win32編譯器。(3) web容器:使用apache-tom

28、cat 6.0及以上版本。(4) 瀏覽器:該系統(tǒng)兼容ie瀏覽器、firefox、chrome、360瀏覽器。3.3.2主要性能系統(tǒng)所有輸入框都有對信息做驗(yàn)證處理,當(dāng)用戶在不能為空的輸入框填空字符時系統(tǒng)會提示用戶“不能為空!”的信息。在數(shù)據(jù)查詢部分,航班信息有超過萬條記錄,從數(shù)據(jù)庫讀取符合查詢條件的記錄有幾千條,頁面等待時間在用戶可接受范圍內(nèi)。分頁實(shí)現(xiàn)是從trsresult結(jié)果集中取得,因此具有很快的反應(yīng)速度。頁面的數(shù)據(jù)提交反應(yīng)時間在用戶接受范圍內(nèi)。3.3.3 質(zhì)量體系(1)可靠性:系統(tǒng)登陸是在用戶名和密碼輸入框中輸入各種類型的字符,程序都為出現(xiàn)bug,只有用戶輸入合法的用戶名和匹配的密碼才能進(jìn)

29、入系統(tǒng)。在進(jìn)入系統(tǒng)主界面之后,用戶選擇業(yè)務(wù)范圍在瀏覽業(yè)務(wù)中未出現(xiàn)訪問異常。在用戶提交業(yè)務(wù)中對不能為空的控件都加入了驗(yàn)證函數(shù),對不合法的數(shù)據(jù)不予以提交并提示用戶。在程序運(yùn)行過程中apache-tomcat 6.0 有出現(xiàn)過異常,這是因?yàn)樵谂渲玫臅r候?yàn)閷?dǎo)入需要的jar包,在導(dǎo)入jar包之后,能正常運(yùn)行,未出現(xiàn)異常、錯誤。(2)可用性:系統(tǒng)在用戶登錄、信息修改的數(shù)據(jù)提交之前對用戶數(shù)據(jù)做驗(yàn)證,對于合法數(shù)據(jù)進(jìn)行業(yè)務(wù)邏輯檢查,對于不合法數(shù)據(jù)給用戶做出提示。(3)安全性:系統(tǒng)使用需要合法的用戶賬戶登錄才能進(jìn)行業(yè)務(wù)操作,用戶登錄需要將用戶輸入數(shù)據(jù)提交到后處理,從數(shù)據(jù)庫中的user表查詢到用戶輸入的用戶名然后在

30、看該用戶名的密碼是否與輸入的密碼一致,如果一致才允許用戶登錄,否則提示用戶用戶名和密碼不合法需要重新輸入。在頁面?zhèn)鬟f數(shù)據(jù)時,統(tǒng)一采用utf-8的數(shù)據(jù)格式,在server.xml中設(shè)置pageencoding為utf-8格式避免亂碼造成數(shù)據(jù)錯誤。4. 系統(tǒng)設(shè)計(jì) 4.1系統(tǒng)總體架構(gòu)設(shè)計(jì)圖 4.1順序圖用戶打開瀏覽器,在地址欄輸入請求地址,會向apache tomcat容器發(fā)送頁面請求,web容器讀取請求之后會讀取web.xml,讀取配置文件之后會請求相應(yīng)的strcuts2,然后讀取strcts.xml配置文件,根據(jù)配置內(nèi)容尋找相應(yīng)的action并請求相應(yīng)方法,用戶提交的頁面向action傳遞需要的

31、參數(shù),method根據(jù)參數(shù)在trs全文檢索數(shù)據(jù)庫中讀取符合檢索條件的信息,進(jìn)行增刪改查的業(yè)務(wù)處理,從數(shù)據(jù)庫取得數(shù)據(jù)之后返回給action對應(yīng)的方法,通過action讀取strcts.xml中的result找到目標(biāo)頁面,將數(shù)據(jù)返回給相應(yīng)的控件,顯示在頁面中。該系統(tǒng)采用mvc模式設(shè)計(jì)的一個b/s模式的系統(tǒng)。系統(tǒng)分為model+view+controler 三層結(jié)構(gòu)。4.2 系統(tǒng)靜態(tài)結(jié)構(gòu)設(shè)計(jì)在系統(tǒng)類的設(shè)計(jì)中有5個實(shí)體類,它們分別是:jsonc、user、jsonvo、civilbean、airdict其中jsonc和jsonvo分別存放的是詞條和航班信息的鏈表數(shù)據(jù),是對json格式數(shù)據(jù)的封裝。jso

32、nc依賴于civilbean,jsonvo依賴于airdict,user是用戶表的實(shí)體類。用戶登錄時需要使用該類。另外還有3個接口:dictdao、civiloperate、dictoperate 。dictdaoimp是dictdao的實(shí)現(xiàn)類,civiloperateimp是civiloperate的實(shí)現(xiàn)類,dictoperateimp是dictoperateimp的實(shí)現(xiàn)類。圖 4.2.1類圖1核心實(shí)體類是civilbean、airdict,核心業(yè)務(wù)邏輯類是getcivillist、getdictlist。getcivillist是一個action類,繼承至actionsupport類,該類

33、主要是對civilbean實(shí)體類的操作,getdictlist同樣是繼承自actionsupport的一個action類,是struts2框架的業(yè)務(wù)邏輯的核心類,getdictlist對airdict對象操作,并與后臺數(shù)據(jù)庫連接,進(jìn)行數(shù)據(jù)讀取、修改、刪除操作。 圖 4.2.2 類圖24.3 業(yè)務(wù)用例的實(shí)現(xiàn)圖 4.3 順序圖用戶登錄系統(tǒng),發(fā)送客戶端向服務(wù)器短發(fā)送請求,web server 讀取web.xml文件尋找相應(yīng)的struts.xml配置,取得數(shù)據(jù)庫連接,在后臺進(jìn)行數(shù)據(jù)操作進(jìn)行增刪改查的業(yè)務(wù)操作,將取得結(jié)果返回給頁面,在頁面顯示。4.4 數(shù)據(jù)庫設(shè)計(jì) 4.4.1 邏輯結(jié)構(gòu)設(shè)計(jì)實(shí)體類包括:ci

34、vilbean、airdict、user、jsonvo、jsonc。civilbean:航班信息實(shí)體類主要屬性包括id 記錄號,title 標(biāo)題,summary 簡要經(jīng)過,owner 航班使用單位,ownernew 航班新的使用單位,spacecrafttype 航班的機(jī)型,spatypenew 航班的新機(jī)型,spaceid 航班的id,repeatid 重復(fù)記錄id ,idnew 用于校正機(jī)型的id。jsonc:依賴于civilbean 實(shí)體,是繼承json數(shù)據(jù)格式,total 記錄條數(shù)、rows 存放記錄的鏈表包含符合查詢條件的所有civilbean對象,這些對象構(gòu)成一個鏈表,以json的

35、數(shù)據(jù)格式存放在jsonc對象的rows中。airdict:詞條實(shí)體類包括id 詞條編號用于唯一標(biāo)示一條記錄,keyword 關(guān)鍵詞,synonyms 關(guān)鍵詞的同義詞 。jsonvo:依賴于airdict實(shí)體,是繼承json數(shù)據(jù)格式,total 記錄條數(shù)、rows 存放記錄的鏈表包含符合查詢條件的所有airdict對象,這些對象構(gòu)成一個鏈表,以json的數(shù)據(jù)格式存放在jsonvo對象的rows中。user:用戶類包括username 用戶名、password 密碼、status 用戶登陸狀態(tài)。4.4.2 物理設(shè)計(jì)系統(tǒng)采用數(shù)據(jù)庫為trs全文檢索數(shù)據(jù)庫,數(shù)據(jù)庫為提供了java應(yīng)用程序開發(fā)接口。該數(shù)據(jù)

36、庫中數(shù)據(jù)類型與一般關(guān)系型數(shù)據(jù)庫不同,其中獨(dú)有的數(shù)據(jù)類型包括:1、 phase 短語型字段2、 document 全文型字段3、 bit 二進(jìn)制型字段以下是基于trs全文檢索數(shù)據(jù)庫的數(shù)據(jù)表:(1) 數(shù)據(jù)表名:air_dw_dict該表存儲的數(shù)據(jù)是航空公司的公司名字,sysnonyms是航空公司的簡稱,用于航空信息的檢索使用。字段名稱數(shù)據(jù)類型說明id number記錄id唯一標(biāo)示一條記錄keywordchar詞條關(guān)鍵字,用戶操作的主要對象synonyms char 與關(guān)鍵字等價的同義詞(2) 數(shù)據(jù)表名:air_jx_dict該表存儲數(shù)據(jù)是航班的機(jī)型信息,用于對航班的機(jī)型信息檢索。字段名稱數(shù)據(jù)類型說

37、明id number記錄id唯一標(biāo)示一條記錄keywordchar詞條關(guān)鍵字,用戶操作的主要對象synonyms char 與關(guān)鍵字等價的同義詞(3) 數(shù)據(jù)表名:air_keyword_dict該表用于存儲專業(yè)術(shù)語。字段名稱數(shù)據(jù)類型說明id number記錄id唯一標(biāo)示一條記錄keywordchar詞條關(guān)鍵字,用戶操作的主要對象synonyms char 與關(guān)鍵字等價的同義詞(4) 數(shù)據(jù)表名:minhang2該表用于存儲航班信息,記錄了航班的所有者、機(jī)型、型號、飛行信息、簡要經(jīng)過、重復(fù)記錄信息等。字段名稱數(shù)據(jù)類型說明id number唯一標(biāo)示一條記錄title document航班信息標(biāo)題su

38、mmary document描述航班記錄的信息的簡要經(jīng)過owner char航班使用單位ownernew char航班新的使用單位spacecrafttype phrase航班機(jī)型spatypenew phrase航班新機(jī)型spaceid char航班編號repeatid char重復(fù)記錄ididnew char校正航班機(jī)型時用的id(5) 數(shù)據(jù)表名:sys_user該表用于存儲用戶信息,在用于登錄、退出系統(tǒng)時使用。字段名稱數(shù)據(jù)類型說明id number唯一標(biāo)示一條記錄username char用戶名用于登錄password char用戶密碼status number用戶狀態(tài)用不同數(shù)值表識0用

39、戶未登錄切狀態(tài)正常1用戶正常登錄2用戶已登錄3用戶名和密碼異常,用戶名不正確或者密碼不正確,或者用戶名和密碼不符合4.4.3 數(shù)據(jù)訪問設(shè)計(jì) 數(shù)據(jù)訪問首先創(chuàng)建一個數(shù)據(jù)庫連接trsconnection,獲取連接之后根據(jù)操作條件獲取trsresult。檢索是調(diào)用trsresult內(nèi)部的executeselect函數(shù)實(shí)現(xiàn)數(shù)據(jù)查詢檢索。查詢符合一定條件的對象后放入鏈表中存儲,通過json數(shù)據(jù)格式傳給頁面。在數(shù)據(jù)插入時調(diào)用trsresult內(nèi)部的executeinsert函數(shù),更新時調(diào)用executeupdate函數(shù)、刪除調(diào)用executedelete函數(shù),將以上的增刪改查功能函數(shù)封裝成dictdao類中

40、,在數(shù)據(jù)訪問的時候只需要構(gòu)造一個dictdao對象就能實(shí)現(xiàn)數(shù)據(jù)訪問函數(shù)的調(diào)用功能。 4.5類的詳細(xì)設(shè)計(jì) (1)用戶類類 名user 變 量username 用戶名 password 密碼 status 用戶狀態(tài) 0用戶未登錄,1成功登錄,2用戶已登錄,3用戶名或密碼不正確方 法string getusername( ) void setusername(string) void setpassword( string ) string getpassword( )int getstatus( ) void setstatus(int ) javabean實(shí)體類主要有兩類方法:1) void s

41、etxx(string) 返回值為空,參數(shù)為string2) string getxx( ) 返回值為string ,參數(shù)為空(2)詞典詞條實(shí)體類類 名airdict 變 量id 唯一標(biāo)示一個實(shí)體對象keywords 關(guān)鍵詞條synonyms 同義詞方 法void setid(string) string getid( ) void setkeywords(string) string getkeywords( ) void setsynonyms(string ) string getsynonyms( ) javabean實(shí)體類主要有兩類方法:1)void setxx(string) 返回

42、值為空,參數(shù)為string2)string getxx( ) 返回值為string ,參數(shù)為空(3) 航班實(shí)體類類 名civilbean變 量id 記錄唯一標(biāo)示title 航班信息標(biāo)題summary 航班信息簡要經(jīng)過owner 航班所有者ownernew 航班最新所有者spacecrafttype 航班型號spatypenew 航班新的型號spaceid 航班idrepeatid 重復(fù)記錄的ididnew 校對信息id方 法void setid(string )string getid( )void setsummary(string )string getsummary()void seto

43、wner(string)string getowner( )void setownernew(string)string getownernew( )void setspacecrafttype(string)string getspacecrafttype( )void setspatynew(string)string getspatynew( )void setspaceid( string)string getspaceid( )void setidnew(string)string getidnew( ) javabean實(shí)體類主要有兩類方法:1)void setxx(string)

44、 返回值為空,參數(shù)為string2)string getxx( ) 返回值為string ,參數(shù)為空(4) json封裝實(shí)體類類 名jsonc變 量total 記錄總數(shù)rows 存儲實(shí)體類(civilbean)的鏈表 方 法void settotal(int )int gettotal()void setrows(list) 返回值為空,參數(shù)是存放civilbean對象的鏈表list getrows( ) 返回值為civilbean對象的鏈表,參數(shù)為空(5) json封裝實(shí)體類(airdict)類 名jsonvo變 量total 記錄總數(shù)rows 存儲實(shí)體類(airdict)的鏈表 方 法vo

45、id settotal(int )int gettotal( ),void setrows(list) 返回值為空,參數(shù)是存放airdict對象的鏈表list getrows( ) 返回值為airdict對象的鏈表,參數(shù)為空(6) 數(shù)據(jù)庫連接類 名dictdao變 量conn trsconnection 數(shù)據(jù)連接對象rs trsresultset對象數(shù)據(jù)結(jié)果集方 法trsconnection getconn(string,string,string,string) 取得數(shù)據(jù)庫連接對象,連接成功返回連接trsresultset getrs() 取得連接的結(jié)果集返回trsresultset對象(7

46、) 詞典管理數(shù)據(jù)操作類類 名dictoperate變 量dictdao 詞典數(shù)據(jù)操作dao對象conn trsconnection對象rs trsresultset 數(shù)據(jù)結(jié)果集主要方法boolean getconn( ) 取得與數(shù)據(jù)庫的鏈接成功返回true否則放 回falseint gettotal(string) 根據(jù)string參數(shù)查詢出符合記錄的數(shù)量int loading (string username ,string pwd) username表示用戶名,pwd表 示密碼,根據(jù)用戶名和密碼查詢數(shù)據(jù)庫,如果用戶的status為 0則成功登陸,返回1,否則返回2表示用戶已經(jīng)登錄了,如 果

47、用戶名和密碼不匹配則返回3。list getdictlist(string dictname,int beg,int end) 從dictname表中的結(jié)果集trsresultset中取得beg到end的記 錄,將符合條件對象放入鏈表中返回。void updatedict(string strname,string strowner,string strvalues,string strwhere) 更新記錄:更新strname表中的strwhere處的記錄,將指定字段的值更改為strvalues。void insertdict(string strname, string strowner,

48、 string strvalues) 插入記錄:在strname表中插入指定字段值為strvalues 的記錄。void deletedict(string strname, string strowner, string strwhere, boolean bfastenable) 刪除記錄:將表名為strname的表中指定字段為strwhere 處的記錄刪除。void daoclose() 關(guān)閉數(shù)據(jù)庫連接:完成數(shù)據(jù)訪問之后關(guān)閉trsconnection。 (8) 航班信息管理數(shù)據(jù)操作類類 名civiloperate變 量dictdao 詞典數(shù)據(jù)操作dao對象conn trsconnecti

49、on對象rs trsresultset 數(shù)據(jù)結(jié)果集主要方法boolean getconn( ) 取得與數(shù)據(jù)庫的鏈接成功返回true否則放 回falseint gettotal(string) 根據(jù)string參數(shù)查詢出符合記錄的數(shù)量list getdictlist(string dictname,string strwhere,int beg,int end) 從dictname表中的結(jié)果集trsresultset中取得beg到end 的記錄,將符合條件對象放入鏈表中返回。list getdictlisttoshow(string dictname,string index) 查詢重復(fù)記錄,返

50、回一個存放civilbean對象的鏈表。void updatedict(string strname,string strowner,string strvalues,string strwhere) 更新記錄:更新strname表中的strwhere處的記錄,將指定字段的值更改為strvalues。void insertdict(string strname, string strowner, string strvalues) 插入記錄:在strname表中插入指定字段值為strvalues 的記錄。void deletedict(string strname, string strown

51、er, string strwhere, boolean bfastenable) 刪除記錄:將表名為strname的表中指定字段為strwhere 處的記錄刪除。void daoclose() 關(guān)閉數(shù)據(jù)庫連接:完成數(shù)據(jù)訪問之后關(guān)閉trsconnection。 (9) 詞條業(yè)務(wù)邏輯action類類 名getdictlistlist變 量pagetotal 記錄分頁后的記錄種條數(shù)pagebeg 分頁后記錄的開始idpageend 分頁后記錄的結(jié)束idjsonvo 檢索出的記錄保存的json對象主要方法string execute( ) 重寫的從actionsupport基礎(chǔ)的方法。是action

52、類執(zhí) 行的默認(rèn)函數(shù)。string delete( ) 刪除符合指定條件的詞條記錄。調(diào)用 deletedict(dictlistname, system, keyword=+data,true) string update( ) 調(diào)用updatedict函數(shù)刪除指定表名的指定keyword的 記錄。string getpage( ) 計(jì)算符合條件的記錄共有多少記錄。string insert( ) 調(diào)用insertdict函數(shù)向指定表名的數(shù)據(jù)表插入記錄。string login( ) 用戶登錄登錄成功將用戶狀態(tài)status值改為1。string queryjsondata( ) 函數(shù)內(nèi)部調(diào)用gettotal(),getdictlist()函數(shù),計(jì)算 計(jì)算分頁,并將分頁后的記錄放入jsonvo對象中。string query( ) 將詞條表的名字放入session對象中。action 類返回?cái)?shù)據(jù)都是string類型的數(shù)據(jù),參數(shù)都是void。 (10) 航班信息業(yè)務(wù)操作類 名getdictlistlist變 量pagetotal 記錄分頁后的記錄種條數(shù)pagebeg

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論