[優(yōu)秀畢業(yè)論文]基于瀏覽器服務(wù)器的搜索引擎設(shè)計_第1頁
[優(yōu)秀畢業(yè)論文]基于瀏覽器服務(wù)器的搜索引擎設(shè)計_第2頁
[優(yōu)秀畢業(yè)論文]基于瀏覽器服務(wù)器的搜索引擎設(shè)計_第3頁
[優(yōu)秀畢業(yè)論文]基于瀏覽器服務(wù)器的搜索引擎設(shè)計_第4頁
[優(yōu)秀畢業(yè)論文]基于瀏覽器服務(wù)器的搜索引擎設(shè)計_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本科畢業(yè)設(shè)計(論文)摘 要作為從浩瀚的web信息資源中發(fā)現(xiàn)潛在的、有價值知識的一種有效技術(shù),web挖掘正悄然興起,倍受關(guān)注。深層網(wǎng)絡(luò)給數(shù)據(jù)庫和信息檢索領(lǐng)域帶來的這一挑戰(zhàn)是深遠的。面對不同研究領(lǐng)域,要從成千上萬的文檔中快速找到所需要的論文成為一個很重要的任務(wù)。首先介紹深層網(wǎng)絡(luò)的研究背景和現(xiàn)狀,并針對哈爾濱工業(yè)大學機器智能與翻譯研究室的情況,設(shè)計了一個面向自然語言處理領(lǐng)域的論文查找下載模型,最后利用深層網(wǎng)絡(luò)技術(shù)的某些思想,研究了如何從特定的網(wǎng)上數(shù)據(jù)庫中查找pdf格式的文檔并下載。本系統(tǒng)基于瀏覽器/服務(wù)器(browse/server)結(jié)構(gòu),使用jsp作為開發(fā)語言,j2ee作為開發(fā)工具,mysql作為

2、數(shù)據(jù)庫,并在tomcat 5.0上進行發(fā)布。由于java語言具有可移植、安全性、解釋執(zhí)行、高性能、動態(tài)性,以及稍做修改后就具有跨平臺性的優(yōu)點,使得本系統(tǒng)操作方便、快捷。關(guān)鍵詞深層網(wǎng)絡(luò);自然語言處理;jsp;mysql;數(shù)據(jù)庫abstract with the flood of information on the web, web mining is a new research issue which draws great interest from many communities.the challenges in the field of databases and informat

3、ion retrieval which brought by deep web is far-reaching. facing with different research areas, we find it important and necessary to get our papers from the tens of thousands of documents quickly. first, i introduce the research background and the present situation of the deep web, and design a mode

4、l of researching and downloading papers which is oriented-nlp for harbin institute of technology & research office of intelligence.in the end, i use the deep web spirits to study how to get pdf formats and download the documents from the specifical deep web databases. this system is based on b /

5、 s (browse / server) structure, adopts jsp as the language of developing, j2ee as a development tool, mysql as a database development and tomcat 5.0 on the post. java language is a portable, security, explaining the implementation, high-performance, dynamic, and slightly modified after a cross-platf

6、orm advantages, and making the operation easy and fast. key wordsdeep web natural language processing jsp mysql database 不要刪除行尾的分節(jié)符,此行不會被打印- i -哈爾濱工業(yè)大學(威海)本科畢業(yè)設(shè)計(論文)目 錄摘 要iabstractii第1章 緒論11.1 課題背景11.2 課題來源、目的和意義21.3 國內(nèi)外在該方向的研究現(xiàn)狀21.4 主要研究內(nèi)容31.5 本文結(jié)構(gòu)3第2章 相關(guān)技術(shù)及工具簡介52.1 相關(guān)技術(shù)介紹52.1.1 html語言簡介52.1.2 java

7、script語言簡介52.1.3 jsp簡介62.1.4 javabean簡介62.1.5 web開發(fā)輕平臺tomcat簡介72.1.6 jdbc簡介82.1.7 j2ee的簡介102.2 開發(fā)工具簡介112.2.1 mysql簡介112.2.2 intellij idea7.0簡介12第3章 系統(tǒng)設(shè)計與實現(xiàn)133.1 系統(tǒng)整體設(shè)計133.2 軟件構(gòu)架圖143.3 數(shù)據(jù)庫表的設(shè)計153.4 搜索下載論文模塊173.4.1 搜索模塊設(shè)計173.4.2 下載模塊設(shè)計193.4.3 表單提交及結(jié)果返回203.5 上傳修改刪除論文模塊213.5.1 用戶驗證213.5.2 上傳模塊設(shè)計223.5.3

8、修改模塊設(shè)計243.5.4 刪除模塊設(shè)計253.6 從網(wǎng)上數(shù)據(jù)庫下載論文263.6.1 網(wǎng)站選取263.6.2 deep web數(shù)據(jù)集成系統(tǒng)框架263.6.3 查詢接口與查詢結(jié)果的抽取27第4章 系統(tǒng)性能測試及安裝使用304.1 系統(tǒng)測試的必要性304.1.1 單元測試304.1.2 集成測試304.1.3 驗收測試304.2 安裝步驟及使用31結(jié) 論33致 謝34參考文獻35附錄3637- -哈爾濱工業(yè)大學(威海)本科畢業(yè)設(shè)計(論文)第1章 緒論1.1 課題背景 隨著網(wǎng)絡(luò)與通信技術(shù)的迅速發(fā)展,web上的信息呈現(xiàn)爆炸性增長,互聯(lián)網(wǎng)已經(jīng)成為一個巨大的海量信息空間。整個web看似雜亂無章,但如果按

9、其所蘊涵信息的“深度”可以劃分為surface web和deep web兩大部分。surface web是指通過超鏈接可以被傳統(tǒng)搜索引擎索引到的頁面的集合。而deep web目前還沒有比較明確的定義,通常是指那些可以在線訪問的web數(shù)據(jù)庫1集合。 2000年7月brightp針對deep web的數(shù)量做了一次比較全面的統(tǒng)計,其發(fā)表的白皮書2,指出整個web上大約有43000-96000個web數(shù)據(jù)庫,以及7500tb的數(shù)據(jù),并從宏觀上對deep web做了定量的調(diào)查統(tǒng)計,下面列出其中部分的調(diào)查結(jié)果: (1) deep web蘊含的信息量是surface web的400-500倍。(2) 對de

