




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于java的瀏覽器的設(shè)計與實現(xiàn)——GUI界面子系統(tǒng)摘要21世紀人們對互聯(lián)網(wǎng)的依賴越來越大,而網(wǎng)頁瀏覽器作為上網(wǎng)瀏覽信息所必需的軟件之一,已經(jīng)得到了廣泛地應(yīng)用。在IE占據(jù)了大部分瀏覽器市場的情況下,國內(nèi)外開發(fā)商依然沒有放棄這個巨大的市場,各式各樣的瀏覽器被開發(fā)出來搶占市場。網(wǎng)頁瀏覽器的開發(fā)與應(yīng)用已成為了計算機領(lǐng)域近年來的一大熱點。本文用軟件工程的開發(fā)過程,詳細論述了瀏覽器的分析、設(shè)計及代碼實現(xiàn),最終實現(xiàn)一個具有能同時瀏覽多個網(wǎng)頁,可查看收藏夾,可以實現(xiàn)打開網(wǎng)頁,超鏈接監(jiān)聽并響應(yīng),前進和后退等基本功能的瀏覽器。本文以一個實際運作的瀏覽器Browser為主軸介紹瀏覽器的設(shè)計理念與方法,同時講述瀏覽器中各個模塊如何互相協(xié)同運作,來完成一個呈現(xiàn)網(wǎng)頁的工作。通過下載JDIC類庫,實現(xiàn)了瀏覽器選項卡,從而達成了一個窗口顯示多個網(wǎng)頁的目的。收藏夾的實現(xiàn)是將收藏夾集合序列化到數(shù)據(jù)文件中,這樣收藏夾被持久化解決了收藏夾的問題。另外,JavaSwing技術(shù)也是本文介紹的瀏覽器所使用的一種主要的技術(shù),通過使用各個組件,并增加監(jiān)聽器和事件處理等操作,最終形成一個具有一定事物處理能力的瀏覽器的界面部分。關(guān)鍵詞:瀏覽器,JDIC類庫,JavaSwing,事件BasedonthedesignandimplementationofaJavabrowserAbstractInthe21stcentury,peoplerelyontheInternetismoreandmorebig,thewebbrowserasoneofthenecessarysoftware,surfingtheInternetinformationhasbeenwidelyused.InthecaseofoccupyingmostoftheIEbrowsermarket,developersstilldidn'tgiveupthehugemarketathomeandabroad,developedavarietyofbrowserispreemptedmarket.Thedevelopmentandapplicationofwebbrowserhasbecomeafocusinthecomputerfieldinrecentyears.Inthedevelopmentprocessofsoftwareengineering,thispaperdetaileddiscussestheanalysis,designandcodeimplementationofthebrowser,andultimatelyachieveahavetobrowsemultiplewebpagesatthesametime,toviewthefavorites,canrealizeopenawebpage,hyperlinkstomonitorandrespondto,thebasicfunctionsuchasforwardandbackwardinthebrowser.BasedonanactualoperationoftheBrowserBrowserBrowserdesignconceptandmethodofintroductionformainshaft,variousmodulestellstheBrowserhowtoworktogetherwitheachotheratthesametime,tofinishtheworkofarenderedpage.BydownloadingtheJDICclasslibrary,therealizationofthebrowserTAB,whichreachedthepurposeofawindowtodisplaymultiplewebpages.Therealizationofthefavoritesarefavoritescollectionserializedintoadatafile,thiscollectiondoublecoverletpersistentsolvedtheproblemofthefavorites.Inaddition,theJavaSwingtechnologyisalsointroducedinthispaperbythebrowserusingakindofmaintechnology,throughtheuseoftheindividualcomponents,andaddinglistenersandeventhandlingoperationssuchas,eventuallyformingacertainthingsbrowserinterfacepartofprocessingcapacity.Keywords:Thebrowser,TheJDICclasslibrary,JavaSwing,Theevent第第Ⅰ頁共Ⅱ頁目錄TOC\o"1-1"\t"標題2,1,標題3,1"\h\u165561引言 頁共26頁1引言1.1研究課題的目的和意義當(dāng)前,信息化浪潮正在全球范圍內(nèi)興起,一個以計算機網(wǎng)絡(luò)為核心的信息時代正向我們走來。在Internet飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,從而倍受人們的重視,而互聯(lián)網(wǎng)上信息的查找又要通過瀏覽器的瀏覽來實現(xiàn),所以本文通過對當(dāng)下流行的瀏覽器的模擬設(shè)計和實現(xiàn)來讓大家對網(wǎng)絡(luò)及網(wǎng)絡(luò)資源的認識,以及瀏覽器的各個功能的實現(xiàn)有一個大概的認識[1]。瀏覽器是一個基于C/S架構(gòu)的應(yīng)用軟件,其最基本的功能,就是能夠?qū)⒁蛱鼐W(wǎng)上的眾多資源,例如網(wǎng)頁上的內(nèi)容與信息或是在線服務(wù)等,呈現(xiàn)給使用者并讓使用者得以使用存在于因特網(wǎng)上的各項服務(wù)。因此透過網(wǎng)絡(luò)傳輸數(shù)據(jù)對瀏覽器來說,是相當(dāng)重要且必備的一項能力。瀏覽器作為重要的系統(tǒng)應(yīng)用軟件是不可或缺的。但目前,瀏覽器產(chǎn)品的市場被少數(shù)國外大公司壟斷,眾多的小型瀏覽器也尚處于發(fā)展期,而國內(nèi)的自主技術(shù)的瀏覽器更屈指可數(shù),剛剛進入實用階段。迫切需要更多的人來關(guān)注瀏覽器技術(shù),開發(fā)中國自主知識產(chǎn)權(quán)的瀏覽器產(chǎn)品。1.2國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢常見的桌面瀏覽器有微軟的InternetExplorer,網(wǎng)景的Netscape,開放源碼的MozillaFireFox,以及opera,mosaic,Hotjava,字符模式的lynx等。其中IE,Opera已有嵌入式版本,以上的大多數(shù)瀏覽器均有跨多平臺的版本。這些桌面型瀏覽器功能參差不齊,但大多都能實現(xiàn)基本的瀏覽功能。其中IE與Netscape對HTML頁面的顯示效果均堪稱完美。與完美的瀏覽效果,功能豐富,支持多種媒體格式和視音頻插件等優(yōu)點形成對立的是,這些瀏覽器龐大的體積和對機器配置的高要求;這也是桌面瀏覽器和嵌入式瀏覽器最大的區(qū)別。另外,桌面型瀏覽器通常是基于通用的操作系統(tǒng),用于桌面電腦如PC機、MAC機等;而嵌入式瀏覽器通常基于專用系統(tǒng)。需要指出的是,在網(wǎng)上常看到的一些瀏覽器,如Netcaptor,魔裝網(wǎng)神,騰訊,颶風(fēng),F(xiàn)antasia,金山WPSoffice的瀏覽器等等,均為使用IE內(nèi)核的瀏覽器,使用了多頁面多線程的方式,降低了系統(tǒng)資源的耗費,方便了瀏覽,但軟件本身沒有使用多少技術(shù),可以用Delphi,VB等工具輕易開發(fā)出來(如果不要求完善的功能,只需簡單到拖一個IE控件過去就行了),這也體現(xiàn)了微軟的COM+及ActiveX技術(shù)的強大。1.3本課題實現(xiàn)的目標本項目是網(wǎng)頁瀏覽器,包括五個部分,菜單欄模塊,工具欄模塊,地址欄模塊,瀏覽器選項卡模塊以及收藏夾模塊。1.菜單欄模塊內(nèi)容包括文件菜單,轉(zhuǎn)到菜單,調(diào)整菜單和收藏夾菜單。主要是通過菜單欄的操作實現(xiàn)網(wǎng)頁的前進,后退,停止,刷新和轉(zhuǎn)到功能,還包括收藏夾的新建與整理。2.工具欄的功能則是實現(xiàn)常用的操作,通過點擊工具圖標來實現(xiàn)菜單欄中所有的操作。3.地址欄模塊則用來接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁。4.瀏覽器選項卡模塊實現(xiàn)在同一個窗體中顯示多個頁面。5.收藏夾模塊是本設(shè)計中最重要的一部分,包括整理收藏夾菜單和添加收藏夾菜單,可在程序運行的過程中根據(jù)用戶保存的內(nèi)容,填充收藏夾的內(nèi)容,且在網(wǎng)頁瀏覽器重新啟動的情況下依舊保留有上次保存的網(wǎng)頁。2程序開發(fā)的基礎(chǔ)2.1Java技術(shù)2.1.1Java概述Java是一個廣泛使用的編程語言,它基于Java虛擬機技術(shù),從而實現(xiàn)跨平臺。它簡單,面向?qū)ο?不依賴與機器的結(jié)構(gòu),具有可移植性,安全性,并且提供了并發(fā)的機制,具有很高的性能。其次,它最大限度的利用了網(wǎng)絡(luò),Java的小應(yīng)用程序(applet)可在網(wǎng)絡(luò)上傳輸而不受CPU和環(huán)境的限制,另外,Java還提供了豐富的類庫,使程序設(shè)計者可以很方便地建立自己的系統(tǒng)[2]。Java平臺是一種純軟件平臺,它有三個版本JavaSE、JavaEE、JavaME。JavaSE允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實時環(huán)境中使用的Java應(yīng)用程序。JavaSE還包含了支持JavaWeb服務(wù)開發(fā)的類,并為JavaEE這個版本提供基礎(chǔ)。JavaEE下有很多流行的開發(fā)框架,像Struts、Spring、Hibernate這種流行的所謂SSH組合等。JavaME應(yīng)用領(lǐng)域像各種移動設(shè)備和嵌入式設(shè)備,比如:手機、PDA、電視機頂盒和打印機。2.1.2Java平臺簡介Java平臺版本Java平臺版本主要有:J2EE(企業(yè)版本)、J2SE(標準版本)、J2ME(迷你版本)。這三個版本有不同的用途,J2EE主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng);J2SE主要用于桌面應(yīng)用軟件的編程;J2ME主要應(yīng)用于嵌入是系統(tǒng)開發(fā),如手機和PDA的編程[3]。Java平臺的組成Java平臺主要是由一個compiler(編譯器),一個運行環(huán)境(runtimeenvironment),和一個核心的API組成。1.JVM(Java虛擬機):Java程序并不是直接在本地機器的操作系統(tǒng)上執(zhí)行,而是通過JVM解釋成本地的機器語言,其優(yōu)點是可以保證Java代碼在Windows、Linux、Solaris等操作系統(tǒng)上的移植性,其代價是執(zhí)行速度比C代碼要慢。考慮到軟件越來越龐大,而計算機硬件性能越來越快,而且WEB應(yīng)用的發(fā)展,其代價是可接受的[4]。2.JDK(JavaDevelopmentKit):Java平臺開發(fā)包;JSDK(Java2SoftwareDevelopmentKit):Java2平臺開發(fā)包。目前普遍采用J2SDK。3.JRE(JavaRuntimeEnvironment):Java運行環(huán)境,一般情況下已集成到J2SDK中,但如果用戶只是執(zhí)行Java程序,而不進行Java代碼的開發(fā),則只需安裝JRE。Java環(huán)境變量的設(shè)置安裝完J2SDK之后,需要設(shè)置環(huán)境變量,方法如下:控制面板-〉高級設(shè)置-〉環(huán)境變量-〉系統(tǒng)變量-〉path里添加一個路徑。這個路徑是安裝J2SDK的bin文件夾的路徑。2.1.3JDIC項目簡介JDesktopIntegrationComponents,或JDIC,是一個給Java開發(fā)人員提供通過交差平臺API存取本地特性的包羅萬象的項目。該項目由Sun的Desktop組啟動,目的是讓Java應(yīng)用能更好地和它們所運行的桌面環(huán)境集成[5]。為了能從開發(fā)人員那里得到想要的特性的快速反饋,他們將JDIC做成了開源項目。盡管目前沒有計劃,但JDIC團隊正考慮把JDIC的特征加入Java核心類庫的未來版本中去。JDIC分為五個部分和一個孵化中的項目:桌面:為了打開、編輯和用email郵寄文件來打開桌面程序;文件類型:設(shè)置桌面文件類型關(guān)聯(lián);瀏覽器:在AWT畫布上嵌入本地瀏覽器(InternetExplorer或者Mozilla);包裝器:把JavaWebStart程序轉(zhuǎn)換成本地安裝程序的命令行工具;托盤API:支持系統(tǒng)托盤圖標和彈出式菜單;SaverBeans:Java中的系統(tǒng)屏幕保護。2.2GUI技術(shù)簡介2.2.1GUI的概述GUI(GraphicsUserInterface)是指圖形用戶接口,當(dāng)Java在1995年的春天第一次發(fā)布的時候,它包含了一個叫AWT(AbstractWindowingToolkit)的庫,用來構(gòu)建圖形用戶界面應(yīng)用程序。Java很有雄心的宣言--"writeonce,runanywhere"許諾:一個具有下拉菜單,命令按鈕,滾動條以及其他常見的GUI控件的應(yīng)用程序?qū)⒛軌蛟诟鞣N操作系統(tǒng)上運行而不必重新編譯成針對某一平臺的二進制代碼,包括MicrosoftWindows,Sun’sownSolaris,Apple’sMacOS以及Linux。雖然最初Java是支持操作系統(tǒng)獨立的應(yīng)用程序開發(fā),在Java提出"writeonce,runanywhere"宣言那段時間的革命導(dǎo)致了Javaapplet和主導(dǎo)桌面應(yīng)用程序計劃的產(chǎn)生。盡管從那以后大部分構(gòu)建桌面應(yīng)用程序的成就都慢慢衰退,Java構(gòu)建圖形用戶界面的能力反倒增強了。跟蹤JavaGUI的發(fā)展和演化,我們將發(fā)現(xiàn)3個主要的構(gòu)建窗口程序庫:AWT,Swing和SWT(StandardWidgetToolkit)。在本系統(tǒng)中,主要采用的是Swing。2.2.2Swing的概述Swing是SUN公司退出的第二代圖形用戶接口工具包,通過Swing可以開發(fā)出功能強大,界面優(yōu)美的客戶應(yīng)用程序。Swing不但提供了很多功能完善的控件,而且其還具有良好的擴展能力,用Swing來進行交互界面的開發(fā)是一件另開發(fā)人員非常愉快的工作。Swing從誕生到現(xiàn)在大致經(jīng)歷了如下幾個階段。Swing項目是從1996年底開始的,在項目開始的同時所有的參與者共同選定了這個名稱,目的就是開發(fā)一個不依賴于本地系統(tǒng)的圖形用戶接口工具包。1997年后半年Swing進入測試階段,并在1998年春隨同JDK1.1首次發(fā)行,對于JDK1.1之前的版本,是不能使用Swing庫的。Swing從首次發(fā)行開始,就不斷快速的成長,自JDK1.2之后,便被完全集成到了java的標準類庫中,成為java基礎(chǔ)類庫(JFC)大家族中一個重要組成部分。2.2.3Swing的特點Swing的特點主要包括完全輕量級的控件、可插拔的感觀風(fēng)格、更多的控件擴展3個方面。完全輕量級的控件:幾乎所有的Swing控件都是輕量級的、純java開發(fā)的,這樣在控件對自己進行繪制時就不會依賴本地操作系統(tǒng)平臺的對等控件,而是使用繪制圖形的基本元素直接通過java平臺在屏幕上進行繪制,這樣就避免了早期不是使用輕量級控件的java圖形用戶界面程序在不同的操作系統(tǒng)中運行時有不同的外觀,切換操作系統(tǒng)后顯示不正常等問題[6]??刹灏蔚母杏^風(fēng)格:Swing在界面顯示上很吸引人的一點就是支持可插拔的感觀風(fēng)格,主要包含以下幾個方面:Swing能夠模擬各種不同操作系統(tǒng)的感觀風(fēng)格,其類庫中就包含了Windows,UnixMotif,LinuxGTK,MacOSX以及JavaMetal等感觀風(fēng)格。如果有需要,開發(fā)人員還可以通過系統(tǒng)提供的接口編寫自定義的感觀風(fēng)格。Swing還允許用戶在不關(guān)閉應(yīng)用程序的情況下,在各種感觀風(fēng)格之間進行自由切換。系統(tǒng)自帶的JavaMetal感觀風(fēng)格合并了眾多風(fēng)格中最好的圖形元素,甚至增加了一些屬于其自己的特性?,F(xiàn)在的Metal感觀風(fēng)格支持多種不同的主題,各主題之間在顏色和字體等方面都有所不同,用戶如果有需要,還可以開發(fā)自己的主題。更多的控件擴展:Swing中增加了許多新的控件并且為每個控件都增加了工具提示的功能,同時Swing還支持任意數(shù)量嵌套邊框的鑲邊替代物,并且可以任意的將鍵盤事件綁定到控件中。2.3開發(fā)環(huán)境以下版本是本次使用:操作系統(tǒng):WindowsXPJava虛擬機:JDK1.6開發(fā)工具:MyEclipse5.53系統(tǒng)的總體分析3.1需求分析本模塊要實現(xiàn)的功能模塊包括:菜單欄模塊,工具欄模塊,地址欄模塊,瀏覽器選項卡模塊以及收藏夾模塊。1.菜單欄模塊內(nèi)容包括文件菜單,轉(zhuǎn)到菜單,調(diào)整菜單和收藏夾菜單。主要是通過菜單欄的操作實現(xiàn)網(wǎng)頁的前進,后退,停止,刷新和轉(zhuǎn)到功能,還包括收藏夾的新建與整理。2.工具欄的功能則是實現(xiàn)常用的操作,通過點擊工具圖標來實現(xiàn)菜單欄中所有的操作。3.地址欄模塊則用來接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁。4.瀏覽器選項卡模塊實現(xiàn)在同一個窗體中顯示多個頁面。5.收藏夾模塊是本設(shè)計中最重要的一部分,包括整理收藏夾菜單和添加收藏夾菜單,可在程序運行的過程中根據(jù)用戶保存的內(nèi)容,填充收藏夾的內(nèi)容,且在網(wǎng)頁瀏覽器重新啟動的情況下依舊保留有上次保存的網(wǎng)頁。3.2系統(tǒng)結(jié)構(gòu)與設(shè)計分析3.2.1響應(yīng)模式用戶在地址欄輸入一個URL,單擊“轉(zhuǎn)到”按鈕,請求發(fā)出,瀏覽器內(nèi)核進行讀取識別,并通過特征提取模塊進行特征比對,按照網(wǎng)頁分類算法對網(wǎng)頁類別庫中的網(wǎng)頁中符合的網(wǎng)頁提取出來返回給用戶。用戶www用戶wwwIE內(nèi)核網(wǎng)頁類別庫特征提取模塊網(wǎng)頁分類算法圖3-1響應(yīng)模式3.2.2結(jié)構(gòu)分析本模塊設(shè)計的瀏覽器,有菜單欄,工具欄,地址欄,頁面顯示區(qū),收藏夾。它的主要特點有:1.基于IE內(nèi)核,采用多窗口多線程工作方式,節(jié)約了系統(tǒng)資源,穩(wěn)定性好,不會像那樣因打開多窗口而使系統(tǒng)速度緩慢,甚至出現(xiàn)“程序沒有相應(yīng)“等現(xiàn)象。2.對網(wǎng)頁自動分類,這是它的特點。當(dāng)用戶在瀏覽網(wǎng)頁進入一個從未到過的網(wǎng)站時,很容易導(dǎo)致迷航,用戶先閱讀網(wǎng)頁才能判定該網(wǎng)頁是否是自己所感興趣的網(wǎng)頁。這樣,用戶把大量時間和精力花費在不必要的網(wǎng)頁上,分散了用戶的注意力。3.提供類別導(dǎo)航功能。它將已分類的網(wǎng)站地址置入各類別中,用戶可以根據(jù)自己感興趣的主題進行訪問和瀏覽。類別的跟新,修改,添加等維護一般由系統(tǒng)進行,也可由用戶自己手動維護。系統(tǒng)可以根據(jù)類別的更改而自行調(diào)整系統(tǒng)的分類結(jié)果。3.3功能結(jié)構(gòu)圖以下是本模塊的功能結(jié)構(gòu)圖:網(wǎng)頁瀏覽器功能模塊網(wǎng)頁瀏覽器功能模塊瀏覽器操縱收藏夾前進后退停止刷新轉(zhuǎn)到添加收藏夾整理收藏夾主頁創(chuàng)建文件夾選擇收藏夾節(jié)添加創(chuàng)建文件夾重命名移動到刪除圖3-2功能結(jié)構(gòu)4系統(tǒng)功能與實現(xiàn)瀏覽器的窗體是程序的主界面,它包括瀏覽指定的網(wǎng)站,收藏網(wǎng)站信息等業(yè)務(wù)。主要由菜單欄,工具欄,地址欄,瀏覽器選項卡和狀態(tài)欄組成。4.1核心技術(shù)4.1.1JDIC項目實現(xiàn)瀏覽器組件瀏覽器組件API可以讓你訪問幾個瀏覽器事件以及在歷史記錄上的控制(向前,后退,刷新)[7]。未來修訂的API版本希望能提供更多存取瀏覽器和任意裝載的文檔的功能。在你的應(yīng)用里使用瀏覽器組件實在是非常容易:importorg.jdesktop.jdic.browser.*;import.*;importjavax.swing.*;publicclassBrowserTest{publicstaticvoidmain(String[]args)throwsException{WebBrowserbrowser=newWebBrowser();browser.setURL(newURL(""));JFrameframe=newJFrame("BrowserTest");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().add(browser);frame.pack();frame.setSize(500,500);frame.setVisible(true);}}正如你所看到的那樣,WebBrowser對象僅僅是一個你可以把它放入一個標準的Jframe中的AWT組件。Main方法的第一行創(chuàng)建了一個新的WebBrowser,第二行設(shè)置了你想顯示的URL。其他的代碼創(chuàng)建了一個frame,把瀏覽器加入其中,并使得frame可見記住WebBrowser是個本地AWT組件,因此你可能陷入與Swing結(jié)合的困境?;旌纤鼈兊膬蓚€規(guī)則是1)不要讓Swing和AWT組件重疊和2)在你的菜單上調(diào)用setLightWeightPopupEnabled(false)否則它們將消失在瀏覽器組件后邊。4.1.2收藏夾的保存與裝載收藏夾模塊的功能可以將正在瀏覽的網(wǎng)址添加到收藏夾中,并且提供分類,通常的做法是將收藏夾的內(nèi)容存放在集合類中,如果程序關(guān)閉,收藏夾的內(nèi)容和分類將丟失,因為它們沒有被持久化。將收藏夾持久化的方法有兩種:持久化到數(shù)據(jù)庫可以將收藏夾內(nèi)容全部保存到數(shù)據(jù)庫中,在程序關(guān)閉時,收藏夾的內(nèi)容保存在數(shù)據(jù)庫而不在內(nèi)存中,這樣可以避免數(shù)據(jù)丟失,在程序下次啟動的時候,可以從數(shù)據(jù)庫中讀取收藏夾內(nèi)容從新顯示。持久化到文件中另一種方法將收藏夾的內(nèi)容保存到一個數(shù)據(jù)文件中,例如”favorite.data”,這種方法保存收藏夾數(shù)據(jù)可以節(jié)省訪問數(shù)據(jù)庫的開銷,也可以隨瀏覽器模塊一同發(fā)布,既方便又節(jié)省資源。4.1.3阻止IE打開彈出窗口使用WebBrowser組件編寫的瀏覽器模塊,可以在本窗口中瀏覽各種信息,可以通過超級鏈接訪問其他網(wǎng)頁,如果某個超級連接要在新的窗體中打開網(wǎng)頁,那么這個網(wǎng)頁會默認使用IE或操作系統(tǒng)默認的瀏覽器打開,這就破壞了模塊的外觀,使本模塊處于可有可無的狀態(tài)[8]。因此必須攔截這些需要在新窗體顯示的網(wǎng)頁信息,本模塊繼承了WebBrowser組件實現(xiàn)了瀏覽器組件的Browser類,它重寫了父類的willOpenWindow()方法,在有需要顯示在新窗體的網(wǎng)頁信息時,該方法會創(chuàng)建新的選項卡顯示這個網(wǎng)頁。4.2菜單欄的實現(xiàn)瀏覽器模塊的菜單欄幾乎容納了所有功能的操作連接,它用于整個瀏覽器模塊的導(dǎo)航,快速方便的執(zhí)行瀏覽操作,例如前進,后退,刷新等。4.2.1文件菜單文件菜單包括”設(shè)置主頁”,”打印”,”退出”3個菜單項,其中”設(shè)置主頁”將用戶輸入的網(wǎng)址信息創(chuàng)建為URL對象。如果創(chuàng)建URL對象時拋出異常,說明URL格式不標準,將以對話框的形式提示用戶URL格式非法,當(dāng)輸入格式正確時,程序?qū)RL對象序列化到收藏夾得數(shù)據(jù)文件中。單擊打印菜單時,將調(diào)用工具欄上”打印”按鈕的doClick()方法,執(zhí)行按鈕的鼠標單擊操作,程序會執(zhí)行按鈕的時間處理代碼。單擊菜單欄的“退出”菜單項時,菜單項的事件監(jiān)聽器將調(diào)用業(yè)務(wù)方法完成退出命令。在業(yè)務(wù)方法中執(zhí)行了System類的exit()方法退出Java虛擬機,從而終止程序運行。4.2.2轉(zhuǎn)到菜單轉(zhuǎn)到菜單包含了瀏覽器的控制命令,這些命令包括”主頁”,”前進””后退””停止””刷新”。這些控制命令,在菜單欄中也提供了相應(yīng)的操作按鈕,為減少代碼重復(fù),本模塊在這些菜單欄的事件處理中直接調(diào)用工具欄相應(yīng)按鈕的doClick()方法,執(zhí)行按鈕的業(yè)務(wù)代碼。//停止菜單項的業(yè)務(wù)privatevoidstopMenuItemActionPerformed(java.awt.event.ActionEventevt){stopButton.doClick();//執(zhí)行停止按鈕的單擊方法 }//刷新菜單項的業(yè)務(wù)方法privatevoidrefreshMenuItemActionPerformed(java.awt.event.ActionEventevt){refreshButton.doClick();//執(zhí)行刷新按鈕的單擊方法 }//后退菜單項的業(yè)務(wù)方法privatevoidbackMenuItemActionPerformed(java.awt.event.ActionEventevt){backButton.doClick();//執(zhí)行后退按鈕的單擊方法 }//前進菜單項的業(yè)務(wù)方法privatevoidforwardMenuItemActionPerformed(java.awt.event.ActionEventevt){forwardButton.doClick();//執(zhí)行前進按鈕的單擊方法 }//打印菜單項的業(yè)務(wù)方法privatevoidprintMenuItemActionPerformed(java.awt.event.ActionEventevt){printButton.doClick();//執(zhí)行主頁按鈕的單擊方法 }4.2.3調(diào)整菜單本模塊的網(wǎng)頁瀏覽器部分布置在一個選項卡組件中,選項卡的標簽名稱為網(wǎng)頁的標題命名,這樣用戶可以創(chuàng)建多個選項卡瀏覽更多的網(wǎng)站。4.3工具欄的實現(xiàn)工具欄用于執(zhí)行常用的操作,網(wǎng)頁瀏覽器模塊的控制命令使用最頻繁,因此將瀏覽器的控制命令提取到工具欄中。工具欄上的每個按鈕都設(shè)置了文本提示,每個按鈕都添加了單獨的事件監(jiān)聽器,在不同的事件監(jiān)聽器中調(diào)用處理該按鈕業(yè)務(wù)的方法[9]。編寫各個按鈕的事物處理方法,這些業(yè)務(wù)處理方法被不同按鈕的事件監(jiān)聽器調(diào)用。瀏覽器的控制按鈕的業(yè)務(wù)邏輯,基本通過調(diào)用Browser瀏覽器組件的方法實現(xiàn),例如print()方法可以執(zhí)行打印任務(wù),//后退按鈕的事件處理方法privatevoidbackButtonActionPerformed(java.awt.event.ActionEventevt){Browserbrowser=getSelBrowser();if(browser.isBackEnabled()){//如果后退操作可行 browser.back();//執(zhí)行后退 } }//停止按鈕的事件處理方法privatevoidstopButtonActionPerformed(java.awt.event.ActionEventevt){Browserbrowser=getSelBrowser();browser.stop();//執(zhí)行停止操作 }//前進按鈕的事件處理方法privatevoidforwardButtonActionPerformed(java.awt.event.ActionEventevt){Browserbrowser=getSelBrowser();if(browser.isForwardEnabled()){//如果前進操作可行browser.forward();//執(zhí)行前進操作 } }//刷新按鈕的事件處理方法privatevoidrefreshButtonActionPerformed(java.awt.event.ActionEventevt){Browserbrowser=getSelBrowser();browser.refresh();//執(zhí)行刷新操作 }//主頁按鈕的事件處理方法privatevoidhomePageButtonActionPerformed(java.awt.event.ActionEventevt){Browserbrowser=getSelBrowser();browser.setURL(homePage);//設(shè)置瀏覽器當(dāng)前網(wǎng)址 }4.4地址欄的實現(xiàn)地址欄是網(wǎng)頁瀏覽器的重要功能,它接收用戶輸入的將要訪問的網(wǎng)站地址,然后將該地址傳送給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁內(nèi)容。網(wǎng)頁瀏覽器模塊的地址欄包含輸入網(wǎng)站URL地址的文本框和一個執(zhí)行瀏覽業(yè)務(wù)的“轉(zhuǎn)到”按鈕。當(dāng)用戶在地址欄的地址文本框輸入網(wǎng)站地址并單擊右側(cè)的“轉(zhuǎn)到”按鈕時,它下面的瀏覽器選項卡將創(chuàng)建一個新的選項卡,并在選項卡中放置一個瀏覽器組件顯示新的網(wǎng)頁內(nèi)容[10]。jLabel1.setText("地址:"); //地址標簽addressBar.add(jLabel1,BorderLayout.WEST); //添加標簽到地址欄address.setText("http://"); //設(shè)置地址文本框內(nèi)容addressBar.add(address,BorderLayout.CENTER); //添加地址文本框到地址欄goButton.setText("轉(zhuǎn)到"); //設(shè)置轉(zhuǎn)到按的文本goButton.setFocusable(false);goButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);goButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);//添加轉(zhuǎn)到按鈕的事件監(jiān)聽器,當(dāng)單擊轉(zhuǎn)到按鈕時,執(zhí)行業(yè)務(wù)方法goButton.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){goButtonActionPerformed(evt); //調(diào)用轉(zhuǎn)到按鈕的業(yè)務(wù)方法 } });addressBar.add(goButton,BorderLayout.EAST); //添加轉(zhuǎn)到按鈕到地址欄4.5瀏覽器選項卡的實現(xiàn)以前的瀏覽器都是單個窗體的軟件,在每次需要同時瀏覽不同的網(wǎng)站或者在新窗口顯示網(wǎng)頁的情況下,都需要重新啟動或彈出一個瀏覽器軟件來顯示指定的網(wǎng)頁內(nèi)容。因此本模塊使用瀏覽器面板作為所有瀏覽器組件的容器:4.5.1繼承擴展瀏覽器組件由于網(wǎng)頁的超級鏈接或JavaScript腳本可以在新的瀏覽器窗口中顯示內(nèi)容,而新建立的瀏覽器窗體會使用默認的瀏覽器打開網(wǎng)頁,因此本模塊必須繼承WebBrowser類來編寫自己的瀏覽器組件類Browser[11]。這樣就可以重寫父類的willOpenWindow()方法攔截彈出新窗體顯示網(wǎng)頁內(nèi)容的事件,然后再該方法中使用自己的事件,在選項卡面板中創(chuàng)建瀏覽器組件顯示網(wǎng)頁。4.5.2編寫瀏覽器面板將擴展的Browser瀏覽器組件封裝在一個面板中實現(xiàn)瀏覽器面板,這個面板將被添加到存放瀏覽器的選項卡面板中.瀏覽器面板添加了Browser瀏覽器組件的實例對象,并且為瀏覽器組件添加了事件監(jiān)聽器[12]。4.5.3編寫瀏覽器選項卡面板本模塊的選項卡面板用于存放瀏覽器組件,使瀏覽器支持選項卡界面創(chuàng)建選項卡時為面板添加鼠標單擊事件,在用戶單擊選項卡的標簽時執(zhí)行業(yè)務(wù)方法。另外,還設(shè)置了選項卡面板的模型對象,包括選項卡的選擇事件的處理方法。CreateBrowser()和getSelBrowser()方法分別用于在選項卡面板創(chuàng)建瀏覽器面板和獲取當(dāng)前選擇的面板中的瀏覽器組件實例[13]。本模塊使用JDIC類庫來實現(xiàn)瀏覽器界面,該類庫可以從/地址下載,在IE地址欄輸入該網(wǎng)址后,瀏覽器將顯示JDIC的項目首頁。下載該類庫后是一個壓縮文件,將該文件解壓縮并將類庫的JAR文件和EXE文件添加到Java程序的類路勁中,DLL文件需要放到運行java程序的當(dāng)前路徑,如果是Eclipse的項目中使用該類庫,那么DLL文件需要放到項目的根文件夾中,與src同級。4.5.4編寫瀏覽器組件監(jiān)聽器在編寫瀏覽器面板組件時,在面板中創(chuàng)建了瀏覽器組件,同時也為該組件添加了事件監(jiān)聽器[14]。4.6收藏夾的實現(xiàn)收藏夾是瀏覽器不可缺少的功能,它記錄上網(wǎng)時常用的,經(jīng)典的網(wǎng)站地址。4.6.1添加到收藏夾在瀏覽器模塊的主窗體上單擊”收藏夾”/”添加到收藏夾”菜單項,將啟動添加收藏夾功能,該功能能將當(dāng)前瀏覽器訪問的網(wǎng)站地址添加到收藏夾中,日后可以從收藏夾中直接選擇瀏覽器指定的網(wǎng)址。添加收藏夾功能的實現(xiàn)步驟如下:1.編寫”添加到收藏夾”菜單項的業(yè)務(wù)代碼,這個方法將有菜單項的事件監(jiān)聽調(diào)用,方法內(nèi)部獲取了選項卡面板當(dāng)前的選項卡索引,然后使用所有獲取選項卡的標題,使用該標題創(chuàng)建了”添加到收藏夾”對話框的實例,把其余的工作交由該對話框?qū)崿F(xiàn)。2.在”添加到收藏夾”對話框中編寫初始化收藏夾樹組件的方法,該方法將在對話框的構(gòu)造方法中被調(diào)用,它將調(diào)用loadMenu()方法添加收藏夾菜單的內(nèi)容。3.編寫裝載收藏夾菜單內(nèi)容的loadMenu()方法,該方法使用遞歸算法遍歷收藏夾的數(shù)據(jù)集合對象,從這個集合對象中裝載收藏夾的所有內(nèi)容到”收藏夾”菜單中。4.編寫”確定”按鈕的業(yè)務(wù)處理方法,該方法在用戶輸入名稱標識并單擊按鈕時被”確定”按鈕的事件監(jiān)聽器調(diào)用,它將完成從讀取用戶輸入名稱標識到保存網(wǎng)站地址到收藏夾的全過程。4.6.2整理收藏夾整理收藏夾的實現(xiàn)比較復(fù)雜,它的樹組件要顯示的收藏夾內(nèi)容包括文件夾和收藏的網(wǎng)址信息,而且可以對這些信息進行維護和移動操作。其中包括”創(chuàng)建文件夾”,”重命名”,”刪除”操作。實現(xiàn)過程如下:1.編寫”整理收藏夾”菜單項的業(yè)務(wù)處理方法,該方法將在單擊該菜單時由菜單項的時間監(jiān)聽器調(diào)用,方法的實現(xiàn)非常簡單,因為所有業(yè)務(wù)都由”整理收藏夾”對話框完成。2.編寫”整理收藏夾”對話框的構(gòu)造方法,在構(gòu)造方法中分別調(diào)用初始化對話框界面的方法和初始化收藏夾樹組件的方法。3.編寫初始化樹組件的方法,該方法將調(diào)用loadFavoriteNode()方法裝載樹節(jié)點內(nèi)容,4.編寫裝載樹組件節(jié)點內(nèi)容的方法,該方法使用了遞歸方法,原因是要遍歷的內(nèi)容包括子節(jié)點的嵌套。6.編寫”重命名”按鈕的事件處理方法,作為維護操作重命名是必不可少的,特別是收藏夾中的文件夾。如果沒有重命名,則需要刪除文件,重新建立;如果文件夾中包含大量的收藏信息,會損失很多資源。單擊”重命名”按鈕時,將在事件監(jiān)聽器中調(diào)用該方法完成命名操作。7.編寫”刪除”按鈕的事件處理方法,該方法將在”刪除”按鈕的事件監(jiān)聽器中被調(diào)用。8.編寫”移動到”按鈕的事件處理方法,該方法用于移動收藏選項到其他文件夾中,其按鈕的事件監(jiān)聽器將調(diào)用該方法。5測試5.1測試與調(diào)試的基本概念軟件測試是整個系統(tǒng)開發(fā)過程中一個重要環(huán)節(jié),是成功開發(fā)本系統(tǒng)的重要保證。軟件測試階段的主要任務(wù)是發(fā)現(xiàn)并排除在分析、設(shè)計、編碼各階段中產(chǎn)生的各種類型的錯誤,以得到可使用的軟件系統(tǒng)[15]。常用的軟件測試方法有兩大類:靜態(tài)測試方法和動態(tài)測試方法。靜態(tài)測試方法是程序遠普遍采用的一種方法,其內(nèi)容主要是通過人工模擬軟件系統(tǒng)的執(zhí)行方式,以代碼會審、走查、辦公室檢查的形式分析或核查系統(tǒng)的功能實現(xiàn)、編碼過程的正確性。動態(tài)測試方法是通過輸入一組預(yù)先按照一定的測試準則構(gòu)造的實例數(shù)據(jù)來動態(tài)運行程序,而達到發(fā)現(xiàn)程序錯誤的過程。按照通常的軟件系統(tǒng)測試,可以分別進行單元測試、集成測試、確認測試、系統(tǒng)測試,最后進行驗收測試,即由用戶通過試用系統(tǒng)而進行測試,檢驗系統(tǒng)的可用性及與用戶配合的程度。調(diào)試是軟件開發(fā)過程中最艱巨的腦力勞動,調(diào)試開始時,軟件開發(fā)者僅僅面對著錯誤的征兆,然而在問題的外部現(xiàn)象和內(nèi)在原因之間往往并沒有明顯的聯(lián)系,在組成程序的密密麻麻的元素中,每一個都可能是錯誤的根源。如何能在浩如煙海的程序元素中找到有錯誤的那個(或幾個)元素,這是調(diào)試過程中最關(guān)鍵的技術(shù)問題。本設(shè)計中調(diào)試的方法主要是設(shè)置斷點跟蹤。使用斷點跟蹤可以找到程序的出錯位置,縮小查找錯誤的范圍,提高調(diào)試的效率。調(diào)試的任務(wù)是及時改正測試過程中發(fā)現(xiàn)的軟件錯誤[16]。具體地說,調(diào)試過程由兩個步驟組成,它從表示程序中存在錯誤的某跡象開始,首先確定錯誤的準確位置,也就是找出哪個模塊或哪個語句引起的錯誤。然后仔細研究推斷代碼以確定問題的原因,并設(shè)法改正。現(xiàn)階段己研究出一些幫助調(diào)試的技術(shù),主要有輸出存儲器內(nèi)容、打印語句和自動工具。5.2測試時間本系統(tǒng)的測試分為以下幾個階段進行:第一階段:根據(jù)需求分析劃定軟件中要測試的功能和性能的范圍,確定測試的內(nèi)容。第二階段:分模塊對系統(tǒng)中的各模塊進行測試,對需求分析中各模塊的功能和性能及用戶的特殊需求進行測試,記下各模塊的所有的問題,及時解決。第三階段:在模塊測試的基礎(chǔ)上將各模塊拼接進行整體功能和性能的測試。第四階段:綜合測試。5.3軟件測試的內(nèi)容分模塊對其進行測試:1.菜單欄模塊:能通過菜單欄的操作實現(xiàn)網(wǎng)頁的前進,后退,停止,刷新和轉(zhuǎn)到功能,收藏夾的新建與整理。圖5-1主頁圖5-2文件菜單圖5-3轉(zhuǎn)到菜單圖5-4調(diào)整菜單圖5-5收藏夾菜單2.工具欄模塊:能通過點擊工具圖標來實現(xiàn)一些常用的操作。圖5-6工具欄的后退功能功能3.地址欄模塊:用來接收用戶輸入的網(wǎng)站地址,然后將該地址傳給瀏覽器組件,呈現(xiàn)指定的網(wǎng)頁。圖5-7輸入新浪網(wǎng)址點轉(zhuǎn)到圖5-8成功轉(zhuǎn)到指定網(wǎng)頁4.瀏覽器選項卡模塊:實現(xiàn)在同一個窗體中顯示多個頁面。圖5-9多頁面顯示5.收藏夾模塊:能對收藏夾進行添加網(wǎng)頁和整理操作。圖5-10往文件夾添加圖5-11整理收藏夾6結(jié)論本文主要探討了基于java的瀏覽器的設(shè)計與實現(xiàn)。并且實現(xiàn)瀏覽器的一些簡單功能。包括:前進和后退,設(shè)置主頁,添加收藏夾和管理收藏夾,刷新頁面,還有在同一個窗體中顯示多個頁面。該瀏覽器程序基于IE內(nèi)核,采用多窗口多線程工作方式,節(jié)約了系統(tǒng)資源,穩(wěn)定性好。而且還提供類別導(dǎo)航功能,將已分類的網(wǎng)站地址置入各類別中,用戶可以根據(jù)自己感興趣的主題進行訪問和瀏覽。然而,系統(tǒng)仍然存在很大的改進空間,可以通過進一步的設(shè)計提高性能和實用性。由于本人的水平有限,對其中的某些問題未能進行深入的分析和研究,還需要在今后的工作中努力學(xué)習(xí)和探討。文中的不足之處,敬請各位老師指正。參考文獻[1]《程序員》雜志社.程序員2011合訂本下[J].電子工業(yè)出版社,2011,24(22):150-160[2]馬俊,范玫.JAVA語言面向?qū)ο蟪绦蛟O(shè)計[M].機械工業(yè)出版社,2009:183-190[3]于萬波.Java語言實用教程[M].清華大學(xué)出版社,2008:143-150[4]劉亞濱.精通Eclipse[M].北京:電子工業(yè)出版社,2004:45-80[5]馬少平.人工智能[M].清華大學(xué)出版社,2011:78-110[6]耿祥義.Java課程設(shè)計[M].清華大學(xué)出版社,2009:67-90[7]耿祥義,張躍平.Java面向?qū)ο蟪绦蛟O(shè)計[M].清華大學(xué)出版社,2010:88-120[8]朱福喜,唐曉軍.Java程序設(shè)計技巧與開發(fā)實例[M].人民郵電出版社,2010:44-130[9](美)BruceEckel著,陳昊鵬譯.Java編程思想[M].第四版.機械工業(yè)出版社,2009:120-140[10]飛思科技產(chǎn)品研發(fā)中心.Java2應(yīng)用開發(fā)指南[M].第二版.電子工業(yè)出版社,2011:182-200[11]於東軍,楊靜宇,李千目,王過全.Java程序設(shè)計與應(yīng)用開發(fā)[M].清華大學(xué)出版社,2011:120-140[12](美)昊斯特曼著,葉乃文,鄺勁筠,杜永萍譯.Java核心技術(shù):卷Ⅰ基礎(chǔ)知識(原書第8版)[M].機械工業(yè)出版社,2010:200-230[13]李剛.瘋狂Java講義[M].電子工業(yè)出版社,2011:120-150[14]李興華.名師講壇——Java開發(fā)實戰(zhàn)經(jīng)典[M].清華大學(xué)出版社,2009:110-130[15]雍俊海.Java程序設(shè)計教程[M].清華大學(xué)出版社,2010:168-174[16]孫家廣.軟件工程理論、方法與實踐[M].清華大學(xué)出版社,2011:132-148致謝經(jīng)過兩個多月的努力,畢業(yè)設(shè)計已經(jīng)基本上完成了。在畢業(yè)設(shè)計期間他們給予了我悉心指導(dǎo)和大力幫助,在我的選題和論文撰寫過程中對文檔進行了認真檢查,嚴格督促和仔細批閱,并對我的課題提出了許多富有啟發(fā)性和建設(shè)性的意見和建議。同時我還要感謝我身邊的同學(xué)是他們一直的支持給了我堅持自己做下去的勇氣,并在論文的撰寫上給了我很大的幫助。在做畢業(yè)設(shè)計的過程中好幾次我都想放棄了,是他們鼓勵我,告訴我我能行,最后在同學(xué)和老師的幫助和指導(dǎo)下我成功的完成了自己的畢業(yè)設(shè)計,在這里送上我由衷的感謝。基于C8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設(shè)計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機的遠程抄表系統(tǒng)的設(shè)計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設(shè)計和應(yīng)用基于單片機的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設(shè)計Pico專用單片機核的可測性設(shè)計研究基于MCS-51單片
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海公安學(xué)院《書法與鑒賞》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東松山職業(yè)技術(shù)學(xué)院《文化遺產(chǎn)創(chuàng)新創(chuàng)業(yè)》2023-2024學(xué)年第一學(xué)期期末試卷
- 河南科技大學(xué)《中國現(xiàn)當(dāng)代文學(xué)作品選》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州鐵路職業(yè)技術(shù)學(xué)院《應(yīng)用時間序列》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津生物工程職業(yè)技術(shù)學(xué)院《表面工程導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 深圳大學(xué)《服務(wù)營銷》2023-2024學(xué)年第二學(xué)期期末試卷
- 日照市五蓮縣2025屆五下數(shù)學(xué)期末達標檢測模擬試題含答案
- 山東圣翰財貿(mào)職業(yè)學(xué)院《建筑概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 福建省泉州市泉外、東海、七中學(xué)、恒興四校2025年初三摸底聯(lián)考物理試題試卷含解析
- 浙江溫州十五校聯(lián)盟2025年高三下學(xué)期第一次月考(開學(xué)考試)歷史試題試卷含解析
- 【MOOC】《學(xué)術(shù)交流英語》(東南大學(xué))章節(jié)中國大學(xué)慕課答案
- 高空蜘蛛人施工專項施工方案
- 《建筑基坑工程監(jiān)測技術(shù)標準》(50497-2019)
- 中班科學(xué)課件:《彩色的世界》
- 普通高等學(xué)校輔導(dǎo)員隊伍建設(shè)規(guī)定解讀課件
- 《論語·為政篇》課件
- 錄音證據(jù)文字模版
- 垂直軸翼形葉片網(wǎng)狀結(jié)構(gòu)的
- 什么是管壁厚度號Sch
- 河南省省屬煤炭企業(yè)煤礦瓦斯治理調(diào)研報告
- 酒店工程造價目標成本控制表
評論
0/150
提交評論