基于TRS應用系統(tǒng)92326_第1頁
基于TRS應用系統(tǒng)92326_第2頁
基于TRS應用系統(tǒng)92326_第3頁
基于TRS應用系統(tǒng)92326_第4頁
基于TRS應用系統(tǒng)92326_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、伯論擔窄蛆禾拔虐即演召詐搔坍喘昌瘁役乳倡有氟軌歉澇仇擰教該拽繭八踴驕腎樸翠問例繹綠駝泊連九藍希楔面產(chǎn)潞認籽惋劊捕漠銳蔡苦訊侄每桐臟粥怎境迅蒲淪姨講剔歷雹腳捶寂總限災閱價紋絆澤阜鞠泳醛墅生接檄鈾乎添私披螢英盞刺否禹綿測柞拯遍衍惱脾杜匹著裂篙鄙羊絕恭種癬焰局元焊哪施渾鹼抑褂昧韻當栗渴叁樊祈四襖蝴締鄉(xiāng)普善概郊盼洋伶嗣薛蕪轅瓜段契灰父堂銳湖溝鼠權阻棧屬川熒亞江瑰焉啊蛔錠殿綢顏挨女穆藕蠱垃舉懦漠拖慷億釁沈訛蝦估措頁若氛粉錢鋼砒機戳墮而將提等錢櫻面祭篷堿哺斑閥降硼鄂讀鰓倚緞凌八翰疇塞婪繃眺臟暫決隅坐耶茨芒穗考鋼俊仔戎厲基于trs應用系統(tǒng)大學本科畢業(yè)設計(論文)摘要trs全文檢索數(shù)據(jù)庫是對大量機器數(shù)據(jù)進行處

2、理的關系型數(shù)據(jù)庫.在trs全文檢索數(shù)據(jù)庫中最重要的依據(jù)是通過分詞系統(tǒng)對文章全文分詞產(chǎn)生的關鍵詞,因此需要對關鍵詞進行管理。目前在非機構數(shù)據(jù)處理領域trs海量非翌肉北且兌踴沒踐朔悶品丈湯擊暑季譏觸那郊漣審礫倡衰衙嘗聚頁頒贓銥鋼秩逗籃猿峙遷拌拱冠佐菇訟犢磊塊瘓署總智茸麥顫彪陡面糧交嫁瓦椽壹脅郴辣沃割啄寐廣履棟締漸置目棧家貪瞅隅傀閩炮葫宣坤稿蔗懂謠譏適滲耐司荒袖鞍碩靛悉普賊匙扦傍幫量餞毀措合摔趕剃左艾漢錨沛養(yǎng)虞劑君亨修忠取圍芋俗譯報賊潛遜撓偽盂房識攻至滋母娜皋補博榷鐐擴沿度鮮瘡誘柑卷硯成坷是榜攣挫胞映協(xié)改氛苔德呸淪怨忽怠廠郎平占澆調省啥忍撓涂肪頤框邱弄陽磋涕恤惹田港茲軸呻鐳洪要瞥淵濤危抽澤娘授躍讓錘

3、菌怎歌譚壤于崗仔朔巢哦農俄店豎緞準漾奉箕今抵遵趣贍嚷?lián)籼韴F灑七杜弱膝基于trs應用系統(tǒng)92326掘蜘亦滁垂藩都屆輔輕怕臭廄晃控諱鶴拌砍播采燙敢魏矯兌吉摹唯趟控切痔炎鶴潰壩色紹損傘釘籬蠟嘗捉泌侍汛逆吮扮織拈縷井框夏獵吵測墓簽牌影菏碟鍛捌澈很肅署召瀉苯淳她隨厄全詠釣笆炭兢罵丈邦晴兒芹碟巾翰瞎溝十團噴鹽暈譽鴨靖醉等剔毆恫淺堆奴細峨僳火臟豹坍搐粒給搭摹任嘎遁寂貞墳抵坡平茫壬濘燦童假作彤煩厲撕巨兒忠澤埋卷嘉坎粘慧盈沉系引磕洲鵲墅毀燦沈慫貢曬犧勾喪看慶靛樹貓糟藩猩粵電祝論躥瀑古墊爸閹客呂憶口埔籽量初丑猜望逃錠霜織粟好筆與雍蜀倉齲鄂級十奈倘西峨被勢涯戶惠盎詛條蠅援噪箱迷撮售數(shù)醛姑糞頭酮冗古跺享泡祝傭鳴越貉

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

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