10、ep web數(shù)據(jù)的訪問量比surface web要高出15%。(3) deep web蘊含的信息量比surface web的質(zhì)量更高。(4) deep web的增長速度要遠大于surface web。(5) 超過50%的deep web的內(nèi)容是特定于某個領(lǐng)域的。(6) 整個deep web覆蓋了現(xiàn)實世界中的各個領(lǐng)域,比如商業(yè)、教育、政府等等。(7) deep web上95%的信息是可以公開訪問的,即免費獲取。 而經(jīng)過這些年的發(fā)展,根據(jù)uiuc在今年5月所發(fā)表的一篇deep web綜述3估計,截至2004年,deep web的網(wǎng)站數(shù)量已經(jīng)達到307000個,其背后的數(shù)據(jù)庫數(shù)量已經(jīng)達到366000

11、-535000個。面對如此多的“隱藏數(shù)據(jù)”,雖然隨著搜索擎索引能力的提高,以及一些deep web網(wǎng)站為優(yōu)化搜索而提供的“直接瀏覽”功能,主流搜索引擎例如 google、yahoo已經(jīng)能夠覆蓋到其中32%的數(shù)據(jù),但是大部分數(shù)據(jù)仍然不能夠通過搜索訪問到。因此,在deep web上進行大規(guī)模數(shù)據(jù)集成顯得越來越急迫。 為了有效的利用web數(shù)據(jù)庫中的信息,需要將其按領(lǐng)域進行分類。舉例來說,nlp在計算機領(lǐng)域指自然語言處理(natural language processing),而在心理學方面指神經(jīng)語言程序?qū)W(neuro-linguistic programming)。作為計算機領(lǐng)域的的研究人員,我們

12、在網(wǎng)上搜索信息的時候,想要的是關(guān)于計算機的內(nèi)容,對于心理學的內(nèi)容,我們一般不會感興趣。因此,面向特定領(lǐng)域的信息需求變得越來越重要。 web中的信息主要通過網(wǎng)頁的形式對外發(fā)布,而由文本和超鏈接構(gòu)成的網(wǎng)頁有其獨特之處:數(shù)量驚人,信息豐富;由不同的個人或群體開發(fā),形式與內(nèi)容有很大的差異;分布在地球上internet連接的每一個角落,這就造成了web數(shù)據(jù)的異質(zhì)性和缺乏結(jié)構(gòu)性。正是由于這個原因,使得自動地從中獲取有價值的信息和數(shù)據(jù)變成一件十分具有挑戰(zhàn)性的任務(wù)。1.2 課題來源、目的和意義雖然整個deep web中幾乎包含了我們所需要的任何信息,但由于web數(shù)據(jù)庫數(shù)量眾多、規(guī)模巨大,用戶準確地從web中找

13、到他們要查詢的web數(shù)據(jù)庫并進行查詢是一件十分困難的事情。 哈爾濱工業(yè)大學機器智能與翻譯研究室,為給研究者提供一個良好的論文查詢環(huán)境,需要從網(wǎng)站上找到各種與自然語言處理(nlp)領(lǐng)域相關(guān)的論文,并制作一個pdf格式論文的搜索下載系統(tǒng)。 該課題從某種程度上解決了基于nlp領(lǐng)域的論文的搜索,對于今后利用自由分布在deep web中豐富的信息并加以集成做了重要的探索與啟發(fā)。 1.3 國內(nèi)外在該方向的研究現(xiàn)狀隨著world wide web的飛速發(fā)展,web尤其是deep web蘊含了日益增長的大量的各種各樣的數(shù)據(jù),并且仍在以驚人的速度增長。如何對deep web數(shù)據(jù)進行有效的管理,以滿足用戶不斷增長

14、的信息需求,成為信息領(lǐng)域研究人員面臨的新課題。deep web給數(shù)據(jù)庫和信息檢索領(lǐng)域帶來的這一挑戰(zhàn)是深遠的,它需要我們對已有的數(shù)據(jù)模型,信息檢索和抽取技術(shù),查詢語言和計算方法,數(shù)據(jù)集成方法等進行重新的審視,以解決新的異構(gòu)數(shù)據(jù)類型和新的應(yīng)用環(huán)境下的數(shù)據(jù)處理問題。目前人們已經(jīng)在這些方面開展了大量的工作,包括web數(shù)據(jù)提取和集成、deep web模式匹配與查詢接口集成、xml數(shù)據(jù)管理等。查詢接口是訪問 web 數(shù)據(jù)庫的主要途徑,目前對其開展的研究工作主要集中在分類和集成兩個方面,在實現(xiàn)方法上又可分為屬性分析的方式和基于模型的方式兩種。但無論怎么劃分,對查詢接口的分析主要包含兩個方面:模式信息和屬性語

15、義。對于特定主題的查詢接口,目前的工作可以得到比較理想的結(jié)果,但對于簡單的查詢接口(比如只有一個關(guān)鍵字查詢的接口)和綜合主題的查詢接口(比如電子商務(wù)網(wǎng)站)就沒有合適的解決辦法。在未來的工作中我們可以嘗試對其查詢結(jié)果的分析來確定其主題和查詢能力,這就需要設(shè)計一個與主題相關(guān)的樣本數(shù)據(jù)庫并可以自動填寫查詢接口和提交查詢。另外值得我們關(guān)注的是,至今在對 web 數(shù)據(jù)庫查詢處理這一模塊中,各個研究問題發(fā)展很不平衡。從頁面中抽取數(shù)據(jù)已經(jīng)比較成熟,各種技術(shù)方法被提出從理論和應(yīng)用中解決這個問題。相對來說,其它的子問題,比如 web 數(shù)據(jù)庫的選擇、數(shù)據(jù)的語義添加、數(shù)據(jù)合并等,還處于空白階段或剛剛開始被研究者們關(guān)

