【正文】
“斷點續(xù)傳”的保存信息,文件名以下載的文件名加上 .tmp 命名,當該文件下載完成時,程序會自動刪除該記錄文件。 浙江工業(yè)大學本科畢業(yè)設計說明書(論文) 20 boolean markSupported( ),判斷流是否支持標記功能。該形式由原始二進制數(shù)據(jù) 值轉換成的字符組成。每個線程都是通過某個特定 Thread 對象所對應的 run( )方法來完成其操作的,因為run( )方法中的代碼定義執(zhí)行線程所需的功能,所以 run( )方法被稱為線程體 [17]。 ? 用戶界面模塊:負責定義可視化的用戶界面。 為了對下載任務進行掌控,用戶往往具有設置下載任務的線程數(shù),文件下載網(wǎng)址,文件下載存儲目錄和浙江工業(yè)大學本科畢業(yè)設計說明書(論文) 14 在下載過程中對下載任務的狀態(tài)進行監(jiān)控等功能需求 [15]。 著重 介紹了 JAVA、 Swing技術 、 HTTP協(xié)議 ,同時明確了系統(tǒng)開發(fā)的總體原則。(我們稱)這個應答服務器為源服務器( origin server)。在運行時內核是整個架構的核心,其他部件都是以插件方式來實現(xiàn)的。 Hibernate 作為模型 /數(shù)據(jù)訪問層。 ( 2)可存取性支持 所有的 Swing 組件都實現(xiàn)了 Accessible 接口,提供對可存取性的支持,使得輔助功能如屏幕閱讀器能夠十分方便地從 Swing 組件中得到信息。而 Swing 使得程序在一個平臺上運行時能夠有不同的外觀,用戶可以選擇自己習慣的外觀。 (3)Java ME( Java Platform, Micro Edition) 。在本質上, Java 技術將用戶的計算能力從桌面擴展到了 Web 資源。它由 JVM 和 Java 應用程序編程接口( Java Application Programming Interface, API)組成。因此從使用操作方面看,此系統(tǒng)得開發(fā)是可行的。 系統(tǒng)的可行性分析主要包括技術上的可行性和操作上的可行性。 隨后,“斷點續(xù)傳”的概念就出來了。 本科畢業(yè)設計說明書(論文) 題目 : 基于 HTTP 協(xié)議的斷點續(xù)傳應用系統(tǒng) 開發(fā) 浙江工業(yè)大學本科畢業(yè)設計說明書(論文) 1 畢業(yè)設計(論文)原創(chuàng)性聲明和使用授權說明 原創(chuàng)性聲明 本人鄭重承諾:所呈交的畢業(yè)設計(論文),是我個人在指導教師的指導下進行的研究工作及取得的成果?!皵帱c續(xù)傳”,顧名思義 就是如果下載中斷,在重新建立連接后,跳過已經下載的部分,而只下載沒有下載的部分。本系統(tǒng)的可行性分析如下: 技術可行性 下 載程序功能模塊的實現(xiàn)主要利用了面向對象的 Java 高級編程語言。 論文內容概述 各章節(jié)的主要內容如下 : 第一章是緒論 ,討論課題的研究 背景、意義和研究目標,及可行性分析,包括技術可行性,操作可行性 。 Java API 是一個大型的現(xiàn)成軟件組件(類)集合,它可以簡化 applet 和應用程序的開發(fā)和部署,包括健壯、安全且可互操作的企業(yè)應用程序。 Web 組件由稱為 Web 容器( Web container) 的運行時平臺支持, Web 容器的服務包括請求分派、安全性、并發(fā)性、生命周期管理以及對命名、事務和電子郵件等 API 的訪問。這個版本以前稱為 J2ME。 Swing是 AWT的擴展,它提供了許多新的圖形界面組件。 ( 3)支持鍵盤操作 在 Swing 組件中,使用 JComponent 類的 registerKeyboardAction()方法,能使用戶通過鍵盤操作來替代鼠標驅動 GUI 上 Swing 組件的相應動作。它通過配置文件 ( 或( *.)把 java對象或持久化對象( Persistent Obeject, PO)映射到數(shù)據(jù)庫中的數(shù)據(jù)表,然后通過操作 PO,對數(shù)據(jù)庫中的表進行各種操作。 Eclipse 采用動態(tài)加載機制,即只有需要的才加載,這樣可以降低啟動時間,提高資源使用效率 [11]。在用戶代理和源服務器中間可能存在多個中間層,比如代理,網(wǎng)關,或者隧道( tunnels)。浙江工業(yè)大學本科畢業(yè)設計說明書(論文) 13 第三章 需求分析 及關鍵技術和難點 用戶需求分析 隨著 Inter的 發(fā)展 ,進入信息時代后快速獲得 網(wǎng)絡 共享資源成為很簡單的事情,人們對互聯(lián)網(wǎng)也有了很大的依賴性。 鑒于某些軟件使用初學者甚至某些電腦初學者的實際情況,他們往往需要系統(tǒng)有一個格外的幫助文檔,使他們能夠更快、更好地學會使用斷點續(xù)傳下載軟件,提高效率。 整個系統(tǒng)的執(zhí)行流程如圖 所示: 否 下載 是 圖 多線程下載工具執(zhí)行流程圖 關鍵技術和難點 Java 多線程技術 多線程是這樣一種機制,它允許在程序中并發(fā)執(zhí)行多個指令流,每個指令 流都被稱為一個線程,線程間互相獨立。 Java I/O 流技術 為了進行數(shù)據(jù)的輸入 /輸出操作, Java 中把不同的輸入 /輸出源抽象表述為“流”( stream)。因此,從包含文本的字符流中讀取數(shù)據(jù)比直接讀取二進制數(shù)據(jù)涉及更多的工作 [19]。 void mark( int readlimit),在支持標記的輸入流的當前位置設置一個標記。用戶單擊“刪除任務”按鈕可以刪除選中的任務,可以多選。 = tmp_URL。 = 3。 try { 。 } } 它的作用是 從下載 URL 地址中文件名和文件長度。// 獲取文件長度 = ()。 系統(tǒng) 功能模塊設計 本系統(tǒng) 分為五個功能模塊,分別為下載任務實體類模塊、系統(tǒng)工具類模塊、線程下載類模塊、下載任務總 控制模塊、用戶界面模塊。注意,流必須支持標記功能。在 包中, InputSteam 和 OutputStream 類及它們的子類均表示字節(jié)流,并且提供了讀 /寫二進制數(shù)據(jù)的方法。 按照流的方向劃分,可以分為輸入流和輸出流。 多個線程的執(zhí)行是并發(fā)的,也是在邏輯上“同時”,而不管是否是物理上的“同時”。 下載任務實體類的基本功能分析 對于該系統(tǒng)來說,就是技術斷點續(xù)傳的多線程下載工具,下載任務的所有信息應該被定義在一個實體類中。比如,針對一些專業(yè)的 論壇 提供了很多相關資料以方便人們閱讀或了解;還有更多的人希望能過下載到他們喜歡聽得 音樂 、好看的圖片、喜歡的電影等等。 事實上, HTTP 可以在任何其他互聯(lián)網(wǎng)協(xié)議上,或者在其他網(wǎng)絡上實現(xiàn)。工作臺插件是 Eclipse 提供的用戶界面。 Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。 ( 4)設置邊框 對 Swing 組件可以設置一個或多個邊框。如圖 : J C o m p o n e n tA b s t r a c t B u t t o nJ C o m b o B o xJ L a b e lJ L i s tJ M e n u B a rJ P a n e lJ P o n p u p M e n uJ S c r o l l B a rJ S c r o I I P a n eJ T e x t C o m p o n e n tJ B u t t o nJ M e n u I t e mJ T o g g l e B u t t o nJ C h e c k B o x M e n u I t e mJ M e n uJ R a d i o B u t t o n M e n u I t e mJ C h e c k B o xJ r a d i o B u t t o nJ E d i t o r P a n eJ T e x t A r e aJ T e x t F i e l dJ T e x t P a n eJ P a s s w o r d F i e l d 圖 Swing 組件 浙江工業(yè)大學本科畢業(yè)設計說明書(論文) 8 Swing 組件的簡介 ( 1) MVC( ModelViewController)體系結構 前面我們提到, Swing 勝過 AWT 的主要優(yōu)勢在于 MVC 體系結構的普遍使用。 Java ME 包括靈活的用戶界面、健壯的安全模型、許多內置的網(wǎng)絡協(xié)議以及對可以動態(tài)下載的連網(wǎng)和離線應用程序的豐富支持。 Java 平臺有三個版本,這使軟件開發(fā)人員、服務提供商和設備生產商可以針對特定的市場進行開發(fā): (1) Java SE( Java Platform, Standard Edition) 。 Java API 組織 成相關類和接口的庫;庫也稱為包( package)。 第三章是需求分析, 介紹系統(tǒng)業(yè)務流程 概況 , 主要闡述了在線作業(yè)系統(tǒng)功能模塊的需求用例。多線程編程技術是 Java 語言的重要特點。 自從“多線程下載”技術發(fā)明以來,這項技術得到前所未有的關注已是不爭的事實。對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了 謝意。 這些年來,下載技術一直在發(fā)展, 最原始的下載功能僅僅是個“下載”過程,即從 WEB 服務器上連續(xù)地讀取文件。要達到這個目的,必須分析幾種主要的可能解法的利弊,從而判斷原定的系統(tǒng)規(guī)模和目標是否現(xiàn)實,系統(tǒng)完成后所能帶來的效益是否大到值得投資開發(fā)這個系統(tǒng)的程度。系統(tǒng)的可行性分析主要包括技術上的可行性和操作上的可行性 。 Java 平臺( Java platform) 是一種純軟件平臺,它可以在各種基于硬件的平臺上運行。這種語言是進行服務器端 Web 編程的理想框架。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務器端 Java 應用程序。F)。比如,某年級各個班級的學生人數(shù)是數(shù)據(jù)部分,而顯示方式可以是多種多樣的,既可以采用柱狀圖顯示,也可以采用餅圖顯示,還可以采用直接的數(shù)據(jù)輸出。 他們可能是在被應用程序實例化后,尚未進行持久化的對象,也可能是因為實例化他們的 Session已經被關閉而脫離持久化的對象。 Eclipse 的體系結構 Eclipse 平臺體系結構主要由 5 部分組成,分別是平臺運行庫、工作區(qū)、工作臺、團隊支持和幫助。(我們稱這個客戶端)叫用戶代理( user agent)。 Post 命令用于向 WEB 服務器發(fā)送數(shù)據(jù),通常使把信息發(fā)送給一個單獨的應用程序。 在下載任務的管理這一塊,用戶不僅希望下載工具具有下載一個一 個資源的功能,而且具有批量下載有些相似的或有關聯(lián)的資源的功能。 ? 線程下載模塊:負責定義每個線程下載的具體實現(xiàn)過程。接著它將調用 run( )方法。字符流用于存儲和檢索文本,而且可以使用它讀取由非 Java 程序生成的文本文件。 int available( ),返回可以從中讀取的字節(jié)數(shù)。選中想要下載的任務,可以多選,點擊“開始”按鈕,程序將開始任務的下載,當?shù)谝淮芜\行程序時,程序將浙江工業(yè)大學本科畢業(yè)設計說明書(論文) 22 在程序的當前目錄下自動新建一個配置文件,該文件名為 ,該配置文件將記錄該程序的默認下載地址和所有上一次的任務下載信息。 = 1。 return r。 downloadInfo2 = new DownLoadInfo()。請求后在 HttpURLConnection 的 InputStream 或 OutputStream 上調用 close() 方法可以釋放與此實例關聯(lián)的網(wǎng)絡資源。 )。 由于論文的篇幅有限,涉及到代碼 只張貼了重點部分。 ? 輸出流的基本方法如下: void write( int c)。此方法以 int 型返回流的下一個可讀字節(jié)。 按照流所處理的數(shù)據(jù)類型劃分,可以分為字節(jié)流和字符流。在基于 Java 的應用程序中可以通過以下兩種方法創(chuàng)建線程對象。如下圖 所示 : 圖 下載任務實體類中定義的屬性 上次文件下載長度 下載任務的 URL 下載文件的大小 下載文件存放目錄 當前文件已下載長度 下載任務實體類 浙江工業(yè)大學本科畢業(yè)設計說明書(論文) 15 系統(tǒng)工具類的基本功能分析 系統(tǒng)工具類主要負責定義測試連接 URL 是否有效的方法以及獲取要下載的資源文件名稱、長度和 MIME 信息的方法。 由于用戶下載需求的增大,也要求下載軟件能夠迅速完成對資源的下載。 HTTP 服務器則在那個端口監(jiān)聽客戶端發(fā)送過來的請求。團隊支持插件負責提供版本控制和配置管理支持。 Eclipse 的起源和發(fā)展 Eclipse的前身是 IBM的 Visual Age。 Hibernate 的體系結構如圖 所示。當模型發(fā)生改變時,它會通知所有依賴它的視圖,視圖使用控件指定其相應機 制。 Swing 技術簡介 Swing是一個用于開發(fā) Java應用程序用戶界面的開發(fā)工具包。Java SE 包含了支持 Java Web 服務開發(fā)的類,并為 Java Platform, Enterpri