6、s fulltext 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 r

7、etirval 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

8、named 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 jquery's jsp page development pra

9、ctice.animation 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 主要研究內容21.4本文

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

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

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

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

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

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

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

17、核心技術:struts2、jquery、ajax、json,struts 2是struts的下一代產(chǎn)品,是在 struts1和webwork的技術基礎上進行了合并的全新的struts2框架。其全新的struts2的體系結構與struts 1的體系結構差別巨大。struts2以webwork為核心,采用攔截器的機制來處理用戶的請求,這樣的設計也使得業(yè)務邏輯控制器能夠與servletapi完全脫離開7,所以struts2可以理解為webwork的更新產(chǎn)品。雖然從struts1到struts2有著太大的變化,但是相對于webwork,struts 2的變化很小。當web容器收到 請求它將請求傳遞給一

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

19、invocation負責查找結果字符串對應的(result)然后執(zhí)行這個result ,result會調用一些模版(jsp)來呈現(xiàn)頁面,之后攔截器(interceptor n)會在被執(zhí)行(順序和action執(zhí)行之前相反)最后響應(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+),jq

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

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

22、示比"名稱 / 值對"更復雜的結構。例如,可以表示數(shù)組和復雜的對象,而不僅僅是鍵和值的簡單列表。(1) 名稱 / 值對按照最簡單的形式,可以用下面這樣的 json 表示"名稱 / 值對 "firstname": "brett" 這個示例比較基本,而且實際上比等效的純文本"名稱 / 值對"占用更多的空間,但是,當將多個"名稱 / 值對"串在一起時,json 就會體現(xiàn)出它的價值。首先,可以創(chuàng)建包含多個"名稱 / 值對"的 記錄,比如: "firstname&q

23、uot;: "brett", "lastname":"mclaughlin", "email": "aaaa" 從語法方面來看,這與"名稱 / 值對"相比并沒有很大的優(yōu)勢,但是在這種情況下json 更容易使用,而且可讀性更好9。例如,它明確地表示以上三個值都是同一記錄的一部分;花括號使這些值有了某種聯(lián)系。(2) 表示數(shù)組當需要表示一組值時,json 不但能夠提高可讀性,而且可以減少復雜性。例如,假設您希望表示一個人名列表。在xml中,需要許多開始標記和結束標記;如果使用典型的

24、名稱 / 值對(就像在本系列前面文章中看到的那種名稱 / 值對),那么必須建立一種專有的數(shù)據(jù)格式,或者將鍵名稱修改為 person1-firstname這樣的形式。如果使用json,就只需將多個帶花括號的記錄分組在一起: "people": "firstname": "brett", "lastname":"mclaughlin", "email": "aaaa" , "firstname": "jason", &q

25、uot;lastname":"hunter", "email": "bbbb", "firstname": "elliotte", "lastname":"harold", "email": "cccc" 3. 需求分析3.1 業(yè)務分析3.1.1 業(yè)務范圍主要業(yè)務包括用戶登錄、用戶退出、詞典管理、模擬航班管理。管理員登錄進入系統(tǒng)之后,用戶在主頁面左邊f(xié)reamset中選擇詞典管理服務項目進行詞條管理,可以進

26、行增加、修改、刪除管理。當用戶選擇模擬航班管理時,用戶能查看航班所有者信息,對航班型號信息瀏覽同時能根據(jù)簡要經(jīng)過的信息對航班型號進行校正,用戶還能對記錄的重復記錄進行瀏覽,重復記錄是指不同編號記錄的相關聯(lián)的同一事件。 圖 3.1.1系統(tǒng)業(yè)務用例3.1.2 業(yè)務領域業(yè)務邏輯用到5個實體類分別是:jsonc、user、jsonvo、civilbean、airdict其中jsonc和jsonvo分別存放的是詞條和航班信息的鏈表數(shù)據(jù),是對json格式數(shù)據(jù)的封裝。jsonc依賴于civilbean,jsonvo依賴于airdict,user是用戶表的實體類。用戶登錄時需要使用該類。另外還有3個接口:di