16、注,但作為 deep web 數(shù)據(jù)集成系統(tǒng)不可缺少的組成部分,需要研究者在這些研究問題上給予更多關(guān)注與努力??偟膩碚f對web數(shù)據(jù)管理的研究仍然處于剛剛起步的階段,離應(yīng)用階段還有很長的路要走,仍然有大量關(guān)鍵的問題需要做深入細致的研究。1.4 主要研究內(nèi)容該課題的主要研究內(nèi)容是針對無規(guī)律的論文文檔,構(gòu)造一個論文查詢下載模型,方便論文的查詢與下載。在此基礎(chǔ)上,利用deep web的某些思想,探索從網(wǎng)上數(shù)據(jù)庫下載論文的方法。確切地來說,是要從web上搜尋自然語言處理(nlp)領(lǐng)域的國內(nèi)外主要研究單位、主要研究人員、他們發(fā)表的文獻,建立一個專業(yè)文獻數(shù)據(jù)庫(包括文章作者、單位、關(guān)鍵詞、全文等),形成一個d

17、eep web的文章數(shù)據(jù)庫。在搜尋這些文章的時候,也要用到deep web技術(shù)如提出表單,到文獻數(shù)據(jù)庫中找到和下載所要的文章。這將對探索獲取deep web中結(jié)構(gòu)化的信息產(chǎn)生重要作用。1.5 本文結(jié)構(gòu)本文主要內(nèi)容如下:第1章中,說明選題的目的、背景和意義,deep web的研究現(xiàn)狀,以及論文所要研究的主要內(nèi)容。 第2章中,對相關(guān)技術(shù)與工具進行簡單介紹。 第3章中,首先針對需求制定要完成的目標,并進行整體設(shè)計,畫出系統(tǒng)的軟件構(gòu)架圖,完成數(shù)據(jù)庫表的設(shè)計,最后詳細說明系統(tǒng)的實現(xiàn)過程,結(jié)合界面對各個模塊進行流程解釋,針對疑難問題和設(shè)計重點做相應(yīng)的說明。 第4章中,對系統(tǒng)的性能測試,以及安裝使用進行必要

18、的說明。第2章 相關(guān)技術(shù)及工具簡介該系統(tǒng)采用tomcatmysql+jsp+servlet+javabean實現(xiàn),在此,對相關(guān)技術(shù)及工具進行簡要介紹。2.1 相關(guān)技術(shù)介紹2.1.1 html語言簡介html(hyper text markup language 超文本標記語言)是一種用來制作超文本文檔的簡單標記語言。用html編寫的超文本文檔稱為html文檔,它能獨立于各種操作系統(tǒng)平臺(如unix,windows等)。自1990年以來html就一直被用作world wide web上的信息表示語言,用于描述homepage的格式設(shè)計和它與www上其它homepage的連結(jié)信息。html文檔(即

19、homepage的源文件)是一個放置了標記的ascii文本文件,通常它帶有.html或.htm的文件擴展名。生成一個html文檔主要有以下三種途徑:(1) 手工直接編寫(例如用你所喜愛的ascii文本編輯器或其它html的編輯工具)。(2) 通過某些格式轉(zhuǎn)換工具將現(xiàn)有的其它格式文檔(如word文檔)轉(zhuǎn)換成html文檔。(3) 由web服務(wù)器(或稱http 服務(wù)器)一方實時動態(tài)地生成。html語言是通過利用各種標記(tags)來標識文檔的結(jié)構(gòu)以及標識超鏈(hyperlink)的信息。雖然html語言描述了文檔的結(jié)構(gòu)格式,但并不能精確地定義文檔信息必須如何顯示和排列,而只是建議web瀏覽器(如mo

20、siac,netscape等)應(yīng)該如何顯示和排列這些信息,最終在用戶面前的顯示結(jié)果取決于web瀏覽器本身的顯示風格及其對標記的解釋能力。這就是為什么同一文檔在不同的瀏覽器中展示的效果會不一樣。2.1.2 javascript語言簡介javascript 是一種新的描述語言,它是介于html和java高級語言之間的一種語言,它更接近于高級語言,但易學,功能稍弱。此語言可以被嵌入 html 的文件之中,它是一種通用的、基于原型的、面向?qū)ο蟮哪_本語言。它不占用很多系統(tǒng)和網(wǎng)絡(luò)資源的情況下提供一種可以插入到不同的應(yīng)用程序的通用代碼。透過javascript可以做到回應(yīng)使用者的需求事件 (如: form

21、的輸入) 而不用任何的網(wǎng)路來回傳輸資料,所以當一位使用者輸入一項資料時,它不用經(jīng)過傳給服務(wù)器端 (server) 處理,再傳回來的過程,而直接可以被客戶端 (client) 的應(yīng)用程式所處理。其中javascript與java的區(qū)別在于:(1) javascript是解釋性的語言,當程序執(zhí)行的時候,瀏覽器一邊解釋一邊執(zhí)行。而java是一種編譯型的語言,必須通過jdk的編譯,在java虛擬機上運行。(2) 代碼格式不一樣,java的代碼經(jīng)過jdk編譯后成為二進制的以.class作為擴展名的文件,而javascript是純文本的文件。(3) 在html中嵌入的方式不一樣。java可以通過apple

22、t嵌入html中,而javascript是直接寫入其中。2.1.3 jsp簡介jsp(javaserver pages)是由sun microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標準。在傳統(tǒng)的網(wǎng)頁html文件(*.htm,*.html)中加入java程序片段(scriptlet)和jsp標記(tag),就構(gòu)成了jsp網(wǎng)頁(*.jsp)。web服務(wù)器在遇到訪問jsp網(wǎng)頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以html格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送 email 等等,這就是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)