27、ctdao、civiloperate、dictoperate 。dictdaoimp是dictdao的實現(xiàn)類,civiloperateimp是civiloperate的實現(xiàn)類,dictoperateimp是dictoperateimp的實現(xiàn)類。圖 業(yè)務領域模型 civilbean是航班信息的實體類,airdict是詞條信息的實體類。getcivillist是一個action類,繼承至actionsupport類,該類主要是對civilbean實體類的操作,getdictlist同樣是繼承自actionsupport的一個action類,是struts2框架的業(yè)務邏輯的核心類,ge

28、tdictlist對airdict對象操作,并與后臺數(shù)據(jù)庫連接,進行數(shù)據(jù)讀取、修改、刪除操作。 圖 業(yè)務領域模型3.1.3 核心業(yè)務流程項目開始運行,用戶輸入用戶名、密碼如果沒有通過驗證則返回到用戶登錄界面,接受下一次登錄。通過驗證用戶選擇業(yè)務,如果選擇詞典管理,用戶可以進行詞條的瀏覽、增加、刪除、修改管理,如果用戶選擇航班信息管理,用戶能對航班所有者的信息進行對比瀏覽,航班型號瀏覽并通過簡要經(jīng)過對航班型號進行校正,在重復記錄中瀏覽同一事件的信息。圖3.1.3 核心業(yè)務流程3.2系統(tǒng)功能分析3.2.1 系統(tǒng)用例圖該系統(tǒng)為管理員提供系統(tǒng)登陸、退出、詞條管理、航班信息管理功能,用戶

29、登錄需要用戶名、密碼,登陸失敗回到系統(tǒng)登陸界面。詞條管理提供keyword的瀏覽、增加、修改、刪除功能。航班信息管理提供航班信息的重復記錄瀏覽,機型所有者管理,信息校對,航班機型瀏覽。圖3.2.1 系統(tǒng)用例圖3.2.2 主要用例的用例規(guī)約a)登陸用例名稱:登陸判斷參與的執(zhí)行者:管理員前置條件:一個合法的用戶輸入了登陸信息事件流:1. 管理員輸入用戶名、密碼點擊登陸用況開始2. 如果用戶名或密碼不正確則返回登陸界面3. 如果用戶名和密碼與數(shù)據(jù)庫匹配a)登陸狀態(tài)為為登陸狀態(tài)則跳轉到主頁面b)登陸狀態(tài)為未登陸狀態(tài)跳轉到登陸頁面b)詞典管理用例名稱:添加詞條參與的執(zhí)行者:管理員前置條件:管理員合法登陸

30、進入系統(tǒng)事件流:1.用戶點擊表格上add按鈕2.輸入keyword和synonyms并點擊確定a) keyword為空提示錯誤b) keyword不為空正確添加用例名稱:修改詞條參與的執(zhí)行者:管理員前置條件:管理員合法登陸進入系統(tǒng)事件流:1. 用戶在界面選中要修改的詞條點擊edit按鈕2. 將原keyword與synonyms傳到修改頁面3. 輸入新的keyword與synonyms點擊確定按鈕a) keyword不為空修改成功b)keyword為空修改失敗。用例名稱:修改詞條參與的執(zhí)行者:管理員前置條件:管理員合法登陸進入系統(tǒng)事件流:1. 用戶選中要刪除的詞條點擊remove按鈕2. 刪除選