23、上傳送給客戶端的僅是得到的結(jié)果,對客戶瀏覽器的要求最低,可以實現(xiàn)無plugin,無activex,無java applet,甚至無frame。2.1.4 javabean簡介jsp網(wǎng)頁吸引人的地方之一就是能結(jié)合javabean技術(shù)來擴充網(wǎng)頁中程序的功能。javabean是一種java類(class),通過封裝屬性和方法成為具有某種功能或者處理某個業(yè)務(wù)的對象,它是可重用的組件,可以減少在jsp中腳本代碼的使用,這樣使得jsp易于維護,易于被非編程人員接受。它有點類似于microsoft的com組件概念。通常在一個javabean中包含一些屬性和setxxx( )和getxxx( )方法。java

24、bean被組織成為package(數(shù)據(jù)包)以便進行管理,實際上就是把一組javabean一起放在某某目錄中,每個類的定義前加上package某某,本例中為wxc。目錄wxc必須放在系統(tǒng)環(huán)境classpath包含的目錄下,系統(tǒng)才能找到其中的javabean。jswdk在缺省狀態(tài)下將jswdk-1.0.1webpagesweb-inf jspbeans 加入classpath。建立自己的javabean和package時,就放在這個目錄中也不失為一種簡易的方法。2.1.5 web開發(fā)輕平臺tomcat簡介tomcat是一個免費的開源的serlvet容器,它是apache基金會的jakarta項目中

25、的一個核心項目,由apache,sun和其它一些公司及個人共同開發(fā)而成。由于有了sun的參與和支持,最新的servlet和jsp規(guī)范總能在tomcat中得到體現(xiàn)。與傳統(tǒng)的桌面應(yīng)用程序不同,tomcat中的應(yīng)用程序是一個war(web archive)文件。war是sun提出的一種web應(yīng)用程序格式,與jar類似,也是許多文件的一個壓縮包。這個包中的文件按一定目錄結(jié)構(gòu)來組織:通常其根目錄下包含有html和jsp文件或者包含這兩種文件的目錄,另外還會有一個web-inf目錄,這個目錄很重要。通常在web-inf目錄下有一個web.xml文件和一個classes目錄,web.xml是這個應(yīng)用的配置文

26、件,而classes目錄下則包含編譯好的servlet類和jsp或servlet所依賴的其它類(如javabean)。通常這些所依賴的類也可以打包成jar放到web-inf下的lib目錄下,當然也可以放到系統(tǒng)的classpath中,但那樣移植和管理起來不方便。 在tomcat中,應(yīng)用程序的部署很簡單,你只需將你的war放到tomcat的webapp目錄下,tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪問這個應(yīng)用的jsp時,通常第一次會很慢,因為tomcat要將jsp轉(zhuǎn)化為servlet文件,然后編譯。編譯以后,訪問將會很快。另外tomcat也提供了一個應(yīng)用:manager,訪問這

27、個應(yīng)用需要用戶名和密碼,用戶名和密碼存儲在一個xml文件中。通過這個應(yīng)用,輔助于ftp,你可以在遠程通過web部署和撤銷應(yīng)用。當然本地也可以。2.1.6 jdbc簡介jdbc是java的開發(fā)者sun的javasoft公司制定的java數(shù)據(jù)庫連接(java data base connectivity)技術(shù)的簡稱,是為各種常用數(shù)據(jù)庫提供無縫聯(lián)接的技術(shù)。jdbc在web和internet應(yīng)用程序中的作用和odbc在windows系列平臺應(yīng)用程序中的作用類似。odbc(opendata base connectivity),稱為開放式數(shù)據(jù)庫互聯(lián)技術(shù),是由microsoft公司倡導(dǎo)并得到業(yè)界普遍響應(yīng)的

28、一門數(shù)據(jù)庫連接技術(shù)。jdbc現(xiàn)在可以連接的數(shù)據(jù)庫包括:xbase、oracle、sybase、aceess以及paradox等。(1) jdbc的工作機制在sql看來,數(shù)據(jù)庫就是表的集合,其中包含了行和列。sql標準雖然也還處在不斷變革之中(任何一門標準如果已一成不變了,那只能說明這門學科已經(jīng)停止發(fā)展了),但其基本內(nèi)容相對穩(wěn)定。jdbc定義了java語言同sql數(shù)據(jù)之間的程序設(shè)計接口。jdbc有一個非常獨特的動態(tài)連接結(jié)構(gòu),它使得系統(tǒng)模塊化。使用jdbc來完成對數(shù)據(jù)庫的訪問包括以下四個主要組件:java的應(yīng)用程序、jdbc驅(qū)動器管理器、驅(qū)動器和數(shù)據(jù)源。 javasoft公司開發(fā)了jdbc api

29、,jdbc api是一個標準統(tǒng)一的sql數(shù)據(jù)存取接口。jdbc在internet中的作用與odbc在windows系列中的作用類似。它為java程序提供了一個統(tǒng)一縫地操作各種數(shù)據(jù)庫的接口,程序員編程時,可以不關(guān)心它所要操作的數(shù)據(jù)庫是哪個廠家的產(chǎn)品,從而提高了軟件的通用性,而且在internet上確實無法預(yù)料你的用戶想訪問什么類型的數(shù)據(jù)庫。只要系統(tǒng)上安裝了正確的驅(qū)動器組,jdbc應(yīng)用程序就可以訪問其相關(guān)的數(shù)據(jù)庫。(2) java作為數(shù)據(jù)庫前臺在信息時代,數(shù)據(jù)庫是用于收集和處理數(shù)據(jù)的工具,數(shù)據(jù)庫形成了許多公司基礎(chǔ)結(jié)構(gòu)的基礎(chǔ)。盡管數(shù)據(jù)庫系統(tǒng)非常適合數(shù)據(jù)的存儲和取得,但人類需要某種前臺應(yīng)有程序以查閱和

30、使用存放的數(shù)據(jù)。java對建立數(shù)據(jù)庫服務(wù)器前臺應(yīng)用程序的開發(fā)人員提供了幾個好處。java是“一旦寫成,到處運行”的語言,即java程序不經(jīng)改變即可部署到任何運行java虛擬機的計算機結(jié)構(gòu)和操作系統(tǒng)。對于大公司,有一個公用開發(fā)平臺好處很大,編程人員可以不再為大公司中的各個平臺分別編程。java也很吸引第三方開發(fā)者,單個java程序即可滿足大公司客戶的需求。建立公司系統(tǒng)中基于java的應(yīng)用程序和小程序的動力是巨大的。公司對于將結(jié)構(gòu)和操作系統(tǒng)相關(guān)模型變成針對網(wǎng)絡(luò)的模型相當有興趣。java代表著節(jié)約資源成本的長期戰(zhàn)略。對于開發(fā)人員,java代表巨大的市場機會。大中型企業(yè)很少不用數(shù)據(jù)庫進行業(yè)務(wù)工作的,大

31、部分公司將數(shù)據(jù)庫應(yīng)用到業(yè)務(wù)的各個方面,從人事資源到前線客戶銷售。(3) jdbc apijdbc api使開發(fā)者不必不斷重寫程序而可以建立數(shù)據(jù)庫前臺。盡管ansi委員會有個標準組,但每個數(shù)據(jù)庫系統(tǒng)廠家的系統(tǒng)連接和通訊方法仍然五花八門。為了建立健全獨立于平臺的應(yīng)用程序和基于web的小程序,開發(fā)人員應(yīng)考慮用java開發(fā)前臺連接辦法。從外部看,第三方軟件開發(fā)者通過專用辦法,通過本地方法集成客戶機方庫或通過建立第三層和新協(xié)議來滿足這種需求。javasoft是sun公司負責開發(fā)java產(chǎn)品的業(yè)務(wù)單位,和數(shù)據(jù)庫與數(shù)據(jù)庫工具廠家一起建立獨立于dbms的機制,使開發(fā)人員不必考慮所用的特定數(shù)據(jù)庫而編寫客戶機方應(yīng)

32、用程序。產(chǎn)生的jdbc api第一版是核心jdk 2的一部分。jdbc向應(yīng)用程序開發(fā)者提供了獨立于數(shù)據(jù)庫的統(tǒng)一的api。這個api提供了編寫的標準和考慮所有不同應(yīng)用程序設(shè)計的標準。其奧秘是一組由驅(qū)動程序?qū)崿F(xiàn)的java接口。驅(qū)動程序負責標準jdbc調(diào)用向支持的數(shù)據(jù)庫所要的具體調(diào)用轉(zhuǎn)變。應(yīng)用程序編寫一次并移植到各種驅(qū)動程序上。應(yīng)用程序不變,驅(qū)動程序則各不相同。驅(qū)動程序可以用于開發(fā)多層數(shù)據(jù)庫設(shè)計的中間層,也稱中間件(middleware)。除了向開發(fā)者提供統(tǒng)一的獨立于dbms的框架外,jdbc還提供了讓開發(fā)者保持數(shù)據(jù)庫廠家提供的特定功能的辦法。jdbc驅(qū)動程序必須支持ansi aql-2項目層,但j

33、dbc允許開發(fā)者直接將查詢字符串傳遞到連接的驅(qū)動程序。這些字段可能是ansi sql也可能不是,或者根本不是aql。這些字符串的使用是基礎(chǔ)驅(qū)動程序的事。jdbc不是microsoft的odbc(開放式數(shù)據(jù)庫連接)規(guī)范派生的,jdbc完全是用java編寫的,而odbc是個c接口。但是,jdbc和odbc都是基于x/開放sql命令層接口(cli),相同的概念性基礎(chǔ)使api工作進展更快,使api的接受更加容易。javasoft提供了將jdbc變成odbc的jdbc-odbc橋。這個用本地方法完成的版本很小很有效。一般來說,jdbc api中有兩層接口:應(yīng)用程序?qū)?,開發(fā)人員用api通過sql調(diào)用數(shù)據(jù)庫

34、和取得結(jié)果,驅(qū)動程序?qū)?,處理與具體驅(qū)動程序版本的所有通訊。每個jdbc應(yīng)用程序(或小程序)至少要有一個jdbc驅(qū)動程序,每個驅(qū)動程序是針對一種dbms的。但驅(qū)動程序不必直接聯(lián)到數(shù)據(jù)庫。(4) 利用jdbc代替cgi迄今為止,通過java訪問數(shù)據(jù)庫的唯一方法就是利用java中的流調(diào)和訪問common gateway interface(cgi,公用網(wǎng)關(guān)接口)程序。通過java調(diào)用cgi腳本其實是執(zhí)行一個訪問數(shù)據(jù)庫并返回結(jié)果的獨立程序。使用這種方法速度很慢,而且會在應(yīng)用程序中引入更多的錯誤。這是由于利用兩種不同的開發(fā)語言開發(fā)程序,需要掌握兩種不同的技術(shù)。使用jdbc,用戶只要了解java語言即可,

35、而使用cgi,用戶必須同時使用java和另一種編程語言。使用jdbc的另一個原因是它的速度比cgi方法更快。使用cgi方法通常要求計算機執(zhí)行另一個獨立的程序。這個獨立的程序訪問數(shù)據(jù)庫,處理數(shù)據(jù),并將結(jié)果返回給調(diào)用程序。這就需要多級處理,因而增加了等待時間和出錯概率。調(diào)用cgi腳本通常是通過web服務(wù)器執(zhí)行一個新的腳本,而執(zhí)行jdbc的數(shù)據(jù)庫命令只需要某種將sql命令發(fā)送給數(shù)據(jù)庫的服務(wù)器。這就大大縮短了執(zhí)行sql語句的時間,cgi腳本必須獨立地連接數(shù)據(jù)庫,處理執(zhí)行結(jié)構(gòu),而jdbc的解決方案使應(yīng)用程序直接與數(shù)據(jù)庫相連,執(zhí)行各種操作。2.1.7 j2ee的簡介j2ee是一個標準的體系結(jié)構(gòu),它特別面向