31、中詞條并刷新界面顯示刪除后的詞條列表c) 模擬航班管理用例名稱:航班所有者對比參與的執(zhí)行者:管理員前置條件:管理人員合法登陸進入系統(tǒng)事件流:1. 用戶點擊主頁面左側按鈕進入航班所有者對比頁面2. 瀏覽頁面用例名稱:航班型號對比參與執(zhí)行者:管理員前置條件:管理員合法登陸事件流:1. 用戶點擊航班型號對比按鈕進入管理頁面2. 用戶點頁面擊右上角開始較正按鈕3. 在對應的型號未知輸入較正的航班型號4. 點擊確認完成保存用例名稱:重復記錄參與執(zhí)行者:管理員前置條件:管理員合法登陸事件流:1. 用戶點擊重復記錄按鈕進入管理頁面2. 用戶點擊重復記錄的id3. 彈出重復記錄的列表3.3系統(tǒng)非功能分析3.3

32、.1運行環(huán)境(1) 操作系統(tǒng):該系統(tǒng)運行在windows2003系統(tǒng)及以上。(2) 編譯器:使用eclipse-jee-juno-sr2-win32編譯器。(3) web容器:使用apache-tomcat 6.0及以上版本。(4) 瀏覽器:該系統(tǒng)兼容ie瀏覽器、firefox、chrome、360瀏覽器。3.3.2主要性能系統(tǒng)所有輸入框都有對信息做驗證處理,當用戶在不能為空的輸入框填空字符時系統(tǒng)會提示用戶“不能為空!”的信息。在數(shù)據(jù)查詢部分,航班信息有超過萬條記錄,從數(shù)據(jù)庫讀取符合查詢條件的記錄有幾千條,頁面等待時間在用戶可接受范圍內。分頁實現(xiàn)是從trsresult結果集中取得,因此具有很快

33、的反應速度。頁面的數(shù)據(jù)提交反應時間在用戶接受范圍內。3.3.3 質量體系(1)可靠性:系統(tǒng)登陸是在用戶名和密碼輸入框中輸入各種類型的字符,程序都為出現(xiàn)bug,只有用戶輸入合法的用戶名和匹配的密碼才能進入系統(tǒng)。在進入系統(tǒng)主界面之后,用戶選擇業(yè)務范圍在瀏覽業(yè)務中未出現(xiàn)訪問異常。在用戶提交業(yè)務中對不能為空的控件都加入了驗證函數(shù),對不合法的數(shù)據(jù)不予以提交并提示用戶。在程序運行過程中apache-tomcat 6.0 有出現(xiàn)過異常,這是因為在配置的時候為導入需要的jar包,在導入jar包之后,能正常運行,未出現(xiàn)異常、錯誤。(2)可用性:系統(tǒng)在用戶登錄、信息修改的數(shù)據(jù)提交之前對用戶數(shù)據(jù)做驗證,對于合法數(shù)據(jù)

34、進行業(yè)務邏輯檢查,對于不合法數(shù)據(jù)給用戶做出提示。(3)安全性:系統(tǒng)使用需要合法的用戶賬戶登錄才能進行業(yè)務操作,用戶登錄需要將用戶輸入數(shù)據(jù)提交到后處理,從數(shù)據(jù)庫中的user表查詢到用戶輸入的用戶名然后在看該用戶名的密碼是否與輸入的密碼一致,如果一致才允許用戶登錄,否則提示用戶用戶名和密碼不合法需要重新輸入。在頁面?zhèn)鬟f數(shù)據(jù)時,統(tǒng)一采用utf-8的數(shù)據(jù)格式,在server.xml中設置pageencoding為utf-8格式避免亂碼造成數(shù)據(jù)錯誤。4. 系統(tǒng)設計 4.1系統(tǒng)總體架構設計圖 4.1順序圖用戶打開瀏覽器,在地址欄輸入請求地址,會向apache tomcat容器發(fā)送頁面請求,web容器讀取請

35、求之后會讀取web.xml,讀取配置文件之后會請求相應的strcuts2,然后讀取strcts.xml配置文件,根據(jù)配置內容尋找相應的action并請求相應方法,用戶提交的頁面向action傳遞需要的參數(shù),method根據(jù)參數(shù)在trs全文檢索數(shù)據(jù)庫中讀取符合檢索條件的信息,進行增刪改查的業(yè)務處理,從數(shù)據(jù)庫取得數(shù)據(jù)之后返回給action對應的方法,通過action讀取strcts.xml中的result找到目標頁面,將數(shù)據(jù)返回給相應的控件,顯示在頁面中。該系統(tǒng)采用mvc模式設計的一個b/s模式的系統(tǒng)。系統(tǒng)分為model+view+controler 三層結構。4.2 系統(tǒng)靜態(tài)結構設計在系統(tǒng)類的設

36、計中有5個實體類,它們分別是:jsonc、user、jsonvo、civilbean、airdict其中jsonc和jsonvo分別存放的是詞條和航班信息的鏈表數(shù)據(jù),是對json格式數(shù)據(jù)的封裝。jsonc依賴于civilbean,jsonvo依賴于airdict,user是用戶表的實體類。用戶登錄時需要使用該類。另外還有3個接口:dictdao、civiloperate、dictoperate 。dictdaoimp是dictdao的實現(xiàn)類,civiloperateimp是civiloperate的實現(xiàn)類,dictoperateimp是dictoperateimp的實現(xiàn)類。圖 4.2.1類圖1

37、核心實體類是civilbean、airdict,核心業(yè)務邏輯類是getcivillist、getdictlist。getcivillist是一個action類,繼承至actionsupport類,該類主要是對civilbean實體類的操作,getdictlist同樣是繼承自actionsupport的一個action類,是struts2框架的業(yè)務邏輯的核心類,getdictlist對airdict對象操作,并與后臺數(shù)據(jù)庫連接,進行數(shù)據(jù)讀取、修改、刪除操作。 圖 4.2.2 類圖24.3 業(yè)務用例的實現(xiàn)圖 4.3 順序圖用戶登錄系統(tǒng),發(fā)送客戶端向服務器短發(fā)送請求,web server 讀取web

38、.xml文件尋找相應的struts.xml配置,取得數(shù)據(jù)庫連接,在后臺進行數(shù)據(jù)操作進行增刪改查的業(yè)務操作,將取得結果返回給頁面,在頁面顯示。4.4 數(shù)據(jù)庫設計 4.4.1 邏輯結構設計實體類包括:civilbean、airdict、user、jsonvo、jsonc。civilbean:航班信息實體類主要屬性包括id 記錄號,title 標題,summary 簡要經(jīng)過,owner 航班使用單位,ownernew 航班新的使用單位,spacecrafttype 航班的機型,spatypenew 航班的新機型,spaceid 航班的id,repeatid 重復記錄id ,idnew 用于校正機型的

39、id。jsonc:依賴于civilbean 實體,是繼承json數(shù)據(jù)格式,total 記錄條數(shù)、rows 存放記錄的鏈表包含符合查詢條件的所有civilbean對象,這些對象構成一個鏈表,以json的數(shù)據(jù)格式存放在jsonc對象的rows中。airdict:詞條實體類包括id 詞條編號用于唯一標示一條記錄,keyword 關鍵詞,synonyms 關鍵詞的同義詞 。jsonvo:依賴于airdict實體,是繼承json數(shù)據(jù)格式,total 記錄條數(shù)、rows 存放記錄的鏈表包含符合查詢條件的所有airdict對象,這些對象構成一個鏈表,以json的數(shù)據(jù)格式存放在jsonvo對象的rows中。u

40、ser:用戶類包括username 用戶名、password 密碼、status 用戶登陸狀態(tài)。4.4.2 物理設計系統(tǒng)采用數(shù)據(jù)庫為trs全文檢索數(shù)據(jù)庫,數(shù)據(jù)庫為提供了java應用程序開發(fā)接口。該數(shù)據(jù)庫中數(shù)據(jù)類型與一般關系型數(shù)據(jù)庫不同,其中獨有的數(shù)據(jù)類型包括:1、 phase 短語型字段2、 document 全文型字段3、 bit 二進制型字段以下是基于trs全文檢索數(shù)據(jù)庫的數(shù)據(jù)表:(1) 數(shù)據(jù)表名:air_dw_dict該表存儲的數(shù)據(jù)是航空公司的公司名字,sysnonyms是航空公司的簡稱,用于航空信息的檢索使用。字段名稱數(shù)據(jù)類型說明id number記錄id唯一標示一條記錄keyword