36、使用java語言基于web的企業(yè)應(yīng)用程序的開發(fā)和部署。jsv和企業(yè)能夠使用這樣一個結(jié)構(gòu)體系進行內(nèi)部網(wǎng)絡(luò)應(yīng)用的開發(fā)和部署,從而有效的代替了傳統(tǒng)的二層模型。j2ee應(yīng)用程序由組件組成。一個j2ee組件就是一個自帶功能的軟件單元,它隨同相關(guān)的類和文件被裝配到j(luò)2ee應(yīng)用程序中,并實現(xiàn)與其他組減的通信。這些正好符合了選課系統(tǒng)所要求的實時性。jsp自身的安全性,再加上實現(xiàn)模式的特點,完全能夠達到選課的保密性要求,保證了選課的公平性原則。除此之外,作為java平臺的一部分,jsp擁有java語言“一次編寫,各處運行”的特點。又隨著越來越多的服務(wù)器供應(yīng)商將jsp支持添加到他們的產(chǎn)品中,這樣一來用jsp做成的

37、這套系統(tǒng)可以輕松移植到其它平臺來運行。種種優(yōu)點使得這套系統(tǒng)不但為目前校內(nèi)的網(wǎng)絡(luò)教學,以至于今后遠程教育的實現(xiàn)都打下了良好的基礎(chǔ)。所以jsp是實現(xiàn)本系統(tǒng)的最佳技術(shù),它是完全可行的。sql server 2000與nt server緊密集成,支持分布式數(shù)據(jù)庫,可以方便地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到web server中。其內(nèi)建的服務(wù)為建立數(shù)據(jù)倉庫、實現(xiàn)多維數(shù)據(jù)的存儲與查詢提供了便利條件。此外,sql server的管理比較簡單,操作方便,前端開發(fā)工具豐富。2.2 開發(fā)工具簡介2.2.1 mysql簡介 mysql是一個快速、多線程、多用戶的sql數(shù)據(jù)庫服務(wù)器,具有功能強,使用簡單,管理方便,運行速度快,

38、可靠性高,安全保密等特點。其出現(xiàn)雖然只有短短的數(shù)年時間,但憑借著“開放源代碼”的東風,它從眾多的數(shù)據(jù)庫中脫穎而出,成為php的首選數(shù)據(jù)庫。除了因為幾乎是免費的這點之外,支持正規(guī)的sql查詢語言和采用多種數(shù)據(jù)類型,能對數(shù)據(jù)進行各種詳細的查詢等都是php選擇mysql的主要原因。以下是mysql數(shù)據(jù)庫的主要特征。 (1) mysql的核心程序采用完全的多線程編程。線程是輕量級的進程,它可以靈活地為用戶提供服務(wù),而不過多的系統(tǒng)資源。用多線程和c語言實現(xiàn)的mysql能很容易充分利用cpu。 (2) mysql可運行在不同的操作系統(tǒng)下。簡單地說,mysql可以支持windows95/98/nt/2000

39、以及unix、linux和sun os等多種操作系統(tǒng)平臺。這意味著在一個操作系統(tǒng)中實現(xiàn)的應(yīng)用可以很方便地移植到其他的操作系統(tǒng)下。 (3) mysql有一個非常靈活而且安全的權(quán)限和口令系統(tǒng)。當客戶與mysql服務(wù)器連接時,他們之間所有的口令傳送被加密,而且mysql支持主機認證。 (4) mysql支持odbc for windows。mysql支持所有的odbc 2.5函數(shù)和其他許多函數(shù),這樣就可以用access連接mysql服務(wù)器,從而使得mysql的應(yīng)用被大大擴展。 (5) mysql支持大型的數(shù)據(jù)庫。雖然對于用php編寫的網(wǎng)頁來說只要能夠存放上百條以上的記錄數(shù)據(jù)就足夠了,但mysql可以

40、方便地支持上千萬條記錄的數(shù)據(jù)庫。作為一個開放源代碼的數(shù)據(jù)庫,mysql可以針對不同的應(yīng)用進行相應(yīng)的修改。 (6) mysql擁有一個非??焖俣曳€(wěn)定的基于線程的內(nèi)存分配系統(tǒng),可以持續(xù)使用面不必擔心其穩(wěn)定性。事實上,mysql的穩(wěn)定性足以應(yīng)付一個超大規(guī)模的數(shù)據(jù)庫。 (7) 強大的查詢功能。mysql支持查詢的select和where語句的全部運算符和函數(shù),并且可以在同一查詢中混用來自不同數(shù)據(jù)庫的表,從而使得查詢變得快捷和方便。 如今,包括siemens和silicon graphics這樣的國際知名公司也開始把mysql作為其數(shù)據(jù)庫管理系統(tǒng),這就更加證明了mysql數(shù)據(jù)庫的優(yōu)越性能和廣闊的市場發(fā)

41、展前景。2.2.2 intellij idea7.0簡介 intellij idea是一款綜合的java 編程環(huán)境,被許多開發(fā)人員和行業(yè)專家譽為市場上最好的ide。它提供了一系列最實用的的工具組合:智能編碼輔助和自動控制,支持j2ee,ant,junit和cvs集成,非平行的編碼檢查和創(chuàng)新的gui設(shè)計器。idea把java開發(fā)人員從一些耗時的常規(guī)工作中解放出來,顯著地提高了開發(fā)效率。具有運行更快速,生成更好的代碼;持續(xù)的重新設(shè)計和日常編碼變得更加簡易,與其它工具的完美集成;很高的性價比等特點。 intellij idea能盡可能地促進程序員的編程速度。它包括了很多輔助的功能,并且與java結(jié)合

42、得相當好。不同的工具窗口圍繞在主編程窗口周圍,當鼠標點到時即可打開,無用時也可輕松關(guān)閉,使用戶得到了最大化的有效屏幕范圍。以技術(shù)為導(dǎo)向的idea集成了調(diào)試器,支持本地和遠程的調(diào)試,即使我們需要修改一些設(shè)置上的東西使我們的工作順利進展。另外,它還提供了通常的監(jiān)視,分步調(diào)試以及手動設(shè)置斷點功能,在這種斷點模式下,我們可以自動地在斷點之外設(shè)置現(xiàn)場訪問,甚至可以瀏覽不同的變量的值。 intellij idea是一個相對較新的java ide。它是java開發(fā)環(huán)境中最為有用的一個。高度優(yōu)化的intellej idea使普通任務(wù)變得相當容易,idea支持很多整合功能,更重要的使它們設(shè)計的好容易使用。ide

43、a支持xml中的代碼實現(xiàn),idea同時還會校正xml,idea支持jsp的結(jié)構(gòu)。作用于普通java代碼的眾多功能同樣適用于jsp(比如整合功能),同時支持jsp調(diào)試;支持ejb。intellij idea 被稱為是最好的java ide開發(fā)平臺。第3章 系統(tǒng)設(shè)計與實現(xiàn)3.1 系統(tǒng)整體設(shè)計該系統(tǒng)采用tomcatmysql+jsp+servlet+javabean實現(xiàn)。具有如下功能目標:(1) 前臺包括查詢下載功能:向用戶展現(xiàn)查詢界面。查詢界面包括三個屬性:author(作者),department(單位),title(標題),用戶可以通過三個文本框輸入想要查詢的內(nèi)容,提交后返回查詢想要的論文,三

44、個屬性的關(guān)系為and,并支持模糊查詢,大小寫不區(qū)分。若不輸入任何信息,系統(tǒng)則認為要檢索數(shù)據(jù)庫中的全部信息。author(作者)屬性欄可支持作者名字的全稱及簡稱查詢。如:要檢索robert c. moore的文章,用戶可以輸入robert c. moore或者r c moore 或者moore等)。由于用戶一般不能準確記住論文的title(標題)或者作者的department(單位),該系統(tǒng)在檢索title和department信息時,不支持精確查詢,進行的是單詞匹配,即論文標題title欄內(nèi)用戶只需要輸入幾個準確的單詞即可(無順序要求),如:搜索title為a clustered global

45、 phrase reordering model for statistical machine translation的論文,用戶可以輸入global phrase reordering model,statistical machine translation或者statistical machine translation phrase reordering model均可以檢索到結(jié)果,區(qū)別在于檢索到的數(shù)量可能會有所不同。除此之外,該系統(tǒng)對用戶輸入的title信息,可以自動過濾掉a,and,from,of,is,by,with,an,to,as,on,in,for,the,:等與論文ti

46、tle實質(zhì)無關(guān)的信息,以減少非實體關(guān)鍵字給查詢結(jié)果帶來的影響。用戶輸入查詢屬性,提交后進入檢索結(jié)果頁面,檢索結(jié)果按每頁n條記錄顯示,可更改參數(shù)為任意值。頁面下方可顯示與查詢結(jié)果有關(guān)的各種信息,如搜索到的總記錄數(shù)量,每頁顯示多少條記錄,共有多少頁,可以顯示首頁,上一頁,下一頁,最后一頁。當顯示結(jié)果在第一頁的時候,第一頁以普通字符形式顯示,當顯示結(jié)果在最后一頁的時候,最后一頁以普通字符的形式顯示,除去這兩種形式,其它情況下,四種均以超鏈接形式顯示,用戶可以方便翻頁。每條記錄顯示結(jié)果包括以下字段: title(標題)、author(作者)、department(單位)、conference/jour

47、nal(期刊或出版信息),title一超鏈接形式顯示,用戶可以單擊title超鏈接來完成論文的下載任務(wù)。 (2) 后臺管理包括添加,修改與刪除:首先顯示驗證信息頁面,管理員輸入用戶名及密碼,提交后與數(shù)據(jù)庫連接,查詢是否存在該用戶,驗證合格則進入顯示界面,如不合格,則重新輸入密碼。信息以分頁顯示,每條記錄除了顯示基本論文id、 titleauthor、department、conference信息外,還要顯示update或者delete,用戶單擊后即可完成操作及結(jié)果提示,并把經(jīng)過修改的數(shù)據(jù)庫內(nèi)容顯示出來,讓用戶進一步確認操作正確。 除此之外,需要能夠完成upload功能,該功能要求能夠完成pdf

48、格式論文的上傳任務(wù)。3.2 軟件構(gòu)架圖通過對該系統(tǒng)的分析與研究,并經(jīng)多次修改,最終將該系統(tǒng)總的軟件構(gòu)架設(shè)計如圖3-1、3-2、3-3所示?;趙eb挖掘的科學文獻庫生成 查詢下載論文模塊 從網(wǎng)上數(shù)據(jù)庫下載論文 上傳修改刪除論文模塊圖3-1系統(tǒng)總的功能模塊圖基于web挖掘的科學文獻庫生成上傳論文模塊更新論文模塊刪除論文模塊圖3-2系統(tǒng)后臺功能模塊圖基于web挖掘的科學文獻庫生成本地查詢下載論文模塊網(wǎng)站查詢下載論文模塊圖3-3系統(tǒng)前臺功能模塊圖3.3 數(shù)據(jù)庫表的設(shè)計 數(shù)據(jù)庫系統(tǒng)是程序的基礎(chǔ),程序主要是圍繞著數(shù)據(jù)庫中的數(shù)據(jù)進行數(shù)據(jù)的查詢、插入、刪除和更新等等一些數(shù)據(jù)存儲工作。所以只有設(shè)計好數(shù)據(jù)庫才能

49、進行程序的編制。否則,那就是在空中蓋樓一樣總有一天會倒的。數(shù)據(jù)庫技術(shù)的發(fā)展已經(jīng)能夠適應(yīng)分布的系統(tǒng)環(huán)境,支持可交互操作的客戶/服務(wù)器體系結(jié)構(gòu),數(shù)據(jù)庫聯(lián)網(wǎng)已經(jīng)占據(jù)了信息系統(tǒng)建設(shè)的主導(dǎo)地位。目前應(yīng)用系統(tǒng)絕大多數(shù)都以數(shù)據(jù)庫為基礎(chǔ)進行研制與開發(fā),數(shù)據(jù)庫已成為信息化的基礎(chǔ)。沒有數(shù)據(jù)庫就不能對數(shù)據(jù)進行有效的存儲和管理,無法實現(xiàn)信息服務(wù),所以數(shù)據(jù)庫的選擇直接關(guān)系到應(yīng)用系統(tǒng)的建設(shè)質(zhì)量。本系統(tǒng)采用mysql 數(shù)據(jù)庫。它具有以下優(yōu)點: (1) 同時訪問數(shù)據(jù)庫的用戶數(shù)量不受限制。 (2) 可以保存超過50000000條記錄。 (3) 是目前市場上現(xiàn)有產(chǎn)品中運行速度最快的數(shù)據(jù)庫系統(tǒng)。 (4) 用戶權(quán)限設(shè)置簡單、有效。