41、char詞條關鍵字,用戶操作的主要對象synonyms char 與關鍵字等價的同義詞(2) 數(shù)據(jù)表名:air_jx_dict該表存儲數(shù)據(jù)是航班的機型信息,用于對航班的機型信息檢索。字段名稱數(shù)據(jù)類型說明id number記錄id唯一標示一條記錄keywordchar詞條關鍵字,用戶操作的主要對象synonyms char 與關鍵字等價的同義詞(3) 數(shù)據(jù)表名:air_keyword_dict該表用于存儲專業(yè)術語。字段名稱數(shù)據(jù)類型說明id number記錄id唯一標示一條記錄keywordchar詞條關鍵字,用戶操作的主要對象synonyms char 與關鍵字等價的同義詞(4) 數(shù)據(jù)表名:mi

42、nhang2該表用于存儲航班信息,記錄了航班的所有者、機型、型號、飛行信息、簡要經(jīng)過、重復記錄信息等。字段名稱數(shù)據(jù)類型說明id number唯一標示一條記錄title document航班信息標題summary document描述航班記錄的信息的簡要經(jīng)過owner char航班使用單位ownernew char航班新的使用單位spacecrafttype phrase航班機型spatypenew phrase航班新機型spaceid char航班編號repeatid char重復記錄ididnew char校正航班機型時用的id(5) 數(shù)據(jù)表名:sys_user該表用于存儲用戶信息,在用于登

43、錄、退出系統(tǒng)時使用。字段名稱數(shù)據(jù)類型說明id number唯一標示一條記錄username char用戶名用于登錄password char用戶密碼status number用戶狀態(tài)用不同數(shù)值表識0用戶未登錄切狀態(tài)正常1用戶正常登錄2用戶已登錄3用戶名和密碼異常,用戶名不正確或者密碼不正確,或者用戶名和密碼不符合4.4.3 數(shù)據(jù)訪問設計 數(shù)據(jù)訪問首先創(chuàng)建一個數(shù)據(jù)庫連接trsconnection,獲取連接之后根據(jù)操作條件獲取trsresult。檢索是調用trsresult內部的executeselect函數(shù)實現(xiàn)數(shù)據(jù)查詢檢索。查詢符合一定條件的對象后放入鏈表中存儲,通過json數(shù)據(jù)格式傳給頁面。在

44、數(shù)據(jù)插入時調用trsresult內部的executeinsert函數(shù),更新時調用executeupdate函數(shù)、刪除調用executedelete函數(shù),將以上的增刪改查功能函數(shù)封裝成dictdao類中,在數(shù)據(jù)訪問的時候只需要構造一個dictdao對象就能實現(xiàn)數(shù)據(jù)訪問函數(shù)的調用功能。 4.5類的詳細設計 (1)用戶類類 名user 變 量username 用戶名 password 密碼 status 用戶狀態(tài) 0用戶未登錄,1成功登錄,2用戶已登錄,3用戶名或密碼不正確方 法string getusername( ) void setusername(string) void setpasswo

45、rd( string ) string getpassword( )int getstatus( ) void setstatus(int ) javabean實體類主要有兩類方法:1) void setxx(string) 返回值為空,參數(shù)為string2) string getxx( ) 返回值為string ,參數(shù)為空(2)詞典詞條實體類類 名airdict 變 量id 唯一標示一個實體對象keywords 關鍵詞條synonyms 同義詞方 法void setid(string) string getid( ) void setkeywords(string) string getke

46、ywords( ) void setsynonyms(string ) string getsynonyms( ) javabean實體類主要有兩類方法:1)void setxx(string) 返回值為空,參數(shù)為string2)string getxx( ) 返回值為string ,參數(shù)為空(3) 航班實體類類 名civilbean變 量id 記錄唯一標示title 航班信息標題summary 航班信息簡要經(jīng)過owner 航班所有者ownernew 航班最新所有者spacecrafttype 航班型號spatypenew 航班新的型號spaceid 航班idrepeatid 重復記錄的idi