50、該系統(tǒng)不可避免的要處理大量的數(shù)據(jù)信息,包括論文標題、作者、單位期刊及出版信息、論文原文等,必然要求及時有效的存儲和管理這些數(shù)據(jù),保持程序和數(shù)據(jù)的獨立性,完整性,避免數(shù)據(jù)的冗余度。為了保持數(shù)據(jù)的獨立性與完整性,在設(shè)計表時,為每一個實體創(chuàng)建了一張表。在信息表的設(shè)計時,屬性author查詢時要支持全稱簡稱綜合查詢,倘若設(shè)計全稱簡稱互換表,即要建立一個作者姓名全稱,簡稱語料庫,這將會給數(shù)據(jù)庫帶來很大的負擔,也不利于提高數(shù)據(jù)庫效率。經(jīng)過謹慎考慮,將作者字段以全稱形式錄入,這樣,只需對查詢語句進行一定的處理就可以支持全稱、簡稱查詢。 另外,filename字段是很重要的。由于該系統(tǒng)要完成論文全文的下載,如

51、果將論文存儲在數(shù)據(jù)庫中,一方面會使數(shù)據(jù)庫的數(shù)據(jù)量變得很大,不利于儲存;另一方面在讀取論文的時候,也會嚴重影響效率。所以,將論文存儲在一個文件夾papers中,然后在數(shù)據(jù)庫中以文件名作為論文標識論文的字段,由于文件title唯一,可以通過title查詢數(shù)據(jù)庫中與title對應(yīng)的filename,然后通過filename,進入papers中找到相應(yīng)的文件進行下載。 綜合考慮,為了簡化程序框架、提高運行效率,主程序部分只設(shè)計了兩張表,分別是論文詳細信息表以及管理員信息驗證表。管理員信息表包含用戶名和用戶密碼兩個字段,用來驗證用戶的登錄信息,以便判斷是否具有管理員權(quán)利。papers表的各字段是用來表示

52、論文信息的,包括作者、單位、標題、文件名、期刊及出版信息等,各字段的屬性設(shè)置如表3-1所示。 其中,count為主鍵,field為以后擴展所用,author、filename唯一。表3-1 論文信息表papers列名數(shù)據(jù)類型可否為空說明countint(11) 否序號authorvarchar(126)否作者姓名departmenttext是作者單位fieldvarchar(100)否論文所屬領(lǐng)域titlevarchar(150)否標題filenamevarchar(150)否文件名publicationvarchar(170)是期刊及出版信息3.4 搜索下載論文模塊搜索下載模塊是本系統(tǒng)中比較

53、重要的模塊,用戶輸入各個屬性的查詢內(nèi)容,通過查詢返回搜索結(jié)果,結(jié)果中以分頁方式顯示多條記錄,每條記錄字段由id、title、author、department、conference/journal組成。其中,title字段以超鏈接形式顯示,并伴隨下載提示,用戶單擊后,會顯示下載文本框,可根據(jù)實際情況選擇想要進行的操作。3.4.1 搜索模塊設(shè)計 當用戶點擊search按鈕,表單被提交給session.jsp頁面,該頁面保存文本框中的會話屬性4,頁面重定向5至word_list_javabean.jsp,該頁面先利用函數(shù)checkstr()對字符串進行過濾6,將查詢內(nèi)容中的非實體關(guān)鍵字a、and、

54、from、of、is、by、with、an、to、as、on、in、for、the和非法字符、/、"等過濾掉,然后利用splitstr()分割字符串7,將字符串以單詞為單位存入out數(shù)組中,再合并三個屬性值上的sql查詢語句8,用and連接,循環(huán)調(diào)用javabean9,連接數(shù)據(jù)庫10,完成搜索并將結(jié)果分頁返回11給客戶端瀏覽器。 上面提到的javabean是一種java語言寫成的可重用組件。它可以將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對象進行打包,并且可以通過內(nèi)部的jsp頁面、servlet、其他javabean、applet程序或者應(yīng)用來使用這些對象。對于連

55、接數(shù)據(jù)庫和分頁顯示這些反復(fù)進行的操作,使用javabean打包就可以實現(xiàn)隨時隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。要注意的是,jsp頁面在使用javabean的時候,要添加jsp:usebean指令,而servlet在使用的時候,需要載入包含javabean的包才可以使用。 另外,在數(shù)據(jù)庫連接的時候,為保證安全性,要加入異常處理。搜索模塊的流程如圖3-4所示。保存各會話屬性調(diào)用函數(shù)splitstr(),切割查詢短語調(diào)用函數(shù)checkstr(),過濾非法字符與非實體關(guān)鍵字合并查詢語句使用javabean,調(diào)用strongsplitpage.class分頁顯示調(diào)用logindata,完成數(shù)據(jù)

56、庫連接結(jié)束輸出查詢結(jié)果輸入查詢屬性開始圖3-4查詢模塊流程圖3.4.2 下載模塊設(shè)計 當用戶單擊title超鏈接,將title作為參數(shù)鏈接到link.jsp,該頁面通過加載驅(qū)動程序,建立與數(shù)據(jù)庫的連接,創(chuàng)建statement對象,執(zhí)行sql語句,將title對應(yīng)的filename保存到結(jié)果集對象resultset中,如果結(jié)果集不為空,則將filename設(shè)置為session屬性,然后釋放與數(shù)據(jù)庫的連接,頁面重定向至download.jsp。 download.jsp先通過session獲取filename,然后新建一個smartupload對象12并初始化,再設(shè)定contentdisposition為null,以禁止瀏覽器自動打開文件,保證點擊鏈接后是下載文件。若不設(shè)定,則下載的文件擴展名為d

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論