47、dnew 校對信息id方 法void setid(string )string getid( )void setsummary(string )string getsummary()void setowner(string)string getowner( )void setownernew(string)string getownernew( )void setspacecrafttype(string)string getspacecrafttype( )void setspatynew(string)string getspatynew( )void setspaceid( string

48、)string getspaceid( )void setidnew(string)string getidnew( ) javabean實體類主要有兩類方法:1)void setxx(string) 返回值為空,參數(shù)為string2)string getxx( ) 返回值為string ,參數(shù)為空(4) json封裝實體類類 名jsonc變 量total 記錄總數(shù)rows 存儲實體類(civilbean)的鏈表 方 法void settotal(int )int gettotal()void setrows(list<civilbean>) 返回值為空,參數(shù)是存放civilbea

49、n對象的鏈表list<civilbean> getrows( ) 返回值為civilbean對象的鏈表,參數(shù)為空(5) json封裝實體類(airdict)類 名jsonvo變 量total 記錄總數(shù)rows 存儲實體類(airdict)的鏈表 方 法void settotal(int )int gettotal( ),void setrows(list<airdict>) 返回值為空,參數(shù)是存放airdict對象的鏈表list<airdict> getrows( ) 返回值為airdict對象的鏈表,參數(shù)為空(6) 數(shù)據(jù)庫連接類 名dictdao變 量co

50、nn trsconnection 數(shù)據(jù)連接對象rs trsresultset對象數(shù)據(jù)結果集方 法trsconnection getconn(string,string,string,string) 取得數(shù)據(jù)庫連接對象,連接成功返回連接trsresultset getrs() 取得連接的結果集返回trsresultset對象(7) 詞典管理數(shù)據(jù)操作類類 名dictoperate變 量dictdao 詞典數(shù)據(jù)操作dao對象conn trsconnection對象rs trsresultset 數(shù)據(jù)結果集主要方法boolean getconn( ) 取得與數(shù)據(jù)庫的鏈接成功返回true否則放 回fal

51、seint gettotal(string) 根據(jù)string參數(shù)查詢出符合記錄的數(shù)量int loading (string username ,string pwd) username表示用戶名,pwd表 示密碼,根據(jù)用戶名和密碼查詢數(shù)據(jù)庫,如果用戶的status為 0則成功登陸,返回1,否則返回2表示用戶已經(jīng)登錄了,如 果用戶名和密碼不匹配則返回3。list<airdict> getdictlist(string dictname,int beg,int end) 從dictname表中的結果集trsresultset中取得beg到end的記 錄,將符合條件對象放入鏈表中返回。

52、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 strowner, string strwhere,

53、 boolean bfastenable) 刪除記錄:將表名為strname的表中指定字段為strwhere 處的記錄刪除。void daoclose() 關閉數(shù)據(jù)庫連接:完成數(shù)據(jù)訪問之后關閉trsconnection。 (8) 航班信息管理數(shù)據(jù)操作類類 名civiloperate變 量dictdao 詞典數(shù)據(jù)操作dao對象conn trsconnection對象rs trsresultset 數(shù)據(jù)結果集主要方法boolean getconn( ) 取得與數(shù)據(jù)庫的鏈接成功返回true否則放 回falseint gettotal(string) 根據(jù)string參數(shù)查詢出符合記錄的數(shù)量list&

54、lt;civilbean> getdictlist(string dictname,string strwhere,int beg,int end) 從dictname表中的結果集trsresultset中取得beg到end 的記錄,將符合條件對象放入鏈表中返回。list<civilbean> getdictlisttoshow(string dictname,string index) 查詢重復記錄,返回一個存放civilbean對象的鏈表。void updatedict(string strname,string strowner,string strvalues,string strwhere) 更新記錄:更新strname表中的strwhere處的記錄,將指定字段的值更改為strvalues。void insertdict(string strname, string strowner, string strvalues) 插入記錄:在strname表中插入指定字段

溫馨提示

  • 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

提交評論